【发布时间】:2015-03-16 23:22:43
【问题描述】:
我在带有 Godaddy 的 Windows 共享主机 (IIS) 上运行 Wordpress。 Wordpress 的子目录“/wordpress”用完了。如果我设置一个 PHP 会话值,例如$_SESSION["test1"] = "从根设置的值:/";在根目录下的 PHP 中,只要我的 PHP 代码没有根目录,我就可以看到会话的值。如果我尝试从 /wordpress 文件夹访问此会话值,则找不到它。
反之亦然。如果我在 /wordpress 及其子目录下设置会话值,只要我在 /wordpress 文件夹中操作,我就可以查看会话及其值。如果我尝试访问从根目录中的 /wordpress 中设置的会话值,则无法访问。
我检查了会话 ID,它们在根目录和 /wordpress 文件夹中都是相同的。我检查了两者的 cookie 集,它们具有相同的路径和域。
我不知道为什么从根目录而不是 /wordpress 文件夹设置 PHP 会话值不会是全局的。任何帮助,将不胜感激。谢谢。
/set_session.php
<?php
session_start();
$_SESSION["test1"] = "value set from root: /";
?>
/wordpress/set_session.php
<?php
session_start();
$_SESSION["test2"] = "value set from wordpress subdirectory: /wordpress";
?>
view_session.php(我从 root 和 /wordpress 运行)
<?php
session_start();
echo "<h3> PHP List All Session Variables</h3>";
foreach ($_SESSION as $key=>$val)
echo $key." ".$val."<br/>";
?>
如果我从 /view_session.php 运行视图会话脚本,我只会看到“test1”的值,因为它是从 /set_session.php 设置的。
如果我从 /wordpress/view_session.php 运行视图会话脚本,我只会看到“test2”的值,因为它是从 /wordpress/set_session.php 设置的。
【问题讨论】:
-
“在 PHP 中从根目录”是什么意思?您只能在脚本中设置会话变量,并且它将在该会话的上下文中可见。因此,如果您的意思是在一个脚本中设置变量,然后在另一个脚本中没有它,这很可能意味着您引用了不同的会话。
-
我在 root 中有一个 php 文件/脚本,在那里设置一个会话值。我在 /wordpress 中有另一个 php 文件/脚本,并在那里设置了它的会话值。会话似乎不同,因为从 root 或 /wordpress 查看会话时,每个集合中的值都不会同时显示。
-
是的,这正是我所说的。所以问题似乎是你为什么使用不同的会话?我建议您发布一些代码,显示您如何设置会话。否则我们无能为力...
-
我被扔石头了,所以我看了这个问题大概 15 分钟。仍然没有任何意义。你想达到什么目的? “从 /wordpress 文件夹访问此会话值”是什么意思?谁在访问它,如何访问它? WordPress?您是说 Wordpress 中的脚本 A 无法访问脚本 B 的会话变量吗?嗯?
标签: php wordpress session iis subdirectory