Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: guestbook
 
 автор: Mykola   (22.06.2006 в 16:45)   письмо автору
 
 

Добрый день форум!
Я новичок в 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">&nbsp;
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]");
?>

   
 
 автор: Mykola   (22.06.2006 в 17:09)   письмо автору
 
   для: 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");
?>

поместите в конец страницы.

   
 
 автор: Mykola   (22.06.2006 в 18:07)   письмо автору
 
   для: cheops (из кафе)   (22.06.2006 в 17:21)
 

Тот кусочек, что Вы привели это данные по коннекту к БД, а счётчик действительно в конце:


?>
</table>
</center>
<?php include("tracker.php"); ?>
</body>
</html>

   
 
 автор: valenok   (22.06.2006 в 19:58)   письмо автору
 
   для: Mykola   (22.06.2006 в 18:07)
 


<?php 
  header
("Location: $_SERVER[PHP_SELF]"); die('Чтоб счётчик на запустить.');
?>

   
 
 автор: Mykola   (23.06.2006 в 11:18)   письмо автору
 
   для: valenok   (22.06.2006 в 19:58)
 

спасибо. помогло.

   
 
 автор: valenok   (23.06.2006 в 11:20)   письмо автору
 
   для: Mykola   (23.06.2006 в 11:18)
 

Я знаю..
Незачто..

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования