`
jdluojing
  • 浏览: 17968 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

php header 跳转 ie问题

 
阅读更多

电影站提供电影bt下载,由于使用宝丽通播放器,上传电影的时候会同时上传一个电影的hash文件。利用这个hash文件,第一次请求时动态的生成对应的bt种子保存(指定路径)并提供下载。当用户点击下载bt种子的时候,首先到对应的目录下检测对应的bt种子文件是否存在,如果存在,则直接提供下载,否则先生成,再下载。

Bt种子的下载直接在文件中使用header跳转的方式。php文件本身是gbk编码。

后来发现,在chrome和firefox和ie6中都能正常工作,但是到了ie8中会出现找打不文件的情况。这让我很郁闷,ie6都能行,结果ie8还有问题。

//指向torrent文件,提供下载
//$torrent_file_url = "torrent/tyvod1/科幻片/雷神托尔.torrent"
$redirect_url = "http://vod.cqjtu.edu.cn/".$torrent_file_url;
Header("HTTP/1.1 303 See Other"); 
Header("Location: ".$redirect_url);
exit ();

经过对比测试,发现如果路径中有中文,ie8就没法下载。php文件本身是GBK编码,于是我们在跳转之前,先将gbk编码的字符串转换为utf8编码。

//指向torrent文件,提供下载
//$torrent_file_url = "torrent/tyvod1/科幻片/雷神托尔.torrent"
$redirect_url = "http://vod.cqjtu.edu.cn/".$torrent_file_url;
Header("HTTP/1.1 303 See Other"); 
Header("Location: ".iconv("gbk","utf-8",$redirect_url));
exit ();

这下,在chrome和firefox以及ie8和ie9中都没问题了,但是在ie6中又不能下载了。中文乱码。查资料之后说是因为ie6对UTF-8的支持不够完善。尼玛ie还真难伺候,无论是GBK编码还是UTF-8编码,chrome和firefox都能正确解析,ie自家兄弟居然出这样的问题。

没找到好的办法,只得专门为ie6做一下…

//指向torrent文件,提供下载
//$torrent_file_url = "torrent/tyvod1/科幻片/雷神托尔.torrent"
$redirect_url = "http://vod.cqjtu.edu.cn/".$torrent_file_url;
Header("HTTP/1.1 303 See Other"); 
if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 6.0')===false){//非ie6
	Header("Location: ".iconv("gbk","utf-8",$redirect_url));
}else{//ie6
	Header("Location: ".$redirect_url);
}
exit ();

不知道是否有哪位仁兄曾经遇到过这个问题,或者有更好的解决方案。

顺带谈一下宝丽通,不知道有没有谁用过它。这东西怎么说呢,有好也有不好。好的地方就是用起来p2p效果还是不错,不好的地方就是使用不方便,官方给的资料太少,只提供了基本的示例。还有那个.hash文件,直接生成torrent不就得了嘛。最坑爹的就是tracker居然在设置为它自己的tracker,而且没法更改。这要是内网用户用这个根本就没用。不过把官方的安装程序解包之后还是可以修改tracker的。本来就是内网p2p,自己搭建个tracker比用它提供的外网tracker要安全,稳定得多。

如果哪位有更好的免费的局域网p2p解决方案,烦请告诉小弟一声)。



分享到:
评论

相关推荐

    实现网页页面跳转的几种方法(meta标签、js实现、php实现)

    - **方法四**:`window.navigate()`方法只在IE浏览器中有效,现代浏览器已不支持,因此在跨浏览器开发中不推荐使用。 ```javascript window.navigate("http://jb51.net/"); ``` 3. **PHP实现**: PHP是一种...

    php download.php实现代码 跳转到下载文件(response.redirect)

    - 对于IE浏览器的中文文件名乱码问题,需要特殊处理编码。 - 强制下载文件,可以使用`Content-Disposition: attachment`头信息,配合文件名参数,使浏览器以附件形式下载文件。 - FTP下载可以通过FTP扩展实现,...

    PHP关于IE下的iframe跨域导致session丢失问题解决方法

    标题中的问题涉及到的是PHP在Internet Explorer (IE) 浏览器下,特别是在使用iframe时,出现的Session丢失问题。在描述中提到,当一个登录页面被其他网站通过iframe框架加载时,用户在IE浏览器中无法正常登录,因为...

    ECSHOP WWW和手机版跳转源码

    docomo|up.browser|up.link|blazer|helio|hosin|huawei|novarra|coolpad|webos|techfaith|palmsource|alcatel|amoi|ktouch|nexian|ericsson|philips|sagem|wellcom|bunjalloo|maui|smartphone|iemobile|spice|bird|...

    探讨php中header的用法详解

    然而,这种方法可能在某些旧版IE浏览器中不可靠,因此推荐使用 `header()` 函数来设置缓存控制。 ```html , no-store, must-revalidate"> ``` ### 总结 `header()` 函数在PHP中扮演着不可或缺的角色,它允许...

    PHPCMS 2008 SP2 正式版.zip

    41、 直接访问header.tpl.php 暴漏网站安装地址问题 42、 邮件发送在不同环境下,发送失败问题、 43、 修正了水印问题 44、 修正了 广告被屏蔽 把 ads 里面的 clickads.php点击里面带有 ads的问题 45、 修正...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例207 关闭IE主窗口时不弹出询问对话框 262 实例208 弹出提示对话框并重定向网页 263 实例209 自动关闭的广告窗口 264 实例210 在弹出的对话框中选择个性头像 265 实例211 浮动的广告窗口 266 实例212 在页面右下...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例207 关闭IE主窗口时不弹出询问对话框 262 实例208 弹出提示对话框并重定向网页 263 实例209 自动关闭的广告窗口 264 实例210 在弹出的对话框中选择个性头像 265 实例211 浮动的广告窗口 266 实例212 在页面右下...

    O-Blog V2.6 Build 0430

    修正删除的时候ifDel()函数导致在IE5下不能完成跳转 修正在不支持short_open_tag的PHP环境中会报错的问题 修正后台文本框可以输入的字符数过少的问题 修正搜索的一个安全过滤问题 修正编辑日志时发表trackback会...

    KODExplorer 芒果云-资源管理器

    - ie 重命名状态textarea不可选则问题 - 修复mac 下 ctrl连选出现右键菜单。 - ie 树目录右键兼容性 - ###ver2.0 `2014/3/2` ---- ####fix bug:(bug解决和程序优化) - body右键屏蔽(保留input、textarea)...

    PhpCMS2008 SP2 build20090820 简体中文GBK

    37、修正了IE8下面兼容问题 38、php最新版本下出现的问题程序乱码显示 39、修正了模块下面的header.tpl.php头部文件标准需要统一 40、修正了升级后,修改内容后,原升级地址被修改 41、直接访问header.tpl.php暴漏...

    PhpCMS2008 SP2 build20090820简体中文 UTF-8

    37、修正了IE8下面兼容问题 38、php最新版本下出现的问题程序乱码显示 39、修正了模块下面的header.tpl.php头部文件标准需要统一 40、修正了升级后,修改内容后,原升级地址被修改 41、直接访问header.tpl.php暴漏...

    完美兼容各大浏览器获取HTTP_REFERER方法总结

    对于非IE浏览器,直接使用`window.location.href`进行页面跳转。 另一种情况,如果开发者需要在服务器端获取HTTP_REFERER,例如使用PHP,可以通过cURL库来伪造HTTP_REFERER。以下是一个PHP示例: ```php <?php $ch...

    PHP设置Cookie的HTTPONLY属性方法

    如果使用的是PHP5.1或更早版本,可以通过`header`函数来设置HTTPOnly属性: ```php header("Set-Cookie: hidden=value; HttpOnly"); ``` **三、其他相关知识点** 1. **Cookie的生命周期**:可以通过设置过期...

    解决js下referer兼容各大浏览器的方法

    HTTP Header referer这玩意主要是告诉人们我是从哪儿来的,就是告诉人家我是从哪个页面过来的,可以用于统计访问本网站的用户来源,也可以用来防盗链。...众所周知,我们web开发人员痛恨IE浏览器,因

    dwz-user-guide.zip_dwz_work

    1.2 **强大的Ajax支持**:DWZ提供了丰富的Ajax操作工具,如异步加载、无刷新更新、页面跳转等,提升了用户的交互体验。 1.3 **兼容性**:DWZ框架兼容主流的浏览器,包括IE6+、Firefox、Chrome、Safari和Opera,确保...

    O-Blog 2.6

    修正删除的时候ifDel()函数导致在IE5下不能完成跳转 修正在不支持short_open_tag的PHP环境中会报错的问题 修正后台文本框可以输入的字符数过少的问题 修正搜索的一个安全过滤问题 修正编辑日志时发表trackback会...

    HTML、CSS里面关于 id、class、name 属性的区别和用法.pdf

    - 脚本引用:在 IE 脚本中,可以直按以 id 引用对应的对象,如 `myInput.value`。 2. **class 属性** - **复用性**:class 允许元素拥有一个或多个相同的类别名,可以在文档中多次使用。 - **用途**: - CSS ...

Global site tag (gtag.js) - Google Analytics