Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根目录中的PHP会话变量集在子目录中不可见_Php_Wordpress_Session_Iis_Subdirectory - Fatal编程技术网

根目录中的PHP会话变量集在子目录中不可见

根目录中的PHP会话变量集在子目录中不可见,php,wordpress,session,iis,subdirectory,Php,Wordpress,Session,Iis,Subdirectory,我有Wordpress在windows共享主机(IIS)上运行,带有Godaddy。Wordpress的子目录“/Wordpress”已用完。如果我设置一个PHP会话值,例如$_session[“test1”]=“value set from root:/”;在根目录下的PHP中,只要我的PHP代码没有根目录,我就可以看到会话的值。如果我尝试从/wordpress文件夹访问此会话值,则找不到它 反之亦然。如果在/wordpress及其子目录下设置会话值,只要在/wordpress文件夹中操作,就

我有Wordpress在windows共享主机(IIS)上运行,带有Godaddy。Wordpress的子目录“/Wordpress”已用完。如果我设置一个PHP会话值,例如$_session[“test1”]=“value set from root:/”;在根目录下的PHP中,只要我的PHP代码没有根目录,我就可以看到会话的值。如果我尝试从/wordpress文件夹访问此会话值,则找不到它

反之亦然。如果在/wordpress及其子目录下设置会话值,只要在/wordpress文件夹中操作,就可以查看会话及其值。如果我尝试访问根目录下/wordpress中设置的会话值,则无法访问

我已经检查了会话ID,它们在root和/wordpress文件夹中都是相同的。我已经检查了来自这两个站点的cookies集,它们具有相同的路径和域

我不明白为什么从root和/wordpress文件夹设置PHP会话值不是全局的。任何帮助都将不胜感激。谢谢

/set_session.php

<?php
session_start();
$_SESSION["test1"] = "value set from root: /";
?>
<?php
session_start();
$_SESSION["test2"] = "value set from wordpress subdirectory: /wordpress";
?>

/wordpress/set_session.php

<?php
session_start();
$_SESSION["test1"] = "value set from root: /";
?>
<?php
session_start();
$_SESSION["test2"] = "value set from wordpress subdirectory: /wordpress";
?>

view_session.php(我从root和/wordpress运行这个)


如果我从/view_session.php运行查看会话脚本,我只会看到“test1”的值,因为它是从/set_session.php设置的


如果我从/wordpress/view_session.php运行查看会话脚本,我只会看到“test2”的值,因为它是从/wordpress/set_session.php设置的。

首先,让我说GoDaddy支持是无用的。他们的立场是,因为没有官方的“错误”,所以他们不能帮助我,这不是他们的错,不管是否有示例基本代码来演示这个问题


当我安装WordPress时,我使用他们的Plesk自动安装选项为我安装WP。它将WordPress安装到自己的子目录中。这很好,但是他们的安装过程使/wordpress文件夹成为自己的虚拟目录,从而使其中的所有内容在自己的应用程序池/线程下运行。这导致/wordpress目录与站点内其他目录之间的会话不同。

我也遇到了类似问题,因为根文件夹中有一个php.ini文件。该文件只有一条指令来更改max_input_vars。我删除了该文件,改为在cPanel中设置max_input_vars,然后我的会话突然在子文件夹之间正确共享。请参见

您所说的“在PHP中从根目录开始”是什么意思?您只能在脚本中设置会话变量,它将在该会话的上下文中可见。因此,最有可能的情况是,如果您在一个脚本中设置了变量,而在另一个脚本中没有,这意味着您引用了不同的会话。我在/wordpress中有另一个php文件/script,并在那里设置了它的会话值。会话看起来是不同的,因为从root或/wordpress.Yep查看会话时,每个集合的值都不可见,这正是我所说的。所以问题似乎是为什么要使用不同的会话?我建议您发布一些代码,说明如何设置会话。否则我们就无能为力了……我被迷住了,所以我看了这个问题15分钟。还是没有任何意义。你想完成什么?“从/wordpress文件夹访问此会话值”是什么意思?谁在访问它,如何访问?Wordpress?你是说Wordpress中的脚本a不能访问脚本B的会话变量吗?呵呵?