2 回答

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
您可以使用PRG Pattern來避免多次提交。
首先,檢查請(qǐng)求方法是否為POST
. 如果是這樣,請(qǐng)保存評(píng)論,然后重定向回(或您想要的任何其他頁(yè)面):
<?php
$myfile = fopen('comment.txt', 'a');
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$yourname = $_POST['yourname'];
$comment = $_POST['comment'];
$data = $yourname . "<br>" . $comment . "<br><br>";
fwrite($myfile, $data);
fclose($myfile);
header('Location: comment.php');
die();
}
$myfile = fopen('comment.txt', 'r');
echo fread($myfile, filesize('comment.txt'));
?>

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
第一次學(xué)習(xí)PHP。對(duì)你有益。盡管也許可以更好地花時(shí)間學(xué)習(xí) Python。無論如何,這里發(fā)生了兩件事。
一個(gè)是每次用戶點(diǎn)擊頁(yè)面時(shí),無論是否發(fā)送了任何信息,php 塊都會(huì)執(zhí)行。你想將你的 php 代碼包裝在一個(gè) if 語(yǔ)句中,例如:
if( count($_POST) )
{
$yourname = $_POST['yourname'];
$comment = $_POST['comment'];
$data = $yourname . "<br>" . $comment . "<br><br>";
$myfile = fopen("comment.txt", "a");
fwrite($myfile, $data);
fclose($myfile);
$myfile = fopen("comment.txt", "r");
echo fread($myfile,filesize("comment.txt"));
}
你的第二個(gè)問題是,一旦你發(fā)布了一些東西,那么每次你重新加載頁(yè)面(通過 F5)而不是從新會(huì)話重新加載時(shí),你需要清除 POST 數(shù)組。有很多方法可以做到這一點(diǎn),我認(rèn)為最適合你的是在回聲之后堅(jiān)持下去:
foreach( $_POST as $key=>$val )
{
unset( $_POST[$key] );
}
有關(guān)更多信息,請(qǐng)參見此鏈接 - [提交表單后取消設(shè)置發(fā)布變量
- 2 回答
- 0 關(guān)注
- 131 瀏覽
添加回答
舉報(bào)