林與一些PHP頁面的問題,下面的代碼是例如僅防止 「後再次」 在PHP中有
form.php的
<form mehtod="post" action="submit.php">
<input type="text" name="theTextbox"/>
<input type="submit"/>
</form>
submit.php
<?php
$theText = $_POST['theTextbox'];
mysqli_query($link,"INSERT into textlist (text) VALUES ('$theText')");
mysqli_query($link,"SELECT * FROM textlist ORDER by inserted LIMIT1");
...some fetch stuff...
echo "Last insert ID is...".$lastID
?>
所以,如果我在文本框中輸入「1234」,在form.php上,然後按提交,一個記錄被插入到表中234 「文本」 和 「ID」 變得像20 ....
上submit.php回聲 「最後插入ID是... 20」 ..
但現在....問題是,如果我提到的頁面,Firefox的問我是否想再次sumbit ..如果我按YES,相同的文本獲取插入和ID變爲21.
我不能建議用戶,不使用此功能。 ...和谷歌瀏覽器甚至沒有要求..
這怎麼可以防止?
您可以將它們重定向回到一個空白表格/不同的頁面?你也開放給SQL注入攻擊。 – 2014-10-02 09:45:02
重定向到@ʰᵈˑ表示的空白表單,或者對雙重條目進行某種檢查。 – Azrael 2014-10-02 09:45:44
**危險**:您很容易[SQL注入攻擊](http://bobby-tables.com/)**,您需要[防禦](http://stackoverflow.com/questions/ 60174/best-way-to-prevent-sql -injection-in-php)自己從。 – Quentin 2014-10-02 09:47:46