如何在PHP中处理没有任何get参数的url

时间:2011-02-25 12:05:54

标签: php get

在我的网络应用程序中,我正在使用“example.com/single.php?id=x”,抓取get参数并在页面上显示一条记录。

如何处理网址“example.com/single.php”(如果有人手动取消参数)的最佳做法/建议是什么?

我正在清理我的输入,所以我不是从安全的角度来询问,而是从内容方面询问。我显示什么,所有记录?目前,它没有在单一记录的区域显示任何内容......

由于

4 个答案:

答案 0 :(得分:2)

single.php是一个非常强大的指针,URL显示一条记录,因此没有“默认”显示(如显示所有记录)。

我希望它有一个很好的“找不到记录”错误消息,或者甚至像Stack Overflow那样抛出404。

答案 1 :(得分:0)

你可以在single.php中输入默认ID,如果你从GET获得任何id,那么用这个替换

$display_id = empty($_GET['id']) ? specific id number : int($_GET['id']) ;

答案 2 :(得分:0)

您要做的是为single.php请求最少的必需参数集,如果其中一个参数不存在,那么您会抛出错误的请求。

例如:

//Validate
if(empty($_GET["id"]))
{
    die("Invalid Request");
}

//Sanitation
if(!is_numeric($_GET["id"]))
{
        die("Invalid Request");
}

//Force type's for security
$id = (int)$_GET["id"];

答案 3 :(得分:0)

  

我显示什么,所有记录?

这完全取决于页面的用途。 如果意图显示没有参数的所有记录 - 则显示它。 (我有很多页面显示没有参数的记录列表,并显示参数传递的编辑表格。这非常方便实用。)
如果不是 - 当没有要显示的页面时,404响应是严格的规则。

一个好的应用程序也会检查意外的参数(“example.com/single.php?id=x&foo-bar”),并在这种情况下抛出403。