PHP会话自动结束

时间:2013-09-07 20:20:33

标签: php session login

我使用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'])条件中。但我可以知道我以前做过这样的事情。任何帮助都会很棒......谢谢!

1 个答案:

答案 0 :(得分:1)

代码的第一行......

if($_POST['login_submit']){

仅在您提交登录表单时,会话才会开始。

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