使用php程序header location 进行跳转的注意的一个细节!
众所周知,php网站跳转有三种方法:js、html meta refresh、php header(location: $url)。但是这里有一个非常小的细节,很容易导致出错。
有一次制作一个跳转程序,结果忽略了这一点,导致跳转其实都是没有成功。
程序全部源码如下,程序地址:http://www.***.com/go.php
当访问地址为:http://www.***.com/go.php?url=http%3a%2f%2fwww.zbphp.com%2f 的时候,firefox浏览器是正常的。后来把这个跳转程序复制到公司的另外一个网站,让qq上的一些好友测试,结果很多人都说打不开:ie内核的浏览器直接提示无法访问或者找不到,chrome有时候会提示被重置或找不到,使用firefox测试也偶偶会提示无法找到,但多刷新一次才显示正常。
仔细检查代码,是没有问题的。况且firefox是可以跳转,后想到了以往阅读到的一点就是:ie浏览器如果输出的内容字节太小(小于512字节),那么就会被忽略。然后将源码由header location跳转修改为 js html才所有浏览器都测试通过,原先偶偶出现firefox点击提示找不到xxx服务器也没有再出现过,现go.php全部源码:
';exit();}$url = urldecode( trim($_request['url']));if($url){ gheader($url);} else { exit('error input,go back');}
瀵逛