首先,谢谢你试图帮助我。 :)
我们有一个带有PHP站点的Windows Server,mysql数据库。 Windows Server版本还不支持.htacces,因此我们有一个规则,每个404错误都被重定向到redirect.php。
当然,我们有一个会话处理程序,它会写入会话表
问题出在帖子上并且变得更好了。 我有一个解决方案,跳过这个,什么是将表单操作设置为redirect.php什么是设置$ _SESSION ['lastPost']变量等于$ _POST除了$ _POST ['redirect']什么是重定向网址。当我重定向到url($ _POST ['redirect'])时,我将$ _SESSION ['lastPost']收回$ _POST并取消设置($ _ SESSION ['lastPost'])。
在搜索之前,这已经完美地完成了。由于搜索使用ajax,我必须将搜索参数设置为$ _SESSION,之后,我无法取消设置$ _SESSION变量。 (Auto Globals也在我们的服务器上开启)
如果我对已设置$ _SESSION值的行进行注释,那就完美无缺。
我知道我不应该操纵超大球,但是由于这个好网址,我无法解决。
我读取了大部分会话未设置和会话删除问题,但没有我的解决方案。 我有session_start(); 我尝试将最后一个$ _SESSION变量赋值给session_write_close();但它对我没有帮助。
redirect.php
require_once("###########/inc/session.php"); //that is the right location
if (isset($_POST['redirect']) && !empty($_POST['redirect'])) {
$strRedirect = $_POST['redirect'];
unset($_POST['redirect']);
$_SESSION['lastPost'] = $_POST;
unset($_POST);
redirect(urldecode($strRedirect));
exit();
}
的search.php
require_once("###########/inc/session.php"); //that is the right location
if (isset($_SESSION['lastPost']) && !empty($_SESSION['lastPost'])) {
$_POST = $_SESSION['lastPost'];
unset($_SESSION['lastPost']);
}
//如果我注释掉下面的会话变量赋值,$ _SESSION ['lastPost']将变为null,因为它必须,否则它永远不会
if (!empty($_POST['job_types_id'])) {
$strJobTypesWhere = "`job_types_id` = '" . (int) $_POST['job_types_id'] . "'";
$_SESSION['job_search'][] = $strJobTypesWhere;
}
当我第一次发布,工作正常,$ _POST获取$ _SESSION ['lastPost']值,之后,当我转储$ _SESSION ['lastPost']为空时,这里应该是结束... 在没有发布到重定向的好网址上进行简单刷新后,$ _SESSION ['lastPost']包含之前的$ _POST ...而我无法删除
感谢您为我提供帮助,对不起我的英语:))