小小问题,如果未设置Get id,我将如何使用我的会话ID。这是我的一小段代码。
if (isset($_GET['id']) && is_numeric($_GET['id']) && intval($_GET['id'])) {
$id = $_GET['id'];//the user id
} else {
$id = $_SESSION['id'];//the user id
}
现在它似乎工作正常如果?id = 根本没有设置,但如果它为空它会抛出错误
SQL:从用户中选择*,其中id =>>您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第1行
我只是想让它失败证明,它只会使用ID GET,如果它是一个实际的链接,如 profile_pic.php?id = 100 但是当它的 profile_pic.php?id = 或 profile_pic.php?id = apples
答案 0 :(得分:2)
intval
返回一个不是布尔值的整数。如果它在0中求值则表示为false,否则为true。不要在if中使用它。
// GET id is set and not empty and is numeric
if (isset($_GET['id']) && !empty($_GET['id']) && is_numeric($_GET['id'])) {
$id = intval($_GET['id']);
}
// Else take value from session, if not empty and is numeric
elseif (isset($_SESSION['id']) && !empty($_SESSION['id']) && is_numeric($_SESSION['id'])) {
$id = intval($_SESSION['id']);
}
// Something went wrong
else {
throw new InvalidArgumentException('id not set via GET and id not in session or not numeric');
}