如果我有一个查询字符串,如:http://mywebsite.co.uk/charge.php?val=5768
验证查询字符串在PHP
我如何可以验证该查询字符串,如果用户在查询改变“VAL”的值抛出用PHP错误串。我可以在charge.php页面上编写一些代码来执行此操作吗?
如果我有一个查询字符串,如:http://mywebsite.co.uk/charge.php?val=5768
验证查询字符串在PHP
我如何可以验证该查询字符串,如果用户在查询改变“VAL”的值抛出用PHP错误串。我可以在charge.php页面上编写一些代码来执行此操作吗?
在我看来,你在吠叫错误的树。你无法检测到某人是否“改变”了某些东西。你得到的只是一个URL的请求,就是这样。您通常不知道该请求来自哪里或谁提供了该URL;您需要根据自身的优点评估请求。
我猜你有一些保密的行为,当有人访问该网址时发生。价值观改变了这一行动的一些重要部分。然后,您需要创建服务器端检查和界限,以确认用户目前是否可以执行他在此处请求的任何操作。您需要在服务器上存储足够的信息以确认用户是否允许执行该操作。你不能简单地信任URL中的信息,因为任何人都可以篡改它。
如何做到这一点具体在你的情况是不明确的,因为我没有具体的想法那里应该发生什么。
我很害怕它与6小时前的问题([使用Stripe](http://stackoverflow.com /问题/ 22481482 /条纹网关日志犯规出现量))。我不愿意在一个必须构建仅仅安全的代码的网站上付款,因为“我无法更改GET参数”。 – h2ooooooo
您可以检查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存在于数据库中。如果你使用分贝。
是的,你可以。我相信你可以弄明白。 – h2ooooooo
请你能给我一个提示,也许我是新来的php – Rifki
一般来说,Rifki,StackOverflow是用来发布你已经尝试过的代码示例,你得到了什么错误,并寻求帮助修复这些错误。不适合人们为你写代码。 – Rottingham