我从我的主页调用了一个PHP脚本,我喜欢这样:
echo '<a href="/problems/delete_problem.php?problem_id='.$problem_id.'">Delete</a>';
所以这很标准。
然后在我的PHP中我有这段代码:
<?php
// delete_problem
include '../connect.php'; // Here I have db connection settings
error_log ( ".......in delete problem");
$problem_id = mysql_real_escape_string($_GET["problem_id"]);
?>
我尝试获取problem_id的最后一行是抛出未定义的索引错误。知道为什么吗?
谢谢!
答案 0 :(得分:3)
你在connect.php里面有一个实际的连接吗?或者只是存储变量等?
mysql_real_escape_string
可能会导致问题,就好像连接不可用一样,它会失败。
除此之外,尝试回显GET变量的内容。您还可以使用(isset($_GET["problem_id"]))
来检查它是否存在。
答案 1 :(得分:2)
对于来自用户的值,请始终确保它们存在并可能验证其格式。
使用:
if (isset($_GET['problem_id']) && trim($_GET['problem_id']) != '') {
$problem_id = $_GET['problem_id'];
// make sure it is a number
} else {
echo "No problem id given!";
}
出现该警告是因为$ _GET数组不包含值problem_id,很可能是因为它未通过URL传递。
答案 2 :(得分:2)
Bleh,所有使用mysql_real_escape字符串的人......
在尝试将变量值分配给另一个变量之前,请务必检查变量是否已设置。
也可以使用(int)来施放!!
if (isset($_GET["problem_id"])){
$problem_id = (int) $_GET["problem_id"];
}