在php中验证查询字符串

时间:2014-03-18 20:32:11

标签: php

如果我有一个查询字符串,例如:http://mywebsite.co.uk/charge.php?val=5768

如果用户更改了' val'的值,我如何验证此查询字符串以使用php抛出错误?在查询字符串中。我可以在charge.php页面上写一些代码吗?

2 个答案:

答案 0 :(得分:2)

在我看来,你正在咆哮错误的树。你无法察觉是否有人改变了#34;一些东西。你得到的只是一个URL的请求,就是这样。您通常不知道该请求来自何处或谁提供了URL;你需要根据自己的优点来评估请求。

我猜你在有人访问该网址时会发生一些保密行为。价值改变了该行动的一些重要部分。然后,您需要创建服务器端检查和边界,以确认当前是否允许用户执行他在此处请求的任何操作。您需要在服务器上存储足够的信息,以确认是否允许用户将要执行的操作。您不能简单地信任URL中的信息,因为任何人都可以篡改它。

如何在你的情况下具体做到这一点尚不清楚,因为我没有具体的想法应该在那里发生什么。

答案 1 :(得分:0)

您可以检查val是否为整数,以及数据库中是否存在val。我使用像下面这样的函数来检查整数:

// CHECK IF VALID INTEGER
function valid_integer($str)
{
    if (strlen($str) == strlen(preg_replace('#[^0-9]#i', '', $str) + 0) AND $str > 0 AND $str < 9999999999999)
    {
        return true;
    }
}

所以我可以像下面那样检查val

if (valid_integer($_GET['val']))
{
    echo 'valid int';
}
    else
    {
        echo 'not valid int';
    }

然后你必须检查数据库中是否存在val。如果您使用数据库。