1

login use 2 ファイルでセッションを設定するにはどうすればよいですか? ホーム > ログイン > ホーム
コードで何か間違ったことをしましたか? ありがとう。

home.php

<?php
    session_start();
?>
<!DOCTYPE html>
<html><head><title></title></head>
<body>
<?php
    if($_SESSION['account']){
        print"login successful";
        //do something
    }
    else{
        print"login invalid";
        print"
            <form method=\"post\" action=\"login.php\">
                account: <input type=\"text\" name=\"account\"><br>
                password: <input type=\"text\" name=\"password\"><br>
                <input type=\"submit\" value=\"login\">
            </form>
        ";
    }
?>
</body>
</html>

login.php

$account = mysql_escape_string($_POST['account']);
$password = mysql_real_escape_string($_POST['password']);
if($account == 'myaccount' && $password == 'mypassword'){
    session_start();
    $_SESSION['account'] = $account;
    $_SESSION['password'];
    print"<meta http-equiv=\"refresh\" content=\"0;url=home.php\">";
    header("location: home.php");
    exit();
}
else{
    print"<meta http-equiv=\"refresh\" content=\"0;url=home.php\">";
    header("location: home.php");
    exit();
}
4

3 に答える 3

1

$_SESSION配列にデータを保存していません。

試す:

$_SESSION['account'] = true; // Or something else that evaluates to true and is relevant.
$_SESSION['password'] = 'please, anything but your password plaintext. think of the children';

そうすれば、home.phpでのログイン操作の結果をテストするときに次のようになります。

if($_SESSION['account']){
    print"login successful";
    //do something
}

あなたは条件を満たすことができます。

于 2013-01-16T22:47:36.400 に答える
1

スクリプトに基づいてこれ:

$_SESSION['account'];
$_SESSION['password'];

これである必要があります:

$_SESSION['account'] = $account;
$_SESSION['password'] = $password;

ただし、これを実稼働サイトで使用しないでください。これは、ユーザーの認証には機能しません。

人をログインさせてログインさせる唯一の方法としてセッションを使用することはできません。セッションは簡単に乗っ取られる可能性があります。優れたユーザー認証システムは次のようになります。

パスワードを暗号化する

データベースに保存されたユーザー情報

セッション情報を収集して設定します

これで、ユーザーがログインしたままになるように、ユーザーが新しいページにアクセスするたびに、seesion id、パスワード、user ip、およびsession変数を使用してユーザーを認証し、ユーザーがページを表示できるようにします。基本的には、これを安全に処理するための関数またはクラスを作成します。

PHPを学び始めたばかりの人のために、すでにたくさんのすばらしいログインスクリプトがあります。ユーザーを認証する優れたサイトは、本当に優れたユーザー認証システムから始めて、その中にサイトを構築します。

于 2013-01-16T22:49:56.740 に答える
0

行を変更:

if($_SESSION['account']){
  print"login successful";
}

if(isset($_SESSION['account']) && $_SESSION['account'] == true){
     print"login successful";
}
于 2013-01-16T22:53:23.460 に答える