我有一个脚本可以将一些内容记录到数据库中。在脚本开始时,我有一些代码测试会话以确定用户是否已登录 - 如果没有 - 将它们重定向到首页。
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");
}
答案 0 :(得分:0)
如果POST不是来自浏览器
发出HTTP请求的客户端类型在很大程度上无关紧要。
此处的重要部分是$_SESSION['user']['loggedin']
为空,因此if
传递并调用redirect
函数。
将忽略重定向
将调用重定向功能。
客户端可能会也可能不会遵循服务器的指示来请求不同的URL。
并且会处理脚本的其余部分吗?
行为与浏览器相同。
问题中没有任何内容可以告诉我们redirect
函数的作用。
可能会exit
,在这种情况下,if
语句之后的任何内容都不会被处理。
可能没有。
...但是对于任何类型的HTTP客户端,结果都是相同的。浏览器不是特例。