作为我尝试创建一个与其他开发人员的现有php应用程序具有相同外观和感觉的ASP.net的一部分。 (更多关于它你能在这里阅读:How to share sessions between PHP and ASP.net application?) 我正处于在ASP.net和PHP应用程序之间共享userlogin状态的过程中。
我有像signin.aspx?foo = asdhhjkasd(ASP.net)和signin.php?foo = asdhhjkasd这样的链接,告诉其他应用程序应该使用哪些用户凭据来验证用户。
现在我坚持使用PHP会话管理:现有的php应用程序包含一个index.php,其中包含几个(100个中的一些)其他php文件并执行其功能。有一个会话管理(session_start()涉及等等。
我想做的是用一些参数调用signin.php页面调用。根据使用过之前是否登录过php应用程序,我只想重定向到index.php,但是我无法得到会话变量。
我的signin.php如何看待,以访问index.php中使用的会话变量。这是我到目前为止所尝试的:
<?php
// session_start(); tried it with or without it
if($_SESSION['user_id'] != "")
{
header('Location:index.php');
}
else
{
echo "no redirect";
}
?>
我总是打印出“无重定向”。
或者我的想法是错误的,当没有涉及发布/获取操作时,无法从php中的另一个页面访问会话变量?
也许我应该说我的PHP能力有点受限。
答案 0 :(得分:2)
确保您拥有正确的Cookie名称(默认为PHPSESSID)。您可以使用session_name()
进行更改
另外:您应该致电session_start()
,因此即使session.auto_start已关闭,您的代码也能正常运行。
答案 1 :(得分:1)
你的脚本看起来没问题,我不知道为什么它不起作用,除非在使用会话之前没有初始化“session_start()”。
此外,您在哪里定义会话?检查“session_start()”是否已在那里初始化。