refresh страницы после добавления записи

Старый mweb

Модератор: [mweb team]

refresh страницы после добавления записи

Сообщение coldrain Пт апр 27, 2007 10:01

привет всем,

у меня стоит простенькая гостевая книга на php+mysql.

но есть 2 нюанса, которые меня беспокоят:

1. человек добавил запись, и если после этого refresh'ит страницу, то выскакивает 'the page cannot be refreshed without sending the information...". после этого запись добавляется по новой. этого можно как-то избежать?

2. как проверить поле записи на наличие текста? на данный момент можно добавлять пустые комменты, только с именем.

спасибо!
coldrain
Прохожий
 
Сообщения: 14
Зарегистрирован: Пн апр 23, 2007 22:37

Сообщение Muerto Пт апр 27, 2007 11:15

1) Добавить в передачу сообщения время отправки оного. А при принятии сообщения, перед записью его в базу проверять это значение с текущим временем. Если оно меньше положенного, то header('Location: страница показа гостевой');
Подробнее могу рассказать только увидив код.

2) По уму на форму надо всегда вешать валидатор так называемый. На проверку заполнения обязательных полей и корректность введенных данных. Подробнее тоже, только увидив код.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Сообщение Padonak Пт апр 27, 2007 12:43

а проверка полей происходит примерно так http://www.webdeveloper.com/forum/showt ... p?p=745427 -03-
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Сообщение coldrain Пт апр 27, 2007 13:52

ок.

таблица состоит из autoID, name, email, comment и date_auto.

Код: Выделить всё
<?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);


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="<?php echo $_SERVER[PHP_SELf]; ?>" method="post">

   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" value="submit nax">
   </center>

   </form>
   <br><br>

   <table bgcolor="#AAAAAA" border="0" width="75%" cellspacing="1" cellpadding="2">

      <?php

      $query = "SELECT * FROM guestbook ORDER BY date_auto";

      $result = mysql_query($query, $connection);


      for ($i = 0; $i <mysql_num_rows($result); $i++)

      {

$name = mysql_result($result, $i, "name");
$email = mysql_result($result, $i, "email");
$comment = mysql_result($result, $i, "comment");

$email_len = strlen($email);

$show_date = date("H:i d.m.y", $date);
      echo '

            <tr>
            <td width = "50%" bgcolor = "#EEEEEE">';


            if ($email_len > 0)

            {
            echo 'Name:<a href="mailto:'.$email.'">'.$name.'</a>';
            }



            else
            {
                  echo 'Name: '.$name;
            }

                  echo '
                  <br>
                  Comment: '.$comment.'

            <td width="1%" valign="top" nowrap bgcolor="#EEEEEE">
            Date: '.$show_date.'



            </td>
            </td>
            </tr>

            ';
            }
                                 ?>


</table>

     <?php
$result=mysql_query("select count(*) from guestbook");
$zapis=mysql_result($result,0);
echo($zapis);
              ?>

   </center>
   </body>
   </html>


хотелось бы все сделать на php, так как javascript у многих может быть отключен
coldrain
Прохожий
 
Сообщения: 14
Зарегистрирован: Пн апр 23, 2007 22:37

Сообщение Padonak Пт апр 27, 2007 16:26

ни разу не видел живьем ни одного из этих многих -04-
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Сообщение Muerto Пн апр 30, 2007 10:58

2coldrain: Дождись моего выхода из запоя. Но скажем так. Если заменим метод отсыла на гет и после отслыла сообщения хедером перекидываем на $_SERVER["PHP_SELf"], то при рефреше никаких данных уже не передастся. Хотя я это умозрительно говорю. Не проверял. А по первому вопросу - если валидатор сам ещё не пределал по ссылке Padonakа, то опять же - подожди до вечера. -23-
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва


Вернуться в Архив

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

cron