无法在PHP中取消设置或删除会话变量 - Windows服务器

时间:2014-03-05 06:10:26

标签: php mysql session post session-variables

首先,谢谢你试图帮助我。 :)

我们有一个带有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 ...而我无法删除

感谢您为我提供帮助,对不起我的英语:))

0 个答案:

没有答案