我有一个论坛,并在该论坛的人可以创建一个线程在他们选择的类别,但我想检查,如果类别存在,但我不知道如何,因为知道如果我键入另一个类别号码我仍然可以看到网页。论坛类别的问题
这里是我的代码
$kategoriID = $_GET['kategoriID'];
if(!isset($overskrift) || !isset($indhold) || !isset($fejl))
{
$overskrift = "";
$indhold = "";
$fejl = false;
}#Lukker if isset overskrift,indhold
if(isset($kategoriID))
{
#tjek om kategori findes
$mysql = connect();
$stmt = $mysql->prepare("SELECT count(fk_forum_kategori) As t_id FROM forum_traad WHERE fk_forum_kategori = '$kategoriID'") or die($mysql->error);
$stmt->bind_result($t_id);
$stmt->execute() or die($mysql->error);
$stmt->fetch();
if($t_id <= 0)
{
echo $t_id;
$fejl == true;
echo "<br>HEj med dig!";
exit();
}
}#Lukker isset
if(isset($_POST['send'])) {
$kategoriID = $_GET['kategoriID'];
$overskrift = htmlspecialchars($_POST['overskrift']);
$indhold = htmlspecialchars($_POST['indhold']);
$godkendt = "ja";
if($fejl == true)
{
$error = "Denne kategori findes ikke";
} elseif(empty($overskrift) || empty($indhold)) {
$error = "Alle felter skal udfyldes";
} else {
$mysql = connect();
$stmt = $mysql->prepare("INSERT INTO forum_traad (overskrift, indhold, fk_forum_kategori, brugernavn, dato, godkendt) VALUES (?,?,?,?,?,?)") or die($mysql->error);
$stmt->bind_param('ssisis', $overskrift, $indhold, $kategoriID, $_SESSION['username'], $dato, $godkendt) or die($mysql->error);
$stmt->execute();
$stmt->close();
$traadID = mysqli_insert_id($mysql);
header("location: forum.traad.php?traadID=$traadID&kategoriID=$kategoriID");
}#Lukker else
}#Lukker isset send
+1,不知道为什么这是被拒绝,似乎是一个合理的问题。但是,这对我来说很困难,因为我不了解任何变量名称。 – jordanstephens 2010-07-20 19:07:34
注意你的“kategoriID”上的SQL注入攻击,如果用户可以设置的话。 http://cwe.mitre.org/top25/#CWE-89 – David 2010-07-20 19:12:15
@大卫,小心不管。 – jordanstephens 2010-07-20 20:03:43