我使用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'])条件中。但我可以知道我以前做过这样的事情。任何帮助都会很棒......谢谢!
答案 0 :(得分:1)
代码的第一行......
if($_POST['login_submit']){
仅在您提交登录表单时,会话才会开始。
而且,在所有其他页面上,您必须调用session_start()...