我有一个 login.php 文件:
<?php
session_start();
include('db.php');
if(isset($_POST['email']) && !empty($_POST['email']) AND isset($_POST['password']) && !empty($_POST['password'])){
$email = mysql_escape_string($_POST['email']);
$password = mysql_escape_string($_POST['password']);
$search = mysql_query("SELECT * FROM users WHERE email='".$email."' AND password='".$password."' AND active='1'") or die(mysql_error());
$match = mysql_num_rows($search);
if($match > 0){
$row = mysql_fetch_assoc($search);
$user=$row['forename'].' '.$row['surname'];
$_SESSION['username']=$user;
//$msg = 'Login Complete! Thanks, '.$user.'!';
header( 'Location: page1.php' ) ;
die;
}else{
$msg = 'Login Failed!<br /> Please make sure that you enter the correct details and that you have activated your account.';
}
}
?>
现在,当我加载 page1.php 时,我遇到了问题。该文件包含此...
<?php
session_start();
include('db.php');
if(isset($_SESSION['username'])){
echo 'Success, '.$_SESSION['username'].'!';
}else{
echo 'No dice!';
//header( 'Location: login.php' ) ;
}
?>
如果没有存储用户名,我理想地希望它重定向到登录。如果有,我想让他们查看。但是,我得到“没有骰子!” 每次,所以看起来我没有正确检索(或存储)数据。我究竟做错了什么?
需要明确的是,else
不应触发,因为它应该引用 index.php 中的会话数据集。重定向不是问题。
这个问题是特定于我的主机的,他的设置很奇怪。在与他们联系时,他们为我提供了我必须用来session_save_path
设置的正确路径信息。在此基础上给出正确答案。