页面更改时,PHP会话始终开始

时间:2016-06-22 08:15:01

标签: php session

我有一个博客网站。我可以通过点击网站顶部的标志来更改语言。当我选择英语或西班牙语时,页面会更改为该语言 但是,当我点击任何菜单项时,网站语言将恢复为默认语言,并且不会保留我所点击的语言。

我将我选择的语言值放在Session中,但是当我点击另一个页面时它会失去它的价值。

我可以看到我的session_id()总是在变化。会话总是开始。

这是主页

中的会话测试代码
ob_start();
if (session_status() == 1) {     //or if(isset($_SESSION)) both of them not work and session_start() command work.
    session start();
    echo 'started';
}
echo " SESSION ID VALUE: ".session_id()."  .Session Status:".session_status();

输出:(您将在网站上看到)

  

开始SESSION ID VALUE:5d7e8cacfde4bc87f6e55b4fcddd5af7 Session   STATUS2 /

我的主人是godaddy。我让他们解决这个问题,但是他们说我开发了这些代码并且他们看起来并没有。我不知道该怎么办?我看到session_path是/ tmp,我写is_writable(ini_set("session_path"))它是可读写的。

1 个答案:

答案 0 :(得分:2)

您应该始终执行session_start()。如果会话已创建,那么它将使用已创建的会话,否则将创建一个新会话。

同样在session_status中,您应该与PHP常量进行比较,而不是硬编码值。

session_status()=== PHP_SESSION_NONE

http://php.net/manual/en/function.session-status.php