【发布时间】:2019-01-21 04:48:58
【问题描述】:
我的会话有一个奇怪的问题... 我在 htaccess 中创建了带有重定向的 MVC php 应用程序。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !/Public/
RewriteRule ^(.*)$ /Public/$1 [L]
和公共目录中的 htaccess:
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
在默认api index.php(url:domain.com/offer或domain.com/gallery)会话中正常工作
<?php print_r($_SESSION); ?>
//result: ARRAY ( [TEST] => TRUE )
<?=session_id()?>
//result: 6a5d103581340500d75b76c47f335d4e
但是!如果我使用网址:domain.com/ajaxFilePHP/signIn.php 会话无法正常工作...
<?php print_r($_SESSION); ?>
//result: Array( [IL] => 1 [NAME] => admin [LID] => 1 )
<?=session_id()?>
//result:
我检查了ajax和客户端连接是一样的。
它不是我的服务器...在我的 PC 和我的服务器中,api 工作正常...php ini 中的会话配置几乎相同...
我的服务器:
Cookie - PHPSESSID=....
HTTP_COOKIE - PHPSESSID=...
session.cookie_httponly - no value
session.gc_divisor - 1000
session.sid_bits_per_character - 5
session.sid_length - 26
其他服务器:
Cookie - no entry in ini
HTTP_COOKIE - no entry in ini
session.cookie_httponly - 0
session.gc_divisor - 100
session.sid_bits_per_character - 4
session.sid_length - 32
有人可以帮忙吗?
编辑: 我有 session_start();在 ajaxFilePHP 目录中的每个文件中
<?php
session_start();
require_once realpath(dirname(__FILE__)."/../../App/Core/DataBase/DBinit.php");
if(isset($_POST['name']) && isset($_POST['pass'])){
$l = new LoginDB();
exit($l->Login($_POST['name'], $_POST['pass']));
}
exit('100');
EDIT2:
主文件:
session_status();
//return code: 2
ajaxPhp文件:
session_status();
//return code: 1
【问题讨论】:
-
在任何代码中都没有错误检查。您没有告诉我们是否启用了错误日志记录,也没有告诉我们日志中的内容。您还没有告诉我们上面缺少的 cookie 配置是否使用默认值。您还没有告诉我们定义 cookie 的响应标头是什么。您只是告诉我们它“无法正常工作”——我们不知道这意味着什么。
标签: php .htaccess session web php-ini