Php $\u会话值不起作用!
我正在编写一个用户登录系统,我(和其他许多人一样)的会话有问题 以下是验证输入时登录脚本中的指针:Php $\u会话值不起作用!,php,session,login,Php,Session,Login,我正在编写一个用户登录系统,我(和其他许多人一样)的会话有问题 以下是验证输入时登录脚本中的指针: session_start(); $_SESSION['id']=$id; header('location: memberhome.php'); 下面是memberhome.php上的第一件事: <?php session_start(); $id=$_SESSION['id']; ?> You are logged in as: <?php echo $id; ?>
session_start();
$_SESSION['id']=$id;
header('location: memberhome.php');
下面是memberhome.php上的第一件事:
<?php
session_start();
$id=$_SESSION['id'];
?>
You are logged in as: <?php echo $id; ?>
稍后在memberhome.php中:
<?php
session_start();
$id=$_SESSION['id'];
?>
You are logged in as: <?php echo $id; ?>
您以以下身份登录:
问题是$\u会话['id']显然是空的,因此echo$id不会打印任何内容
也不起作用的替代品:
//removed session_start and $_SESSION bit from the top
You are logged in as: <?php session_start(); echo $_SESSION['id']; ?>
//从顶部删除了session\u start和$\u session位
您以以下身份登录:
现在,这是奇怪的部分。此方法确实有效:
You are logged in as: <?php echo session_start();$_SESSION['id']; ?>
您以以下身份登录:
您可以看到会话_start()在回显后移动。当页面从登录脚本加载时,此操作有效。但是,刷新后,它将不再工作
我已经尝试了很多备选方案,并花了几个小时在前面的问题中寻找答案。我还看了看我的phpinfo()有什么可疑的东西,什么也没发现。这完全是我的进步所依赖的。谢谢 您是否尝试过:
print\r($\u会话)代码>
要检查会话内容?首先,请启用调试:
error_reporting(E_ALL);
ini_set('display_errors', '1');
其次,session_start()需要位于页面顶部。你写的那句话
You are logged in as: <?php echo session_start();$_SESSION['id']; ?>
您以以下身份登录:
这是行不通的
下面的一行需要在页面顶部,在任何HTML等之前
<?php
session_start();
$id=$_SESSION['id'];
?>
在页面上输出任何内容之前,确保正在调用会话\u start()
。标准的基于cookie的会话需要交换一些头信息,这必须在发送任何内容之前完成。您很可能遇到输出缓冲,这就是为什么它有时有效,有时无效的原因。一般来说,坚持在生成任何输出之前启动会话,您会发现您的代码工作得更好。使用
ob_start()@会话_start()
在这两个页面的顶部您是否通过比较会话ID来检查它是否是同一个会话?