Непонятки с формами на PHP

  • Автор темы Автор темы Bronepoezd
  • Дата начала Дата начала

Bronepoezd

Guest
Непонятки с формами на PHP

Начал делать гостевуху на PHP... Вот, написал несколько строк:

<?
global $text;
global $prov;

print "
<center><h4>ГОСТЕВАЯ КНИГА</h4></center>
";

@mysql_connect("localhost","web","") or die("Could not connect to MYSQL server!");
@mysql_select_db("guest") or die("Could not select company database!");

print "<form method=post>";
print "<textarea name=text rows=3 cols=40 Value=\"Введите сообщение...\">";
print "</textarea>";
print "<input type=hidden name=prov value=\"1234567890\">";
print "<input type=submit value=Отправить>";
print "</form>";

if ($prov=="1234567890") {
$query1="INSERT INTO guest VALUES('$text')";
mysql_query($query1) or die("mysql_error!");


$query2="SELECT*FROM guest";
$result=mysql_query($query2) or die("mysql_error!");

while ($row=mysql_fetch_array($result)):

print $row['text'];
print "<br>";

endwhile;
}

mysql_close();

?>

Вообщем проблема такая: Когда я пытаюсь обновить страницу, выскакивает сообщение IE: "Не удаётся обновить страницу без повторной отправки данных. Нажмите соответствующую кнопку для повторной отправки данных или отмените операцию для возврата к открываемой странице."
Когда я нажимаю ПОВТОР, то в происходит повторная отправка данных и в БД записывается то, что было введено раньше...

Подскажите пожалуйста, как этого избежать... Необходимо, чтобы при обновлении страницы никаких сообщений не выводилось и чтобы гостевуха нормально работала...
 
Bronepoezd
Если тебе интересно, то можно тебе показать, как улучшить твой код
 
окей.
для начала убираем бессмысленные два глобала в самом начале
затем вместо ничего не говорящих
"Could not connect to MYSQL server!"
"Could not select company database!"
пишем осмысленное mysql_error(), чтобы база нам сказала, В ЧЕМ состоит ошибка.
по-хорошему, эти сообщения надо писать в лог, но тебе рано пока
дальше здоровенный кусок хтмла вместо принтов надо выводить по-человечески
Закрываем пхп, выводим хтмл, открываем пхп
?>
<form method="post">
...
</form>
<?
так получается гораздо легче читать и редактировать, не надо путаться с кавычками.

if ($prov надо заменить на if ($_POST['prov'])
почему - читай здесь: PHP FAQ: Проблема register_globals
да ивообще я не уверен в надобности этогополя.
оно у тебя зачем?

дальше. самое главное.
составлять запрос надо в соответствии с правилами PHP FAQ: \"Кавычки \". Если Вы работаете с MySQL


ну, и на сладкое - PHP FAQ: Как разбить вывод из mysql постранично

-~{}~ 12.01.05 16:33:

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

И писать приватом мне не надо. Для этого предназначен форум. Бояться или стесняться того, что ты чего-то не знаешь - не нужно.

Вот тебе еще один текст про то, как обрабатывать форму и изберать сообщения об обновлении.
http://phpclub.ru/talk/showthread.php?s=&threadid=43521

Все, что я мог бы тебе сказать по этой теме, напаисано по этим двум ссылкам.
Если ты воспринимаешь только тексты, обращенные только к тебе лично - ничем не могу помочь.
Пока ты не задаешь осмысленных вопросов, а все время повторяешь тот, на который тебе уже ответили - ничем не могу помочь.
 
Сверху