好的,所以我的主页有一个会话。我正在使用会话ID来查询数据库。
现在,当我发布到页面时,我在顶部有session_start
(),但是当我回显主页面上的session_id()
时,在发布到的页面上,它们是2个不同的值。为什么要更改session_id()
?
有没有办法让它保持原始值?
编辑:
的index.php
<?php
session_start();
echo session_id();
?>
<form method="post" action="post.php">
<input type="text" name="some_field" />
</form>
post.php中
session_start();
echo session_id();
index.php中的session_id与post.php中的session_id不同。
答案 0 :(得分:2)
你确定你的浏览器接受了它应该是的cookie吗?要确保您尝试使用其他浏览器,然后使用常用的浏览器
答案 1 :(得分:0)
听起来你是在改变会话名称,或者你需要更改会话的名称。
为什么不输出teh会话的名称及其ID
例如:
echo session_name();
echo "<br/>";
echo session_id();
如果您的会话名称被更改,您将不得不一直使用该名称。 PHPSESSID是会话的默认名称。 SESSf9a1dfbab4f36b89eaf8b74ce485ad62听起来像你已经改变了它..
您还可以检查session_id()以查看名称中的值。你可以明确地设置所有的tehse值,如果代码中的某些内容正在这样做,你最好跟踪它。
(我觉得你的代码比你提出的更多)
答案 2 :(得分:0)
http://www.php.net/manual/en/function.session-id.php说:
注意:使用会话Cookie时,为session_id()指定ID 将始终发送新的cookie 无论如何调用session_start() 如果当前会话ID相同 正在设定的那个。
和
如果指定了id,它将被替换 当前会话ID。 SESSION_ID() 以前需要打电话 session_start()用于此目的。 取决于会话处理程序,而不是 所有字符都在允许范围内 会话ID。