Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $\u会话值不起作用!_Php_Session_Login - Fatal编程技术网

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来检查它是否是同一个会话?