我有一个简单的项目,对你来说可能很容易。 我的项目是创建一个聊天应用程序。 我成功创建了它,但我遇到了问题。我的问题是,每次重新加载页面时,都会重复文本。
我使用数据库保存聊天记录,包括姓名,网站和文字。
剧本:
<?php
error_reporting(0);
include"config.php"; //This is my database config and connection file
if ( isset ($_POST['nama'])) {
$nama = $_POST['nama'];
$web = $_POST['website'];
$isi = $_POST['pesan'];
$query = "INSERT INTO history(nama, website, text) VALUES('$nama', '$web', '$isi')";
mysql_query($query); }
$tampil = "SELECT * FROM history";
$hasil = mysql_query($tampil);
while ($data = mysql_fetch_array($hasil)) {
echo"<a href='".$data['website']."'>".$data['nama']."</a>" : ".$data['text']."<br />"; }
?>
任何人都知道如何停止之前的聊天?我的意思是我打开chat.php
(我的索引)并输入名称,网站和文本,然后单击发送按钮。聊天出现,我用f5重新加载它。即使输入为空白,聊天也会像以前一样再次出现。
对不起我的英语不好。我该怎么办?
答案 0 :(得分:0)
点击提交后,您向网络服务器发出POST请求。告诉他将你的消息添加到历史表中。每次再次按F5时,都会向服务器发送相同的POST请求。它再次告诉您的服务器将相同的消息添加到您的历史记录表。
解决方案很简单。您要做的是浏览器对您的chat.php执行新请求。没有设置nama变量的请求。在这个新请求之后,所有F5按下将触发这个新请求,而不是旧请求。
您可以使用http标头将浏览器重定向到正确的URL。
代码示例(未经测试!):
if ( isset ($_POST['nama'])) {
$nama = $_POST['nama'];
$web = $_POST['website'];
$isi = $_POST['pesan'];
$query = "INSERT INTO history(nama, website, text) VALUES('$nama', '$web', '$isi')";
mysql_query($query);
// NOW FORCE THE BROWSER TO ISSUE A NEW REQUEST
header('Location: chat.php');
}
请务必使用chat.php文件的正确链接。