我在用php的header做跳转时,报错误。

Header may not contain more than a single header, new line detected

先贴一下代码:

class advertJumpUrl
{
/**
* 广告唯一的key
* @return array
*/
private static function aGetKey()
{
$sKey = Ko_Tool_Input::VClean("r","k",Ko_Tool_Input::T_STR);
$sKey = \apps\brand\cpm\MFacade_LogApi::sDecrypt($sKey);
$aPara = explode('_', $sKey);
return $aPara;
} /**
* 广告跳转的url
* @return url
*/
private static function sGetUrl()
{
$sUrl = Ko_Tool_Input::VClean("r","t",Ko_Tool_Input::T_STR);
return \apps\brand\cpm\MFacade_LogApi::sDecrypt($sUrl);
} /**
* 程序执行
*/
public static function vRun()
{
$aPara = self::aGetKey();
$sUrl = self::sGetUrl();
// $sUrl = rawurldecode($sUrl);
if($aPara && $sUrl) {
// 记录点击事件
\apps\brand\cpm\MFacade_LogApi::vClick($aPara[], $aPara[]);
header('HTTP/1.1 301 Moved Permanently');
header('location:'.$sUrl);
exit;
}
header('HTTP/1.1 301 Moved Permanently');
header('location:/');
exit;
}
}
advertJumpUrl::vRun();

在网上搜索一下,是因为URL编码有问题。我尝试用urlencode 然后再urldecode。发现不行。

有人建议用rawurlencode。我试了试,成功了。

urlencode 和rawurlencode 的区别:

urlencode 将空格则编码为加号(+)
rawurlencode 将空格则编码为加号(%20)

参考文档:

https://stackoverflow.com/questions/16320403/getting-warning-header-may-not-contain-more-than-a-single-header-new-line-dete

http://www.jb51.net/article/24123.htm

header 跳转时报错误。Header may not contain more than a single header, new line detected的更多相关文章

  1. 关于header跳转之后的乱码问题

    关于header跳转之后的乱码问题 http://www.360doc.com/content/11/0603/19/7052474_121495648.shtml 问题:不同网站的跳转出现乱码,不同 ...

  2. location跳转和header跳转的区别

    1:header("location:url") 跳转之前不能有任何输出,如果想在header之前有输出,则要修改php.ini文件.具体 output_handler =mb_o ...

  3. net::ERR_CONNCTION_ABORTED与http post request header is too large 错误

    开始浏览器报(net::ERR_CONNCTION_ABORTED)然后就一直找这个错误是怎么引起的,找了一圈也没有找到答案. 后来看了一下后台发出后台错http post request heade ...

  4. maven 错误:读取 xxx.jar 时出错;invalid LOC header (bad signature) 1 错误

    reqHeader:{Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8, Upgrade-Insecure- ...

  5. Ubuntu 16.04错误:正在读取软件包列表... 有错误! E: Encountered a section with no Package: header E: Problem with MergeList /var/lib/apt/lists/ppa.launchpad.net_t-tujikawa_ppa_ubuntu_dists_xenial_main_i18n_Translatio

    错误: 正在读取软件包列表... 有错误! E: Encountered a section with no Package: header E: Problem with MergeList /va ...

  6. AIX上增加逻辑卷时报错误0516-787 extendlv: Maximum allocation for logical volume

    AIX上增加逻辑卷时报错误0516-787 extendlv: Maximum allocation for logical volume jdelv02 is 512. 在往aix使用chfs -a ...

  7. JSP中,当页面为404或者500时。设置跳转到错误提示页面

    最好的就是在WEB.XML文件中配置错误代码的跳转页面,首先建立个 出现500错误的页面,提示出错了,然后再WEB.XML文件中配置,配置如下 一. 通过错误码来配置error-page <er ...

  8. 跳过复制错误——sql_slave_skip_counter

    昨天不少同学讨论<小心,前方有雷 —— sql_slave_skip_counter>,有说作者在玩文字游戏,扯了那么多sql_slave_skip_counter=1不还是跳过一个事务嘛 ...

  9. mysql主从复制跳过复制错误【转】

    跳过复制错误 mysql因为binlog机制问题,有些时候会出现从库重放sql执行失败的情况,特别是旧的STATEMENT模式最容易出现这种情况(因为函数和存储过程等原因),这也是为什么强调使用mix ...

随机推荐

  1. Flink--Split和select

    Split就是将一个DataStream分成两个或者多个DataStream Select就是获取分流后对应的数据 val env = StreamExecutionEnvironment.getEx ...

  2. Codeforces 542A Place Your Ad Here

    Place Your Ad Here 把没用的第一类区间去掉之后, 排序, 然后枚举第二类区间, 在上面死命二分就好了. #include<bits/stdc++.h> #define L ...

  3. fillder--模拟弱网

    ##设置路径## Rules--Performemnts---Silamte Mordem Speeds 弱网原理 Rules—>Cutomize Rules打开CustomRules.js 文 ...

  4. Jenkins的介绍

    在公司看见有的部门在使用这个工具,好奇一下,今天就开始学习一番. 1.官网 https://jenkins.io/ 2.介绍 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用 ...

  5. day 49-css补充(终结)[浮动和定位]

    老师的笔记: 前情回顾: day49 混乱即阶梯. 1. 前情回顾 HTML HTTP和HTML 文档机构 <!Doctype html> HTML head <meta> & ...

  6. Idea中在代码顶部添加自定义作者和时间

    一.在工具栏找到File=>settings=>Editor=>File and Code Templates 二.选择右边的File Header,在编辑框中添加自定义信息,例如: ...

  7. Java大数相乘-hdu1063

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1063 题目描述: 代码实现: import java.util.Scanner; import jav ...

  8. 更新pip和setuptools

    python -m pip install -U pip setuptools

  9. TF之RNN:实现利用scope.reuse_variables()告诉TF想重复利用RNN的参数的案例—Jason niu

    import tensorflow as tf # 22 scope (name_scope/variable_scope) from __future__ import print_function ...

  10. Pandas学习1 --- 数据载入

    import numpy as np import pandas as pd 数据加载 首先,我们需要将收集的数据加载到内存中,才能进行进一步的操作.pandas提供了非常多的读取数据的函数,分别应用 ...