从前两天开始我一直在研究这个问题,但仍然无法解决。
我在根目录中有两个脚本,其中会话注册并在我再次访问页面时保持持久,但是当我要从子目录脚本访问页面时,建议没有注册会话。
详细解释如下:
问题是当我从根目录脚本 start_session() 是:http ://www.kstreethome.com/test.php它工作正常
/test.php 的代码
<?php
error_reporting(E_ALL);
echo "This is session save path : " . session_save_path() . "</br>";
//echo phpinfo();
if(!isset($_SESSION['User']))
{
echo "Session not set </br>";
session_start();
$_SESSION['User'] = "Hiren";
$_SESSION['AccessType'] = "U";
$_SESSION['UserType'] = "W";
$_SESSION['UserID'] = "123";
$_SESSION['DataUser'] = "Test";
$_SESSION['Password'] = "Test";
echo session_id();
echo $_SESSION['User'];
echo $_SESSION['AccessType'];
echo $_SESSION['UserType'];
echo $_SESSION['UserID'];
echo $_SESSION['DataUser'];
echo $_SESSION['Password'];
}
else
{
echo "Session set </br>";
echo $_SESSION['User'];
echo $_SESSION['AccessType'];
echo $_SESSION['UserType'];
echo $_SESSION['UserID'];
echo $_SESSION['DataUser'];
echo $_SESSION['Password'];
}
?>
但
当我从子目录 Ajax 脚本 start_session() 是:http ://www.kstreethome.com/Ajax/test.php它不起作用但是在这个脚本中它正在存储会话并且可以在同一次运行中访问但是当我重新加载/ Ajax/test.php 会话刚刚被破坏,我必须重新开始。
/Ajax/test.php 的代码
<?php
error_reporting(E_ALL);
echo "This is session save path : " . session_save_path() . "</br>";
//echo phpinfo();
if(!isset($_SESSION['User']))
{
echo "Session not set </br>";
session_start();
$_SESSION['User'] = "Hiren";
$_SESSION['AccessType'] = "U";
$_SESSION['UserType'] = "W";
$_SESSION['UserID'] = "123";
$_SESSION['DataUser'] = "Test";
$_SESSION['Password'] = "Test";
echo session_id();
echo $_SESSION['User'];
echo $_SESSION['AccessType'];
echo $_SESSION['UserType'];
echo $_SESSION['UserID'];
echo $_SESSION['DataUser'];
echo $_SESSION['Password'];
}
else
{
echo "Session set </br>";
echo $_SESSION['User'];
echo $_SESSION['AccessType'];
echo $_SESSION['UserType'];
echo $_SESSION['UserID'];
echo $_SESSION['DataUser'];
echo $_SESSION['Password'];
}
?>
两个文件中的代码相同,用于测试目的
另一个奇怪的事情是,在根脚本/test.php中它说会话路径''默认为null,因为我没有更改默认值inn php.ini,但在脚本/Ajax/test.php中它说会话保存路径是/ tmp 很奇怪吧?
不用说它在我的本地服务器上运行良好,但在托管服务器上运行良好,所以请在这个问题上指导我。