-1

在获得一些经验后,我第一次开始我的 php 开发。并根据我朋友的要求编写了一个脚本。

这是脚本但我无法在我的服务器上运行它。

<?php

  include("geoip.inc");
$ip=$_SERVER['REMOTE_ADDR'];
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);

$country_code = geoip_country_code_by_addr($gi, "$ip");

// Country name is not used so commented
// Get Country Name based on source IP
//$country = geoip_country_name_by_addr($gi, "$ip");
$real=false;
geoip_close($gi);

{if ($_SERVER[’HTTP_USER_AGENT’]!= “Googlebot”)
{if ($_COOKIE['iwashere'] != "yes") 
  {setcookie("iwashere", "yes", time()+315360000); 
  if ($country_code="US")
{
    if(preg_match("/google\.com(.+?)sa=(.+?)/", $_SERVER['HTTP_REFERER']))
    include_once("Biggenius.htm");
    else
    $real=True;
};
else
$real=True;

};

}
else
$real=True;};

if ($real==True)
 include_once(Biggenius1.htm);
?php>

这个脚本没有运行,我也想学习。如何以更简单的方式对其进行编码。任何替代和有效的编码方式?

有人指出错误,但我仍然无法解决。请张贴完整的代码没有错误。而不是只发布错误。问候

4

4 回答 4

0

您的条件块应该喜欢{ //code }而不是{ //code }; 结束标记?php>也无效。如果它?>是一个纯 php 文件,则可以省略结束标记。

于 2012-04-30T14:17:16.477 回答
0

您的代码充满了语法错误!这是清理后的版本。

<?php

  include("geoip.inc");
$ip=$_SERVER['REMOTE_ADDR'];
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);

$country_code = geoip_country_code_by_addr($gi, "$ip");

// Country name is not used so commented
// Get Country Name based on source IP
//$country = geoip_country_name_by_addr($gi, "$ip");
$real=false;
geoip_close($gi);

if ($_SERVER['HTTP_USER_AGENT']!= 'Googlebot') {
    if ($_COOKIE['iwashere'] != "yes")  {
        setcookie("iwashere", "yes", time()+315360000); 
        if ($country_code="US") {
            if(preg_match("/google\.com(.+?)sa=(.+?)/", $_SERVER['HTTP_REFERER'])) {
                include_once("Biggenius.htm");
            } else {
                $real = true;
            }
        } else {
            $real = true;
        }
    }
} else {
    $real = true;
}

if ($real) {
    include_once('Biggenius1.htm');
}

?>
于 2012-04-30T14:17:20.550 回答
0

您有以下三种情况:

};

您需要更改为:

}

并且您的脚本中可能存在更多错误,错误消息可能会有所帮助。

于 2012-04-30T14:14:05.527 回答
0

您需要移动括号:

if ($_SERVER[’HTTP_USER_AGENT’] !=  “Googlebot”) { 
    //Do stuff
}

括号在if条件之后,所以if (condition) { code }. 您在许多地方都正确执行了此操作,但并非在所有地方都正确。查看特定行号的错误 PHP 输出。

于 2012-04-30T14:14:16.870 回答