【发布时间】:2013-04-25 14:01:03
【问题描述】:
我正在 oops 中进行编码,以便在 PHP 中上传图像。但是提交图像后,它会发出警告
“标题不能包含多个标题,检测到新行”
下面是我的函数,它给出的错误
public function ft_redirect($query = '') {
if (REQUEST_URI) {
$_SERVER['REQUEST_URI'] = REQUEST_URI;
}
$protocol = 'http://';
if (HTTPS) {
$protocol = 'https://';
}
if (isset($_SERVER['REQUEST_URI'])) {
if (stristr($_SERVER["REQUEST_URI"], "?")) {
$requesturi = substr($_SERVER["REQUEST_URI"], 0, strpos($_SERVER["REQUEST_URI"], "?"));
$location = "Location: {$protocol}{$_SERVER["HTTP_HOST"]}{$requesturi}";
} else {
$requesturi = $_SERVER["REQUEST_URI"];
$location = "Location: {$protocol}{$_SERVER["HTTP_HOST"]}{$requesturi}";
}
} else {
$location = "Location: {$protocol}{$_SERVER["HTTP_HOST"]}{$_SERVER['PHP_SELF']}";
}
if (!empty($query)) {
$location .= "?{$query}";
}
header($location);
exit;
}
【问题讨论】:
-
回显传递给
header()的值,并确保它们不包含换行符 -
echo out value is------> "Location : localhost/filethin/index.php?dir=" 但它不包含任何新行
-
我遇到了同样的问题,结果证明是 POST 请求方法上未设置的变量。
-
authenticate 方法应该返回一个字符串而不是重定向。