PHP应用程序中的其他会话

时间:2018-08-14 10:43:01

标签: php .htaccess session web php-ini

我的会话有一个奇怪的问题... 我在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(网址: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

ajaxPhpFile:

session_status();
//return code: 1

1 个答案:

答案 0 :(得分:0)

如果要使用php会话,请确保需要php会话的文件,然后在顶部添加:session_start();,否则您将无法从会话数组中获得任何结果,良好的做法是如果您具有通用标头.php例如在顶部session_start();

上添加