我是PHP的新手,所以不知道这会是怎样的。假设我有一个添加好友页面。在数据库中假设我有一个名为“friends”的表和以下行:my_id和friend_id以及id_request。
现在我的php页面看起来像:addfriend.php?id = friendid
然后我使用该链接中的id将数据库中的id和该friendid插入到数据库中。
问题是如果有人在地址栏的链接中输入“kdjfkldjlfk”会发生什么?
答案 0 :(得分:1)
你需要防止这些情况并验证
前:
测试$ _GET ['id'] isset并且friendid是真的,你可以查询数据库以查看id是否存在...
答案 1 :(得分:1)
如果您的意思是“如果某人访问URI的ID不存在会发生什么?”,那么这取决于您的PHP应该发生什么。
如果您的PHP没有检查它从SQL查询中获得了多少结果,那么该页面很可能会吐出 500内部服务器错误。
如果您已正确设计,那么它会返回一个文档,说明您无法添加不存在为朋友的用户。
实际上,如果你已经正确设计了数据,那么数据应该通过POST而不是GET发送,因为添加朋友不是幂等事件。 (参见HTTP specification - GET应该没有副作用)
答案 2 :(得分:1)
您需要验证您的用户输入。首先,将$_GET
值转换为int类型,如果它等于0
,告诉他们他们错误输入了它。
$var = (int)$_GET['id'];
if($var == 0)
{
// Error
}
else
{
// The rest of your code
}
答案 3 :(得分:1)
事实证明,PHP内置了一些非常酷的过滤功能。你应该学习它们并使用它们:
if (filter_var($_GET['id'], FILTER_VALIDATE_INT) === false) {
// error
}
if (filter_var($_GET['email'], FILTER_VALIDATE_EMAIL) === false) {
// error
}
if (filter_var($_GET['ip_address'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) === false) {
// error
}