我有一个脚本,如果用户代理等于变量,但如果不是必须重定向到403页 - 必须显示正常的网页。取而代之的是脚本只显示空白页面,这一切。请帮我解决我的问题还是什么,我做错了。
下面是该脚本:
<?php
//-- Get user agent
//-- Thanks @creditosrapidos10min for hint about strtolower()
$useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
//-- BadBot variable
$Baiduspider = stripos($useragent, "Baiduspider");
$DotBot = stripos($useragent, "DotBot");
//-- BadBot constant
$BADBOT = ($Baiduspider||$DotBot);
if ($agent == $BADBOT){
header("Location: ohno/403.php");
exit;
} else { ?>
Display home page
<?php }?>
我想你用$user
代替$user_agent
的。
而根据PHP手册php manual on stipos你应该使用三联=像===。
下面是应该的一个例子。
<?php
//-- Get user agent
//-- Thanks @creditosrapidos10min for hint about strtolower()
$useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
//-- BadBot variable
$Baiduspider = stripos($useragent, "Baiduspider");
$DotBot = stripos($useragent, "DotBot");
//-- BadBot constant
$BADBOT = ($Baiduspider||$DotBot);
if ($useragent === $BADBOT){
header("Location: ohno/403.php");
exit;
} else { ?>
Display home page
<?php }
?>
尝试用$ HTTP_SERVER_VARS代替$ _ SERVER,为了不与全局变量的问题。
如果没有,尝试用strtolower:
<?php
//-- Get user agent
$useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
//-- BadBot variable
$Baiduspider = stripos($useragent, "baiduspider");
$DotBot = stripos($useragent, "dotbot");
//-- BadBot constant
$BADBOT = ($Baiduspider||$DotBot);
if ($agent == $BADBOT){
header("Location: ohno/403.php");
exit;
} else { ?>
Display home page
<?php }?>
您正在使用stripos
上$useragent
但是你有没有定义$useragent
,你只定义$agent
。尝试更正此,再次尝试。