0

我有一个 php 页面,我在其中使用 $_GET 从前一页获取变量。

所以在这个页面中我已经声明了它

例子

$id=$_GET['id'];
$car=$_GET['car'];

然后我有一些使用这个变量的 php 函数。

所以这个页面的网址看起来像

www.example.com/secondpage?id=1&car=1

现在,如果用户编辑此 url 并删除 id=1,我的第二个页面会显示 mysql 错误......如何在有人玩弄 url 并因此出现 mysql 错误时将其重定向到错误页面……?

提前致谢

4

3 回答 3

0

在您的 secondpage.php 上,当您执行获取信息的功能时:

$variable = $_GET['variableA']

将其更改为:

$variable = $_GET['variableA']
if(isset($variable))
{
    //Do something if ID exists
}
else
{
    //Do Error Handling or header redirect
}

这将获取变量,如果它不存在,它将为空。IF 语句检查它是否是一个值(非空)并执行您的代码,如果它为空,则运行 else 语句,这里是您放置错误消息的位置。

您可以使用标头重定向到另一个页[年龄但是这必须在任何代码发送到页面之前运行(包括 html 和 php echo)。

要添加其他语句,只需将它们添加到 if 语句中。

if(isset($variable) && isset($variable2))
于 2013-10-22T21:00:43.870 回答
0

您可以使用 Statuscode 302 进行重定向。因此您可以使用用户header

if(empty($id) || empty($car)){
    header("location: http://www.example.com/my_error_page.html");
}

重要的是,在进行任何输出之前执行此语句。empty()检查参数是否为 0、"" 或 null。所以它不检查提供的 id 是否真的存在。

于 2013-10-22T20:56:46.393 回答
0

在脚本的最开始执行以下操作:

if(!isset($_GET['id'] || empty($_GET['id'] || !isset($_GET['cart'] || empty($_GET['cart'])
    header('Location: error.php');

请注意对emptyheader函数的限制:empty例如"0"header如果发送了任何输出,则无法调用 while 。有关更多限制,请参阅手册。

于 2013-10-22T20:56:54.520 回答