我是php的新手,我想知道如何捕获在post参数上使用“get”时发生的错误。
我的页面将包含以下网址:
http://www.mysite.com/page.php?id=5
但是,如果网站上不存在id,我希望能够将用户重定向到主页面。我怎么能在PHP中做到这一点?
页面到达此行时崩溃:
$ID = $_GET['id'];
它给了我这个错误:
<b>Notice</b>: Undefined index: id in <b>//test.php</b> on line <b>36</b><br />
答案 0 :(得分:3)
一般而言,重定向不是处理无效ID的正确方法。
按照标准,应发出404标题。
因此,只需在数据库中查询给定的id,如果没有返回数据,则显示404页面,其中包含相应的标题。但是,后一页可能会使用JS重定向到主页面。
说到例外,一般来说,如果使用得当,任何异常都会引发503错误。
但表中缺少某些id不应引发任何系统级错误。它是程序逻辑级别,应该无异常地处理这些错误。
答案 1 :(得分:1)
对于初学者,您需要有一些方法来检查传递的ID是否对您的网站有效。最好的方法可能是编写一个检查你的函数,然后根据其结果重定向。
function valid_id( $id ){
// Talk to your database and check the ID, then return TRUE or FALSE
}
if( !valid_id( $_GET["id"] ) ){
// Redirect to a 404 page or the site index
}
// Normal page loading goes here
答案 2 :(得分:0)
如果您正在寻找最简单的解决方案,只需在使用之前检查变量是否已设置:
if (isset($_GET['id']) {
// 'id' exists, do anything you want with it
}else {
// 'id' wasn't provided, redirect with header() or call a 404 page
}