2011-02-25 66 views
1

在我的web应用程序中,我使用“example.com/single.php?id=x”,抓取get参数并在页面上显示一条记录。如何处理PHP中没有任何获取参数的URL

什么是如何处理的URL“example.com/single.php”最佳实践/建议(如果有人脱下手动参数)

我消毒我的投入,所以我从安全的角度来看并不是要求内容方面的问题。我显示什么,所有记录?目前,它不显示在该地区的任何地方将有单个记录...

感谢

回答

2

single.php是一个相当强大的指针,该URL是否有显示一个记录,所以没有“默认”显示(如显示所有记录)。

我会死它()与一个很好的“记录未找到”的错误消息,甚至抛出404像堆栈溢出呢。

+0

好的,所以在PHP中,if(no get),{then display ...}然后呢?包括(404.php)? – benhowdle89 2011-02-25 12:11:52

+0

@benhowdle yup。 'header(“HTTP/1.1 404 not found”);包括( “404.php”);' – 2011-02-25 12:13:45

0

ü可以把single.php默认ID和如果u得到GET然后用这一个

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

你会做什么时要求的最小集合了single.php中所需的参数,如果更换任何ID其中一个参数不存在,则会抛出错误的请求。

例如:

//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"]; 
0

什么我显示,所有的记录?

这完全取决于页面的用途。 如果它是打算显示所有没有参数的记录 - 然后显示它。 (我有很多页面显示没有参数的记录列表,并显示带有参数传递的编辑表单,非常方便实用。)
如果没有 - 当没有找到页面时,404响应是一个严格的规则。

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