Я новичок в php, и я играю вокруг, пытаясь написать веб-приложение для мини-чата. Вот мой код: страница для подключения к базе данных извлекает всю информацию, опубликованную заранее.Duplicate submit во время перезагрузки php-страницы
<?php
try{
$bdd = new PDO('mysql:host=localhost;dbname=chat', 'root', '');
}
catch(Exception $e)
{
die('Error: ' . $e->getMessage());
}
$myname =$_POST["myname"];
$message =$_POST["message"];
$req = $bdd->prepare('INSERT INTO users(myname, message) VALUES(
:myname,
:message)');
$req->execute(array(
'myname' => $myname,
'message' => $message,
));
include('page1.php');
$reponse = $bdd->query('SELECT myname, message FROM users ORDER
BY ID DESC');
while ($mydata = $reponse->fetch())
{
echo '<p>' .($mydata['myname']) .
'</strong> : ' . ($mydata['message']) . '</p>';
}
?>
Еще одна страница, которая содержит мою форму, где пользователи приходят и размещать их сообщения
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<title>chat</title>
</head>
<body>
<fieldset width="90">
<marquee>my mini chat </marquee>
<form method="post" action="enregisteur.php">
<label for="Identifier"> Identifier :</label>
<input type="text" name="myname" id="myname" value="myname" placeholder="myname"/>
<br>
<label for="message"> Messages :</label>
<textarea name="message" id="message" value="message">
</textarea>
<br>
<input type="submit" name="validate" value=" validate " size="15"/>
</form>
</fieldset>
</body>
</html>
Это хорошо работает, но есть небольшая проблема, что я хочу, чтобы получить созревший из: Я пользователь сказал user1 приходит и введите user1 и сообщения Hello, а затем нажмите кнопку «Отправить». Информация поступает в базу данных и отображается на веб-странице. Если он идет вперед и выполняет перезагрузку страницы, не нажимая на отправку, то такая же информация отправляется в базу данных и отображается снова в веб-игре. То есть у нас будет что-то вроде этого на веб-странице
После нажатия на кнопку отправить user1: Здравствуйте После перезагрузки страницы user1: Здравствуйте user1: Здравствуйте
Это произойдет после того, как каждый перезагружать
Пожалуйста, любая помощь будет приветствоваться. Спасибо.
Чтобы динамически перезагружать некоторые данных без перезагрузки всей страницы, вы должны посмотреть технологию «AJAX» :)! – Julqas
Я не думаю, что это проблема здесь, из того, что я понимаю, когда кто-то подает «какой-то текст» и перезагружает страницу, текст отправляется дважды в db. – Ivan
SELECT и INSERT находятся на той же странице, что тоже может быть проблемой. Но да, вы правы, это не решение проблемы здесь, но поставите защиту, чтобы избежать двойного INSERT в DB при перезагрузке страницы далеко от текущего уровня OP, я думаю, что он должен увидеть большую картинку, прежде чем решить, что делать здесь :) – Julqas