在做PHP时遇到一个这样的问题: 怕别人在地址栏中直接输入地址,还有怕别人修改PHP的参数,我使用了 $sun_inpage=$_SERVER["HTTP_REFERER"]; if ($sun_inpage==""){$sun_inpage=$HTTP_REFERER;} if ($sun_inpage==""){echo "非法调用!";exit();} $sun_ip=$_SERVER["LOCAL_ADDR"]; if ($sun_ip==""){$sun_ip=$_SERVER["SERVER_ADDR"];} if ($sun_ip=="外网IP地址" or $sun_ip=="192.168.0.1" or $sun_ip=="192.168.0.16") {}else{ echo "非法调用!"; exit(); } 上面程序第一个显示非法调用,是判断用户是不是在浏览器中直接输入网址的,如果是,则提示非法调用,但怕其它人把网页的参数做在本地机上,然后用本地计算机调用某个页面,所以判断页面是不是在本服务器上的,上面程序在运行过程中,不管是链接,还是在新窗口中打开,或者是框架中都可以使用,但在使用javascript打开新窗口时,就会出错非法调用字样,我查了一下PHP函数,没有发现有其它函数 不用这样吧!随她去好了!
function CheckDomain() // 检查http发送是否合法
{
global $HTTP_HOST;
global $HTTP_REFERER;
$pos = strpos($HTTP_REFERER, "http://$HTTP_HOST");
if($pos==0 && is_int($pos))
{
return true;
}
else
{
return false;
}
}
这样就ok了
这时我希望别人能用链接的形式访问,但如果是直接在地址栏中输入的就报错,我这一点已经实现了,但是我也同样用链接的形式链接到某个页面,但这个页面是弹出式窗口,这样就不行了,我的程序在最上面,大家帮帮忙,要多少分无所谓,我可以再给,只要问题能够解决。
弹出新窗口可以有很多方式啊
比如提交一个action=yourpage method=get target=_blank的隐藏表单
$_GET[]
if (!$_POST["变量名"]) die("......")
所以,唯一的办法就是不要使用javascript。
怕别人在地址栏中直接输入地址,还有怕别人修改PHP的参数,我使用了
$sun_inpage=$_SERVER["HTTP_REFERER"];
if ($sun_inpage==""){$sun_inpage=$HTTP_REFERER;}
if ($sun_inpage==""){echo "非法调用!";exit();}
$sun_ip=$_SERVER["LOCAL_ADDR"];
if ($sun_ip==""){$sun_ip=$_SERVER["SERVER_ADDR"];}
if ($sun_ip=="外网IP地址" or $sun_ip=="192.168.0.1" or $sun_ip=="192.168.0.16")
{}else{
echo "非法调用!";
exit();
}
上面程序第一个显示非法调用,是判断用户是不是在浏览器中直接输入网址的,如果是,则提示非法调用,但怕其它人把网页的参数做在本地机上,然后用本地计算机调用某个页面,所以判断页面是不是在本服务器上的,上面程序在运行过程中,不管是链接,还是在新窗口中打开,或者是框架中都可以使用,但在使用javascript打开新窗口时,就会出错非法调用字样,我查了一下PHP函数,没有发现有其它函数
不用这样吧!随她去好了!