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


Setting a default value to avoid error being prompted when using $_GET in php

快速问题,当用$_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**''包括第11行上的''quickModal.php

第11行是$sql行。

如果操作正确,请使用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.";