【问题标题】:How to check which GET request is passed on? [duplicate]如何检查传递了哪个 GET 请求? [复制]
【发布时间】:2018-06-27 05:52:52
【问题描述】:

如标题所说,如何确定在 url 中传递了哪个 GET 值?

http://www.example.com/view.php?id=20为例。当前的 GET 值为 'id',值为 20。这很好用,但如果有人玩弄并将 GET 值更改为 'id' 以外的值,我会在页面上收到很多 PHP 错误。

所以我的目标是检查传递的 GET 值是否不正确,以便将它们重定向到另一个页面。我该怎么做呢?

【问题讨论】:

  • if(isset($_GET['id']))
  • 这正是我所拥有的,但它仍然会给出错误,因为我在 if 语句之外有在数据库中搜索 id 的查询,所以每当传递不同的 get 请求时,它找不到 $_GET['id']。现在改了,谢谢!
  • 那么,将条件放在查询之前怎么样?
  • @Waqas 与此不同,但与stackoverflow.com/questions/12019684/…相同

标签: php validation get


【解决方案1】:

您应该验证 URL 参数。在您的情况下,它必须是 id 并且必须是 numeric

if (isset($_GET['id']) && is_numeric($_GET['id']))

作为预先检查,您可以验证id 是否为整数:

if((int)$_GET['id'] == $_GET['id']){
    return TRUE;            
} else {        
    return FALSE; // It's a number, but not an integer
}

【讨论】:

    猜你喜欢
    • 2016-07-02
    • 2018-02-19
    • 1970-01-01
    • 2021-12-02
    • 2020-08-20
    • 2011-08-31
    • 2022-01-11
    • 2018-04-18
    • 2019-09-07
    相关资源
    最近更新 更多