快速问题,当用$_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.";