如果Command / Order与之前相同,则停止当前脚本

时间:2015-02-03 11:46:28

标签: php html

我有一个简单的项目,对你来说可能很容易。 我的项目是创建一个聊天应用程序。 我成功创建了它,但我遇到了问题。我的问题是,每次重新加载页面时,都会重复文本。

我使用数据库保存聊天记录,包括姓名,网站和文字。

剧本:

<?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重新加载它。即使输入为空白,聊天也会像以前一样再次出现。

对不起我的英语不好。我该怎么办?

1 个答案:

答案 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文件的正确链接。