【问题标题】:PHP ignoring if statement, unsetting session varsPHP忽略if语句,取消设置会话变量
【发布时间】:2013-01-17 17:01:42
【问题描述】:

我有一个 PHP 脚本,它存储一个 url,从该 URL 提交表单到会话变量中,然后将其与当前页面 url 进行比较。如果它与会话中存储的不同,它将被取消设置,至少它应该是这样工作的。问题是用于检查两个 url 是否匹配的 if 语句似乎被忽略了,并且会话变量无论如何都未设置。

$compare_url_old = array_shift(explode(',', $_SESSION['search_page']));
$compare_url_new = array_shift(explode(',', $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']));

if ($compare_url_new != $compare_url_old)
{
    unset($_SESSION['search_page']);
    unset($_SESSION['search_price_min']);
    unset($_SESSION['search_price_max']);
    unset($_SESSION['search_name']);
}

奇怪的是,如果我尝试在 if 语句中回显某些内容,它会正常工作,但由于某种原因,每次都会调用未设置的函数,尽管结果如此。

【问题讨论】:

  • var_dump($compare_url_old, $compare_url_new);的结果是什么?
  • string(27) "take.bg/gps_navigatsia__135" string(27) "take.bg/gps_navigatsia__135" 两个网址都是一样的。
  • 你那里有session_start() 对吗?
  • 是的,如果我删除未设置的函数,会话变量会正确转移到其他页面。
  • 如果两个值相等,则无法输入 if 条件...问题一定出在其他地方。 var_dump($compare_url_new != $compare_url_old);呢?

标签: php session unset


【解决方案1】:

问题解决了,原来是我在有问题的代码上方忽略了一些东西,脚本工作正常。很抱歉。

【讨论】:

    猜你喜欢
    • 2016-10-01
    • 2013-02-17
    • 2014-04-03
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 2018-08-03
    • 2023-01-23
    相关资源
    最近更新 更多