【发布时间】:2013-11-10 14:40:09
【问题描述】:
这是我的登录页面的代码,其中登录脚本检查用户的真实性,然后使用标题功能重定向到收件箱页面。
<?php
session_start();
include_once('config.php');
$user=htmlentities(stripslashes($_POST['username']));
$password=htmlentities(stripslashes($_POST['password']));
// Some query processing on database
if(($id_user_fetched<=$id_max_fetched) && ($id_user_fetched!=0)){
$_SESSION['loggedIn'] = 'yes';
header("Location:http://xyz/inbox.php?u=$id_user_fetched");
//echo 'Login Successful';
}else{
echo 'Invalid Login';
echo'<br /> <a href="index.html">Click here to try again</a>';
}
}else{
echo mysqli_error("Login Credentials Incorrect!");
}
?>
inbox.php 页面如下所示:
<?php
session_start();
echo 'SESSION ='.$_SESSION['loggedIn'];
if($_SESSION['loggedIn'] != 'yes'){
echo $message = 'you must log in to see this page.';
//header('location:login.php');
}
//REST OF THE CODE
?>
现在使用上面的代码,inbox.php 总是显示输出: SESSION=您必须登录才能看到此页面。 这意味着会话变量未设置或 inbox.php 无法检索会话变量。我哪里错了?
【问题讨论】:
-
应该是
echo "Login Credentials Incorrect!" ;而不是echo mysqli_error("Login Credentials Incorrect!"); -
您能否调试以确认您的
if语句的条件评估为true? (即在 true 和 false 块中回显一个语句以查看哪个在触发) -
1.你从同一个域调用两个脚本吗? 2. 你是否使用任何类型的 session_name、session_id、session_set_cookie? 3. session_start返回值,你检查了吗?
-
@Crackertastic 是的,我可以向您保证,它们的评估结果为真。检查了几次
-
这是两个
else声明一个if
标签: php session session-variables