第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修復(fù) php 頁面的評論在頁面重新加載時重復(fù)發(fā)布?

如何修復(fù) php 頁面的評論在頁面重新加載時重復(fù)發(fā)布?

MM們 2023-11-13 14:36:52
你好,我正在嘗試僅使用 php(沒有數(shù)據(jù)庫)為網(wǎng)站制作一個評論框,幾乎成功。但是,每次重新加載頁面時,評論都會一次又一次地重復(fù)發(fā)布。如何修復(fù)它?我的代碼在comment.php<form action="comment.php" method="post"><label for="name">Name:</label><br/><input type="text" name="yourname"><br><label for="name">Comment:</label> <br/><textarea name="comment" id="comment" cols="30" rows="10"></textarea><br/><input type="submit" value="submit"></form><?php$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"));?>預(yù)期輸出,當(dāng)用戶輸入姓名和評論并提交時,必須發(fā)表評論。(重新加載時不應(yīng)再次重復(fù)上次發(fā)布的評論)輸出正在得到,當(dāng)用戶輸入名稱和評論并提交時,它會發(fā)布評論。但是,當(dāng)重新加載/刷新該頁面時,它會再次發(fā)布最后一條評論。如果再次重新加載,再次發(fā)布最后的評論。每次頁面重新加載時都會重復(fù)。請幫助我修復(fù)我的代碼。這會有很大幫助。謝謝。
查看完整描述

2 回答

?
MMMHUHU

TA貢獻(xiàn)1834條經(jīng)驗 獲得超8個贊

您可以使用PRG 模式來避免多次提交。

首先檢查請求方法是否為POST。如果是這樣,請保存評論,然后重定向回來(或您想要的任何其他頁面):

<?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'));

?>


查看完整回答
反對 回復(fù) 2023-11-13
?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗 獲得超5個贊

第一次學(xué)習(xí)PHP。對你有好處。不過也許可以更好地花時間學(xué)習(xí) Python。無論如何,這里發(fā)生了兩件事。


一是每次用戶點(diǎn)擊頁面時,無論是否發(fā)送了任何信息,php 塊都會執(zhí)行。您想將 php 代碼包裝在 if 語句中,例如:


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"));

}

第二個問題是,一旦您發(fā)布了某些內(nèi)容,那么每次重新加載頁面(通過 F5)時,您都需要清除 POST 數(shù)組,而不是像從新會話中重新加載一樣。有很多方法可以做到這一點(diǎn),我認(rèn)為最適合你的是在回聲之后堅持這個:


foreach( $_POST as $key=>$val )

{

? ?unset( $_POST[$key] );

}


查看完整回答
反對 回復(fù) 2023-11-13
  • 2 回答
  • 0 關(guān)注
  • 301 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號