Про устаревшие страницы.

codsteep

Новичок
Про устаревшие страницы.

Пользователь из разных скриптов может оставлять сообщения.
Отправляем данные из формы методом POST в send.php. Если в самом сенде делать header () то всё вроде нормально за исключением одного... пользователь не узнает всё ли он правильно сделал. Если использовать вещи типа <meta http-equiv='refresh' content='3;URL=indexx.php'> (И выводит сообщение в зависимости от того что он натворил). То сталкиваемся с проблемой F5.
Я подумал и пришла мысль такая:
В 1.php находиться форма и сами сообщения. Отправляет мессагу данные передаються в send.php. В send.php ставим header на mess.php и передаём GETом переменные типа error=(тип ошибки), to=(куда перенаправлять).И в нём уже использовать

<meta http-equiv='refresh' content='3;URL=$to'>
Тогда если будут обнавлять-ничего страшного не случиться.
Есть ли тут какие нить значительные минусы, или есть ли способ проще?
 

codsteep

Новичок
"Не удаёться обновить стр. без повторной отправки данных. Нажмите повтор или отмена... ну и т.д."
 

Макс

Старожил PHPClub

codsteep

Новичок
А чем плох выше преведённый?
Просто можно будет редакитровать сами сообщения без проблем.Да и код поменьше получаеться...
 

Макс

Старожил PHPClub
на mess.php и передаём GETом переменные типа error=(тип ошибки),
codsteep
я правильно понял, что ты обрабатываешь форму и если есть ошибка, то ты ее показываешь в mess.php и потом возвращаешься в форму, используя meta-тег ?
 

codsteep

Новичок
Я обрабатываю форму и ГЕТом передаю mees.php чё писать.
Не только ошибку - любое сообщение от "Сообщение успешно отправленно" до "Не лезь сюда нехороший человек". А потом используя meta возвращаю на исходную позицию.
 

Макс

Старожил PHPClub
просто пользователю будет намного удобнее работать если ошибки будут выводиться прямо над формой или возле полей формы, которые заполнены неверно. В примере, который я тебе привел, обработка ошибок сделана именно так.
 

Макс

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

-~{}~ 22.02.04 15:01:

и кстати ничто не мешает выводить ошибки между этими мессагами и формой.
Да и еще, если форма заполнена неверно, то надо выводить ТОЛЬКО форму и тексты ошибок, а мессаги выводить не надо
 

codsteep

Новичок
Так оно так и есть.... Список сообщений оставленных пользователями. Снизу форма. Заполняет нажимает отправить. Ево перебрасывает и говорят ("Всё хорошо.Спи спокойно дорогой товарищ. Через 5 минут страница перезагрузиться и бут те счастие. А если нетерпеливый тыкни сюда") Он тыкает (или терпиливо ждёт) и его возращает к этому списеку сообщений где на вершине красуеться его)))

-~{}~ 22.02.04 15:06:

Что то типа форума/гостевой.

-~{}~ 22.02.04 16:29:

PHP:
//index.php
<?

//выводим оставленные ранее сообщения

// форма отправки
echo "<form action='send.php' method=post>
<textarea name='msg_text' rows=10 cols=80 wrap='physical' class=form></textarea>
<input class=form type='submit' value='Отправить'>
</form>\n";
?>

//send.php

<?
if (!isset($msg_text) OR trim($msg_text)=="") {
header("location: message.php?to=1&mess=1");
}
else{
    $msg_text = str_replace("<", "&lt;", $msg_text);
    $msg_text = AddSlashes($msg_text);
//вносим в базу    
header ("location: message.php?to=1&mess=2");
    }
    ?>

<?
if (!isset($to)) $to=1;
if ($to==1) $redirect="index.php";
if (!isset($mess)) $mess=1;
if ($mess==1) $messages="<h3>Ошибка!</h3>Введите своё cообщение";
if ($mess==2) $messages="<h3>Ок!</h3>Сообщение успешно отправленно";

echo"
<html><head><title>Отправка сообщения</title></head>
<META http-equiv=Content-Type content='text/html; charset=windows-1251'>
<LINK href='style.css' type=text/css rel=stylesheet>
<meta http-equiv='refresh' content='2;URL=".$redirect."'>
<body>
<DIV align=center><CENTER>
<TABLE cellSpacing=0 class=form cellPadding=6 width=90% height=20% bgColor=#f4f4f4 border=0>
<TR><TD>".$messages."
<h4>Если страница автоматически не перезагрузиться нажмите <a href=".$redirect.">сюда</a>.</h4>
</TD></TR></TABLE></DIV></center>
</body></html>";
?>
Вот это я имел ввиду...
 
Сверху