我遇到一些奇怪的问题,我的PHP/Ajax在线购物车上的SESSION变量。
当我第一次查看页面时,SESSION被创建并在页面内工作。然后,当我导航到同一目录中的另一个PHP页面时,SESSION完全丢失。奇怪的是这只发生一次。一旦用户在更换页面时经历完全失去SESSION的过程,SESSION将在整个购物车中全面运行。
我开始在每个页面视图中邮寄我自己的var _ _ __ _ _ _ _ _ _ _ _ _ _ _ _ var数据和$ _SESSION数据。看起来,当第一次查看页面时,SESSION存在并包含数据。但是,$ _SERVER ['HTTP_COOKIE']变量中没有生成PHPSESSID。在导航到另一个页面时,PHPSESSID被创建并且SESSION将开始工作,但第一个页面视图的初始SESSION数据丢失。
如果还没有为SESSION生成PHPSESSID,有没有办法生成PHPSESSID?或者这是典型的行为,与我的随机SESSION丢失问题无关?我使用PHP 5.2。
购物车中的每一页开始完全相同的方式:
$title="Title";
$keywords="keywords";
$description="description";
@include('../header_cart.php');
然后在header_cart.php的顶部有:
session_start();
if(!isset($_SESSION['active'])){
$_SESSION['active']=$_SERVER['REMOTE_ADDR'];
}
阅读[这里]各种有趣(http://php.net/manual/en/function.session-id.php)。我不知道你是否已经检查过。你确定你的'session_start()'在第一次调用时没有失败吗? – afuzzyllama 2012-01-18 15:49:56
购物车中的每一页都使用相同的头文件,所以我不认为就是这样。也许使用session_regenerate_id()如果没有设置PHPSESSID可能会有所帮助。 – unsunghero 2012-01-18 16:12:03
但是,您可能会因为会话更改而失去购物车信息? =/ – afuzzyllama 2012-01-18 16:18:58