1

我使用 PHP 框架做了很多工作,但我现在正在从头开始构建一个简单的登录系统,但我很难过。我正在使用 PDO 进行数据库查询。我有一个简单的登录表单,它使用 $_SERVER['PHP_SELF'] 指向同一页面。然后我有这个代码......

<?php
//LOG IN
if($_POST['login_submit']){
  $username = $_POST['username'];
  $password = $_POST['password'];
  //Query
  $database->query("SELECT * FROM users WHERE username = :username AND password = :password");
  $database->bind(':username',$username);
  $database->bind(':password',$password);
  $rows = $database->resultset();
  $count = count($rows);
  if($count > 0){
    session_start();
    //Assign session variables
    $_SESSION['username']   = $username;
    $_SESSION['password']   = $password;
    $_SESSION['logged_in']  = 1;
} else {
   $login_msg[] = 'Sorry, that login does not work';
}
}

当我登录时,它很好。它开始会话。但是,一旦我转到另一个页面,会话就会中断。我怀疑可能导致 session_start() 处于 if($_POST['login_submit']) 条件。但我可以发誓我以前做过这样的事情。任何帮助都会很棒..谢谢!

4

1 回答 1

1

您的代码的第一行...

if($_POST['login_submit']){

仅当您提交登录表单时,会话才会启动。

而且,在所有其他页面上,您必须调用 session_start() ...

于 2013-09-07T20:24:32.017 回答