首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >报头函数中的警告

问报头函数中的警告
EN

Stack Overflow用户
提问于 2014-05-07 07:14:32
回答 4查看 122关注 0票数 1

我有下面的代码

代码语言:javascript
复制
if ($_REQUEST['referer_url'] == "" ) {
  header("location: index.php");
  exit;
}
header('location: http://' . $_REQUEST['referer_url']);
exit;

我得到了错误Warning: Header may not contain more than a single header, new line detected。这是因为它在标题中添加了一个新行。我尝试像这里在堆栈溢出时建议的那样执行一个urlencode,但是它将我重定向到一个没有找到错误的服务器,它在url中包含了一个包含undefined index的奇怪url。我还能尝试什么来维护$_REQUEST['referer_url']呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-05-07 07:19:57

试试这个:

代码语言:javascript
复制
$redirect_url = isset($_SERVER['HTTP_REFERER']) && 
                !empty($_SERVER['HTTP_REFERER']) ?
                    $_SERVER['HTTP_REFERER'] : 'index.php';
header("Location: $redirect_url");
exit;
票数 1
EN

Stack Overflow用户

发布于 2014-05-07 07:27:27

首先需要检查您在$_REQUEST['referer_url']中得到了什么,如果您有完整的url,那么从条件中删除http://,如果是空的,它将重定向到index.php,尝试

代码语言:javascript
复制
$redirect = (!empty($_REQUEST['referer_url']) ? 'http://'.$_REQUEST['referer_url'] : 'index.php');
header("location: $redirect");
exit;
票数 0
EN

Stack Overflow用户

发布于 2014-05-07 07:30:01

有没有试过修剪裁判员?

http://php.net/trim

代码语言:javascript
复制
$myRefererUrl = trim($_REQUEST['referer_url']);    
header('location: '.(($myRefererUrl=='')?'index.php':$myRefererUrl));
exit;

使用trim,您可以去掉字符串中的换行符;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23511157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档