设置默认值以避免在php中使用$ _GET时提示错误

时间:2016-05-07 05:01:28

标签: php html get bootstrap-modal

快速提问,当使用$ _GET传递值时,我使用isset来检查值是否已设置然后赋值,在设置值之前处理的最佳方法是什么?

EG客户端点击一个模态,弹出一个弹出窗口的信息。

目前我在页面顶部显示一个php错误,表示未设置$ _GET值,这很好,但在生产中这不太理想。

附上一些代码示例。

<?php


// checks to see if the movie id is actually set in url.
if(isset($_GET['movie_id'])) {

$movieID = $_GET['movie_id'];

} else {
  echo MovieId is not set.
}


echo $movieID;

 ?>

添加了给我错误的实际代码

<?php
require_once ($_SERVER['DOCUMENT_ROOT'].'**/core/init.php');

if(isset($_GET['id'])) {
    $id = $_GET['id'];
    $id = (int)$id;

echo $id;
}

$sql = "SELECT * FROM wheels WHERE recid = '$id'";
$result = $db->query($sql);
$product = mysqli_fetch_assoc($result);


?>

注意: **将文件目录替换为不需要。

错误:

  

注意:未定义的变量:id in   第11行** \ includes \ quickModal.php

第11行是$sql行。

1 个答案:

答案 0 :(得分:3)

您正在正确执行此操作,在PHP中使用isset()函数来检查该值是否已设置:

  

确定变量是否已设置且不是NULL

if(isset($_GET['movie_id'])) {

$movieID = $_GET['movie_id'];

} else {
  echo MovieId is not set.
}

在代码的上下文中,您可以将查询放在if语句中,检查是否设置了$_GET。这将阻止在未设置$_GET时执行SQL语句:

if(isset($_GET['id'])) {
    $id = $_GET['id'];
    $id = (int)$id;
    echo $id;

    $sql = "SELECT * FROM wheels WHERE recid = '$id'";
    $result = $db->query($sql);
    $product = mysqli_fetch_assoc($result);
}

另外,要回显字符串,您需要引号:

echo "MovieId is not set.";