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

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

Подскажите пожалуйста, как этого избежать... Необходимо, чтобы при обновлении страницы никаких сообщений не выводилось и чтобы гостевуха нормально работала...
 

Фанат

oncle terrible
Команда форума
Bronepoezd
Если тебе интересно, то можно тебе показать, как улучшить твой код
 

Фанат

oncle terrible
Команда форума
окей.
для начала убираем бессмысленные два глобала в самом начале
затем вместо ничего не говорящих
"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

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