2012-11-21 86 views
0

我嘗試登錄並設置會話id.Below代碼沒有驗證登錄成功,並沒有設置會話id.Plz幫助。爲什麼登錄和會話ID沒有在這個功能中設置?

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; 
      } 
     } 
    } 
+1

使用$ _SESSION之前使用session_start()。 –

回答

1

您需要使用$ _SESSION陣列

0

你可能會錯過session_start()在PHP腳本開始前與session_start()啓動一個會話。如果你有一個包含在每個文件中的公用文件,那麼只需在最初添加session_start()即可。

如果您沒有公共文件,添加文件太難了,您可以修改php.ini文件以讓session.auto_start爲您啓動會話。

如果您無法訪問php.ini文件,並使用Apache作爲Web服務器,那麼你可以修改/通過添加.htaccess文件添加到您的DOCUMENT_ROOT根:php_flag session.auto_start 1

看看這些鏈接,他們可以幫助你更好地瞭解會議,並弄清楚爲什麼它不工作

相關問題