PHP中未检测到bingbot的URL请求参数

PHP中未检测到bingbot的URL请求参数,php,apache,web-crawler,Php,Apache,Web Crawler,我有一件奇怪的事情发生了,bingbot正在我的网站上爬行,其中一个URL如下所示: 在我的代码中,我有以下功能: function getNumericValue($value) { if (is_numeric($value)) { return mysql_escape_string($value); } if (isset($_GET[$value])) { if (!is_numeric($_GET[$value

我有一件奇怪的事情发生了,bingbot正在我的网站上爬行,其中一个URL如下所示:

在我的代码中,我有以下功能:

function getNumericValue($value) {
    if (is_numeric($value)) {
            return mysql_escape_string($value);
    }
    if (isset($_GET[$value])) {
            if (!is_numeric($_GET[$value])) {
                    echo "$value must be numeric.";
                    exit;
            }
            return mysql_escape_string($_GET[$value]);
    } if (isset($_POST[$value])) {
            if (!is_numeric($_POST[$value])) {
                    echo "$value must be numeric.";
                    exit;
            }
            return mysql_escape_string($_POST[$value]);
    } else {
            echo "Please specify a $value";
            debug("Please specify a $value - " .$_SERVER['REQUEST_URI'].' : '.$_SERVER['HTTP_USER_AGENT'].' : '.print_r($_POST, true).' USERID: '.getUserid());
            exit;
    }
}

debug()函数每15分钟向我发送一次错误电子邮件,当microsoft爬行网站时,我得到:请指定一个id-/program.php?action=view&id=2233:msnbot NewsBlogs/2.0b(+http://search.msn.com/msnbot.htm):Array()用户标识:-1

您可以从URL中看到它有一个id,但PHP完全忽略了它。这对谷歌蜘蛛来说是很好的


你知道会发生什么,以及如何修复吗?

胡乱猜测-可能在id号后面有一个额外的空格,is_numeric('2233')返回false。尝试修剪从$\u GET/$\u POST(或$\u请求)获取的值:


仅供参考,您可以使用$\u请求,而不是检查$\u GET和$\u POST:另外,我认为您打算使用elseif。您的代码看起来应该这样做,但实际上并非如此。最后一个else仅用于
isset($\u POST[$value])
部分。最后,您想要的预期输出是什么?谢谢-我一直在使用REQUEST,直到我发现这个奇怪之处,所以一直在尝试各种方法!对不起,请输入提交。我希望BingBot对上面的URL进行爬虫(blar.php?id=1,然后getNumericValue('id')获取$\u get['id']-但是,它不认为它是在请求参数中设置的,因为它正在命中ELSE子句。它不会这样,因为它正在命中ELSE子句,即PHP不认为正在设置请求参数!但是感谢您的建议。
function getNumericValue($value) {
    if (is_numeric($value)) {
            return mysql_escape_string($value);
    }

    if (isset($_REQUEST[$value])) {
            $request_value = trim($_REQUEST[$value]);
            if (!is_numeric($request_value)) {
                    echo "$value must be numeric.";
                    exit;
            }
            return mysql_escape_string($request_value);
    }

    echo "Please specify a $value";
    debug("Please specify a $value - " .$_SERVER['REQUEST_URI'].' : '.$_SERVER['HTTP_USER_AGENT'].' : '.print_r($_POST, true).' USERID: '.getUserid());
    exit;
}