如何解决在PHP中重定向后丢失会话的问题?
最近,我遇到了一个非常常见的问题,即在重定向后丢失会话。在搜索该网站后,我仍然找不到任何解决方案(尽管这是最接近的解决方案)。
更新资料
我找到了答案,我想将它发布在这里,以帮助遇到同样问题的任何人。
首先,执行以下常规检查:
session_start();
<?php
header
exit();
session_write_close();
session_regenerate_id(true)
register_globals
php.ini
phpinfo()
$_SESSION
www.yourdomain.com
yourdomain.com
.php
现在,这些是最常见的错误,但是如果他们没有解决问题,那么问题很可能与您的托管公司有关。如果一切正常,localhost但不能在您的远程/测试服务器上运行,则很可能是罪魁祸首。因此,请检查您的托管服务提供商的知识库(也可以尝试其论坛等)。对于FatCow和iPage之类的公司,它们要求您指定session_save_path。像这样:
localhost
session_save_path
session_save_path('"your home directory path"/cgi-bin/tmp'); session_start();
(将“您的主目录路径”替换为实际的主目录路径。这通常在控制面板内(或等效菜单中),但是您也可以test.php在根目录上创建一个文件并输入:
test.php
<?php echo $_SERVER['SCRIPT_FILENAME']; ?>
“ test.php”之前的位是您的主目录路径。当然,请确保该文件夹确实存在于您的根目录中。(某些程序在同步时不会上传空文件夹)