我不知道问题是什么。当我在删除所有历史记录和cookie以及缓存后第一次登录时,它不会将会话设置为重定向页面。但是当我第二次登录时,会话被设置为重定向页面。这里是第一个和第一个的代码。第二页。
第一页
<?php
session_start();
include('includes/connection.php');
$email=$_POST['email'];
$password=$_POST['password'];
$data=mysqli_query($GLOBALS["___mysqli_ston"], "select * from user_registration where email='$email' and password='$password' ");
$data1=mysqli_num_rows($data);
$val=mysqli_fetch_array($data);
if($data1>0)
{
$_SESSION['user_id']=$val['user_id'];
echo "<script>window.location.href='index.php'</script>";
}
else
{
echo "<script>window.location.href='login.php'</script>";
}
?>
第二页
<?php
session_start();
$val=$_SESSION['user_id'];
echo $val;
?>
答案 0 :(得分:0)
而不是回声使用
header("Location: index.php");
<强> 修改 强>
也应该在第一页的顶部声明session_start
,因为如果您在控制台环境中运行它,则无法设置上下文中不存在的会话,您将收到以下错误
"$_SESSION['user_id'] does not exist in the current context"
答案 1 :(得分:0)
<强>在session_start();应该是两个脚本的最顶层!
会话变量保存在服务器上,并分配了一个唯一的代码,以cookie的形式传递给浏览器。
因为Cookie是由标题设置的,所以需要先发送它们!
即使是脚本顶部的空格也可能导致会话cookie未在浏览器端正确设置。
所以总是这样开始这两个脚本:
<?php
session_start();
// Rest of the code....
看起来他们在你的问题上处于领先地位,但我认为你之后编辑过的问题要放在那里。
这是会议第一次没有工作的唯一原因,他们正在第二次工作。