3
<?php

include("connect.php");
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Username and password sent from form in HTML
    $myusername = $_POST['username'];
    $mypassword = $_POST['password'];

    $sql    = "SELECT id FROM users WHERE username='$myusername' and password='$mypassword'";
    $result = mysql_query($sql);
    $row    = mysql_fetch_array($result);
    $active = $row['active'];
    $count  = mysql_num_rows($result);

    // If result matched $myusername and $mypassword, table row must be 1 row
    if ($count == 1) {
        session_register("myusername");
        $_SESSION['login_user'] = $myusername;

        header("location: welcome.php");
    } else {
        $error = "Your username or password is invalid";
    }
}

?>

これが私の現在のログインコードです。私の登録ページでは、データベースに挿入するときに、MD5 で既に暗号化されたパスワードを挿入するようにしています。ただし、変換できないようです:

$mypassword=$_POST['password'];

MD5 に入力して、パスワードがデータベースに存在するかどうかを確認します。このコードでは、パスワードを暗号化しないでください。暗号化されたデータベースでチェックするようにするには、何を変更すればよいですか?

4

6 に答える 6

0

まず、変数を次のように md5 関数にラップします

$myPassword = md5($_POST['password']);

$myusernameだけをどのように使用していますか?exテーブルにアクセスしているため、連想配列が必要です( dbからのidだけでなく*すべてを選択する必要もあります):- *

$_SESSION['login_user'] = $row['username'];

次に、これを変更します

if ($_SERVER["REQUEST_METHOD"] == "POST")

これに:-

if (isset($_POST["submit"]))
于 2013-08-06T06:14:04.903 に答える
0

私が質問を理解する限り。パスワードmd5暗号化をdbに保存している場合は、このように比較するだけです$myPassword = md5($_POST['password'])

于 2013-08-06T05:38:37.907 に答える