我有一个简单的项目,也许对你来说很容易。我的项目是创建一个聊天应用程序。我成功地创建了它,但我有一个问题。我的问题是,每次我重新加载页面时,文本都会被重复。
我使用一个数据库保存聊天历史,包括名字,网站和文本。
剧本:
<?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重新加载它。聊天再次出现,与前面相同,即使输入是空白的。
我为我糟糕的英语感到抱歉。我该怎么办?
发布于 2015-02-03 12:08:40
单击submit时,向When服务器发出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文件使用正确的链接。
https://stackoverflow.com/questions/28298131
复制相似问题