0

ログインしてセッション ID を設定しようとしています。以下のコードはログインを正常に認証せず、セッション ID を設定しませんでした。Plz ヘルプ。

  public $userid;

  function login()
    {
        $pwdHasher = new PasswordHash(8, FALSE);

        if(isset($_POST['logging'])  AND  !empty($_POST['logging'])){


            $email=mysqli_real_escape_string($this->db->connection ,$_POST['email']);
            $pass=mysqli_real_escape_string($this->db->connection ,$_POST['pass']);
            $sql=mysqli_query($this->db->connection,"SELECT * FROM user where email='$email' AND password='$pass'");
            $numrows=mysqli_num_rows($sql);
            $resid=mysqli_fetch_array($sql);
            $checked = $pwdHasher->CheckPassword($pass,$numrows);
            if($checked){
                $this->userid=$_SESSION['id']=$resid['id'];

                $this->login=TRUE;


                echo "u r logedin.Plz click here to go  to main area<a href='main.php'>main</a>";
            }
            else{
                echo "username r password is wrong";
                $this->login=FALSE;
            }
        }
    }
4

2 に答える 2

1

session_start()$_SESSION 配列を使用する前にセッションを開始する必要があります

于 2012-11-21T17:22:14.117 に答える
0

session_start()PHP スクリプトの先頭にがない可能性があります。すべての単一ファイルに含める共通ファイルがある場合は、session_start()最初に追加するだけです。

共通ファイルがなく、追加するのが難しい場合は、php.iniファイルを変更してsession.auto_start、セッションを開始する必要があるようにすることができます。

ファイルにアクセスできずphp.ini、Web サーバーとして apache を使用している場合は、以下を追加して.htaccessファイルを変更/ルートに追加できますDOCUMENT_ROOTphp_flag session.auto_start 1

これらのリンクを見てください。セッションをよりよく理解し、セッションが機能しない理由を理解するのに役立つかもしれません

于 2012-11-21T17:47:06.253 に答える