重定向&非浏览器创建了POSTS

时间:2017-12-01 16:15:26

标签: php

我有一个脚本可以将一些内容记录到数据库中。在脚本开始时,我有一些代码测试会话以确定用户是否已登录 - 如果没有 - 将它们重定向到首页。

if (!$_SESSION['user']['loggedin'] || $_SESSION['user']['access_level'] < ACCESSLEVEL_ACOUNT_MANAGER) {
    redirect('../index.php');
}

但是 - 我正在从这个脚本中获得奇怪的数据库条目。我肯定知道。我已经建立了一个例程,当一个条目告诉我这些会话的价值时,我会给我发电子邮件 - 而且它们都是空白的。

如果POST不是来自浏览器 - 是否会忽略重定向并且是否会处理其余的脚本?

-

编辑 - 这是重定向功能(在我添加退出之前),这是罪魁祸首。

function redirect($url) {

    session_write_close();

    if (true || headers_sent()) {
        print "<script langauge=\"JavaScript\">window.location='$url';</script>";
    } else {
        header("Location: $url");
    }
    header("Location: $url");
}

1 个答案:

答案 0 :(得分:0)

  

如果POST不是来自浏览器

发出HTTP请求的客户端类型在很大程度上无关紧要。

此处的重要部分是$_SESSION['user']['loggedin']为空,因此if传递并调用redirect函数。

  

将忽略重定向

将调用重定向功能。

客户端可能会也可能不会遵循服务器的指示来请求不同的URL。

  

并且会处理脚本的其余部分吗?

行为与浏览器相同。

问题中没有任何内容可以告诉我们redirect函数的作用。

可能会exit,在这种情况下,if语句之后的任何内容都不会被处理。

可能没有。

...但是对于任何类型的HTTP客户端,结果都是相同的。浏览器不是特例。