会话第一次无法工作,从第二次开始工作

时间:2016-03-07 07:53:37

标签: php session

我不知道问题是什么。当我在删除所有历史记录和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;
?>

2 个答案:

答案 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....

看起来他们在你的问题上处于领先地位,但我认为你之后编辑过的问题要放在那里。

这是会议第一次没有工作的唯一原因,他们正在第二次工作。