我的网站有一个注册页面和登录页面。当用户注册时,我希望他的一些细节存储在 SESSIONS 中,以便它可以 可在下一页访问。这适用于本地服务器,但它不在实时服务器上。
我在根目录中有login.php和signup.php,我在根目录中也有三个文件夹; SIGNUP2 文件夹(这个用户具有signup2.php)
完成注册), HOME 文件夹(这有一个home.php,这是用户成功登录时网站的主页)和 PROFILE 文件夹
(其中details.php用于查看用户的个人资料)。 PROFILE 中有一个.htaccess
文件,它仅用于重写与其相关的网址。
从login.php
开始,如果用户经过验证并且重定向到header("Location:http://www.example.com/home/home.php");
,则会创建会话。这个
在实时服务器上工作正常,会话数据按预期使用。但是,如果用户在signup.php
注册,则会在何时创建会话
他/她的详细信息已经过验证并重定向到header("Location:http://www.example.com/signup2/signup2.php");
但会话返回空数组
通过print_r($_SESSION);
。
我创建了一个文件printSession.php
并将其存储在主页文件夹中。如果我前往它header("Location:http://www.example.com/home/printSession.php");
它仍然通过print_r($_SESSION);
打印空数组,但如果我从login.php
重定向到它,它会打印出数据。
所有文件的顶部都有session_start();
。在signup.php。
print_r($_SESSION);
打印出数据
signup.php的PHP代码:
all the codes are working correctly and data are getting stored correctly in MySQL db
$_SESSION['token'] = $token;
$_SESSION['name'] = $name;
header("Location:http://mursali.com/Profile/test.php");
提前致谢。
答案 0 :(得分:0)
您应该在每次重定向之前调用session_write_close(),以确保会话已被写下并关闭。
http://uk3.php.net/manual/en/function.session-write-close.php