考虑以下情形:会话共享在PHP
- 有在服务器2页,分别是:parent.php和child.php
- parent.php设置包含高度隐秘信息 会话然后
- parent.php通过Ajax调用child.php那么无论信息接收
谜过程: child.ph p需要具有与parent.php相同的会话状态,以便提供请求的parent.php信息。
这可能吗?
考虑以下情形:会话共享在PHP
谜过程: child.ph p需要具有与parent.php相同的会话状态,以便提供请求的parent.php信息。
这可能吗?
只要您在每个脚本的顶部调用session_start()
,这两个脚本位于同一个域中,并且会话cookie不局限于子目录,则在第一个请求中您在$_SESSION
中设置的变量将仍然存在在第二。
因为他们之间的Ajax调用,他们不是有不同的实例吗?如果第一页在http://www.myserver.com/dir1/parent.php,而另一个在http://www.myserver.com/dir2/subdir/parent.php中呢? –
只要满足上述要求,无论请求是否通过AJAX进行,以及它们是否连续,它们都会共享一个会话。除非明确删除,否则存储在会话中的变量将在会话的整个生命周期中保持不变。 – rebroken
现在正在工作。谢谢!已提高+1:D –
会话通常通过设置和识别Cookie来分配。 GET变量有时也被使用,但被认为是提升的安全威胁,因为GET变量在URL中可见。
关于何时重新使用现有会话,PHP可以设置为一定的严格等级。你可以,例如拨弄:
默认设置不是很严格。
当满足所有条件时,当session_start()被调用时,PHP将自动重新使用现有会话。
您能举一个常用设置的例子来实现吗?现在我的默认设置是cookie_path ='/'和cookie_domain ='' –
你是指在浏览器中通过Ajax?如果这两个页面位于同一个域中,则在同一目录中,会话将始终自动结转。 –
这应该是透明的。你甚至不需要做任何事情。 –
我很笨。我现在知道了。 –