找人写了个过滤ua的脚本,发现过滤不干净,请教下
<?php$useragent=$_SERVER['HTTP_USER_AGENT'];
$needle='Chrome';
$ps=strstr($useragent, $needle);
if($ps) echo '<script>window.location.href="http://www.baidu.com";</script>';
echo "let's go";
?>
脚本就是这样, 举例就是将chrome浏览器跳转到百度,但是设置800人每小时的访问测试发现有不少漏网之鱼, 写的人说是并发多了,服务器忙不过来的原因,请问高手到底是什么原因,有没有办法优化下,谢谢了,祝大家新年快乐!
<?php
echo '<script>if(!!window.chrome){window.location.href="http://www.baidu.com";}</script>';
echo "let's go";
?>
OR
直接用js<script>if(!!window.chrome){window.location.href="http://www.baidu.com";}</script>
用正则表达式去匹配你想要过滤的字符 <?php
$useragent=$_SERVER['HTTP_USER_AGENT'];
$needle='你想要跳转的关键字';
$ps=strstr($useragent, $needle);
if($ps) echo '<script>window.location.href="http://www.baidu.com";</script>';
echo "let's go";
?> whitingday 发表于 2015-2-20 10:46
<script>
var is_keyword = navigator.userAgent.indexOf('wow64') > -1;
if(is_keyword){window.location.href="http://www.baidu.com";}
</script>
试试 这类问题适合用web server处理多好。 aabbccli 发表于 2015-2-20 13:39
$needle是个变量,你想过滤哪个词,就设置哪个词 foxconndmd 发表于 2015-2-20 19:56
这类问题适合用web server处理多好。
谢谢帮忙 aabbccli 发表于 2015-2-20 20:31
$needle是个变量,你想过滤哪个词,就设置哪个词
谢谢帮忙 whitingday 发表于 2015-2-20 18:55
var is_keyword = navigator.userAgent.indexOf('wow64') > -1;
if(is_keyword){window.location.href=" ...
是正常可以用,但是还是不干净,不知道怎么回事,估计就是服务器忙不过来吧 if(preg_match("/chrome/i",$useragent)){
echo " i am a chrome user";
} 装个IM 啥都解决了 有可能是大小写的问题,strstr 和 indexOf 都是大小写敏感 为什么不用php header这样的跳转而用js代码?是不是js屏蔽的问题? 用head 跳转
不要用js
页:
[1]
2