<?php
$rs = mysql_query("SELECT * FROM users WHERE id='$_SESSION[user_id]'");
while ($row= mysql_fetch_array($rs))
{
$starter= $row['id'];
$user_name= $row['user_name'];
}
$starterID=$starter;
$companyID=$_GET['id'];
$input = $_POST['message'];
date_default_timezone_set('Europe/Helsinki');
$timestamp = date('h:i', time());
$file = $companyID." and ".$starterID.".txt";
if (file_exists($file)) {
$file = $companyID." and ".$starterID.".txt";
} else {
$file = $starterID." and ".$companyID.".txt";
}
$current = file_get_contents($file);
$current.= "<b>$user_name</b> <br> $input $timestamp\n<br>";
if(isset($_POST['message'])){
file_put_contents($file, $current);
}
echo $current;
?>
<form action="" method="post">
<input type="text" name="message" autocomplete="off">
<input type="submit">
</form>
所以这是我在2个注册用户之间进行的非常简单的聊天。
当ID为154的用户开始与ID 156进行对话时,会创建文件154
和156.txt
。该文件是存储所有消息的地方。
我的问题如下:当用户说出用户154写入消息并通过按提交按钮发送消息时,页面刷新并将消息存储到文件中并打印。在此之后,输入字段将清除,但如果用户刷新页面,则会再次存储和打印相同的消息。
如何阻止页面刷新再次提交表单?
答案 0 :(得分:1)
您的页面仍保留$_POST
值。所以,如果你刷新它。我再次转发print
该文件。
因此,添加header
以重定向您的用户,如下所示:
if(isset($_POST['message'])){
file_put_contents($file, $current);
header('Location:Your_File_name.php')
}
答案 1 :(得分:0)
我尝试了所有的建议,但不幸的是那些不适合我。
我做了一些更多的研究,发现这个案例和我的最佳解决方案如下:
原始代码:
if(isset($_POST['message']) && $_POST != null){
file_put_contents($file, $current);
}
溶液:
if(isset($_POST['message']) && $_POST != null){
file_put_contents($file, $current);
echo' <script type="text/javascript">
location.reload();
</script>';
}
感谢您的建议,他们让我更好地了解了搜索内容:)