uns*_*ero 7 php mysql ajax session session-cookies
我在PHP/Ajax在线购物车上遇到了SESSION变量的一些奇怪问题.
当我第一次查看页面时,会创建SESSION并在页面中工作.然后,当我导航到同一目录中的另一个PHP页面时,SESSION完全丢失.奇怪的是,这只发生过一次.一旦用户在更改页面时完成了完全失去其SESSION的过程,SESSION将在整个购物车中完整地运行.
我开始在每个页面视图上发送自己的$ _SESSION和$ _SERVER数据的var_exports.似乎第一次查看页面时,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');
Run Code Online (Sandbox Code Playgroud)
然后在header_cart.php的顶部有:
session_start();
if(!isset($_SESSION['active'])){
$_SESSION['active']=$_SERVER['REMOTE_ADDR'];
}
Run Code Online (Sandbox Code Playgroud)
事实证明,它将 mydomain.com 和 www.mydomain.com 识别为单独的会话,并存储了 2 个具有 2 个不同 PHPSESSID 的 cookie。
我将其添加到我的 .htaccess 文件中,以便始终将 http 和 https 的 mydomain.com/shop 重定向到 www.mydomain.com/shop。
RewriteEngine On
#force http://www. to make sure SESSION data is always the same
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{REQUEST_URI} shop
RewriteRule ^(.*)$ http://www.mydomain.com/shop/$1 [R,L]
#force https://www. to make sure SESSION data is always the same
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{REQUEST_URI} shop
RewriteRule ^(.*)$ https://www.mydomain.com/shop/$1 [R,L]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3948 次 |
| 最近记录: |