php会话帮助

时间:2009-11-18 05:46:06

标签: php session

好的,所以我的主页有一个会话。我正在使用会话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不同。

3 个答案:

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