|
|
|
| Добрый день форум!
Я новичок в php/mysql. Мне удалочь набросать несложную гостевую книгу, но в ней я не могу отдебагить такую вещь: При релоаде страницы автоматически добавляется последняя введённая запись - и ничего не могу сделать против этого ...
Пожалуйста помогите разобраться. Вот код:
<?php
require($_SERVER["DOCUMENT_ROOT"]."/config/db_config.php");
$connection = @mysql_connect($db_host, $db_user, $db_password) or die("error connecting");
mysql_select_db($db_name, $connection);
$name = $_POST["txt_name"];
$len = strlen($name);
// Only write to database if there's a name
if($len>0)
{
$email = $_POST["txt_email"];
$comment = $_POST["txt_comment"];
$date = time();
$query = "INSERT INTO guestbook (autoID, name, email, comment, date_auto) VALUES (NULL, '$name', '$email', '$comment', '$date')";
mysql_query($query, $connection) or die(mysql_error());
}
?>
<html>
<head>
<title>Guestbook</title>
</head>
<body>
<center>
<form action = "<? echo $_SERVER[PHP_SELF];?>" method = "POST">
<font face = "arial" size = "1">
Name: <input type = "text" name = "txt_name">
Email: <input type = "text" name = "txt_email"><br><br>
Comment:<br>
<textarea style="width: 75%" rows = "10" name = "txt_comment"></textarea>
<center><input type = "submit" name = "Submit"></center>
</font>
</form>
<table bgcolor = "#AAAAAA" border = "0" width = "75%" cellspacing = "1" cellpading = "2">
<?php
$query = "SELECT * FROM guestbook ORDER BY date_auto";
$result = mysql_query($query, $connection);
mysql_close($connection);
for($i = 0; $i < mysql_num_rows($result); $i++)
{
$name = mysql_result($result, $i, "name");
$email = mysql_result($result, $i, "email");
$email_len = strlen($email);
$comment = mysql_result($result, $i, "comment");
$comment = nl2br($comment);
$date = mysql_result($result, $i, "date_auto");
$show_date = date("H:i:s m/d/Y", $date);
if ($i % 2)
{
$bg_color = "#EEEEEE";
}
else
{
$bg_color = "#E0E0E0";
}
echo '
<tr>
<td width = "100%" bgcolor = "'.$bg_color.'">
<font face = "arial" size = "2">';
if($email_len > 0)
{
echo '<b>Name:</b> <a href = "mailto:'.$email.'">'.$name.'</a>';
}
else
{
echo '<b>Name:</b> '.$name;
}
echo '
<br>
<b>Comment:</b> '.$comment.'
</font>
<td>
<td width = "1%" valign = "top" nowrap bgcolor = "'.$bg_color.'">
<font face = "arial" size = "2">
<b>Date: </b> '.$show_date.'
</font>
</td>
<tr>
';
}
?>
</table>
</center>
<?php include("tracker.php"); ?>
</body>
</html>
заранее спасибо. | |
|
|
|
|
автор: cheops (из кафе) (22.06.2006 в 16:53) |
|
|
для: Mykola
(22.06.2006 в 16:45)
| | После строчек кода
<?php
$query = "INSERT INTO guestbook (autoID, name, email, comment, date_auto) VALUES (NULL, '$name', '$email', '$comment', '$date')";
mysql_query($query, $connection) or die(mysql_error());
?>
|
просто презагрузите страницу
<?php
header("Location: $_SERVER[PHP_SELF]");
?>
|
| |
|
|
|
|
|
|
|
для: cheops (из кафе)
(22.06.2006 в 16:53)
| | Спасибо огромное. Заработало.
Вот только проблема: теперь при добавлении нового сообщения счётчик посещения увеличивается на 2 ...
подскажите, что можно было бы сделать.
Спасибо. | |
|
|
|
|
автор: cheops (из кафе) (22.06.2006 в 17:21) |
|
|
для: Mykola
(22.06.2006 в 17:09)
| | Счётчик посещения
<?php
require($_SERVER["DOCUMENT_ROOT"]."/config/db_config.php");
?>
|
поместите в конец страницы. | |
|
|
|
|
|
|
|
для: cheops (из кафе)
(22.06.2006 в 17:21)
| | Тот кусочек, что Вы привели это данные по коннекту к БД, а счётчик действительно в конце:
?>
</table>
</center>
<?php include("tracker.php"); ?>
</body>
</html> | |
|
|
|
|
|
|
|
для: Mykola
(22.06.2006 в 18:07)
| |
<?php
header("Location: $_SERVER[PHP_SELF]"); die('Чтоб счётчик на запустить.');
?>
|
| |
|
|
|
|
|
|
|
для: valenok
(22.06.2006 в 19:58)
| | спасибо. помогло. | |
|
|
|
|
|
|
|
для: Mykola
(23.06.2006 в 11:18)
| | Я знаю..
Незачто.. | |
|
|
|