我有一個論壇,並在該論壇的人可以創建一個線程在他們選擇的類別,但我想檢查,如果類別存在,但我不知道如何,因爲知道如果我鍵入另一個類別號碼我仍然可以看到網頁。論壇類別的問題
這裏是我的代碼
$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