Обновление страницы = +1 сообщение в БД
Мучую пхп и мускул в попытке создать гостевую книгу и все бы ничего(данные корректно добавляются, отображаются), но после отправки сообщение, если затем обновить страничку, в госевухе добавляется новое сообщение, такое же как и предыдущее.
Почему так происходит вроде догадываюсь, но пока рабочего решения не нашел.
Вот код:
Код:
<?php
//Добавление записей
if ((isset($_POST['send']))&&($_POST['send']=="Отправить")){
$link = @mysql_connect("localhost", "root", "") or die("Couldn`t connect");
mysql_select_db("gbook");
$query= "INSERT INTO `users` ( `k_msg` , `guest` , `email` , `time` , `msg` )
VALUES ('', '$_POST[name]' , '$_POST[email]' , '0', '$_POST[msg]')";
$result=mysql_query($query);
mysql_close();
$_POST['send']="";
}
?>
<?php
//Ввыод записей
@mysql_connect("localhost", "root", "") or die("Could not connect to MySQL server!");
@mysql_select_db("gbook") or die("Could not select products database!");
$query = "SELECT * FROM users";
$result = mysql_query($query);
$x = 0;
echo "<table>";
while ($x < mysql_num_rows($result)) {
$num = mysql_result($result, $x, 'k_msg');
$guest = mysql_result($result, $x, 'guest');
$email = mysql_result($result, $x, 'email');
$msg = mysql_result($result, $x, 'msg');
echo "<tr>
<td>$num</td>
<td>$guest</td>
<td>$email</td>
</tr>
<tr>
<td colspan='3'>$msg<hr></td>
</tr>";
$x++;
}
echo "</table>";
mysql_close();
?>
//Добавление записей
if ((isset($_POST['send']))&&($_POST['send']=="Отправить")){
$link = @mysql_connect("localhost", "root", "") or die("Couldn`t connect");
mysql_select_db("gbook");
$query= "INSERT INTO `users` ( `k_msg` , `guest` , `email` , `time` , `msg` )
VALUES ('', '$_POST[name]' , '$_POST[email]' , '0', '$_POST[msg]')";
$result=mysql_query($query);
mysql_close();
$_POST['send']="";
}
?>
<?php
//Ввыод записей
@mysql_connect("localhost", "root", "") or die("Could not connect to MySQL server!");
@mysql_select_db("gbook") or die("Could not select products database!");
$query = "SELECT * FROM users";
$result = mysql_query($query);
$x = 0;
echo "<table>";
while ($x < mysql_num_rows($result)) {
$num = mysql_result($result, $x, 'k_msg');
$guest = mysql_result($result, $x, 'guest');
$email = mysql_result($result, $x, 'email');
$msg = mysql_result($result, $x, 'msg');
echo "<tr>
<td>$num</td>
<td>$guest</td>
<td>$email</td>
</tr>
<tr>
<td colspan='3'>$msg<hr></td>
</tr>";
$x++;
}
echo "</table>";
mysql_close();
?>
Обработку входящего сообщения делай в отдельном файле. Как обработаешь - делай редирект на другую страницу, где сообщицца и создании сообщения. Тем самым избежишь этого.
Ага, пасиба, ща попробую.
Код:
header("Location: URL_гостевой");
Естественно, с учётом того, что ни должно быть никакого вывода ДО вызова перенаправления, а ПОСЛЕ сделать exit.
ВСе, сделал, все работает всем огромное спасибо!)