Главная > Программирование > Самая простая форма с комментариями на php

Самая простая форма с комментариями на php

Язык php — язык динамический. Самый простой пример его интерактивного действия — форма с комментариями.
Вот здесь будет примерчик. Возможно начинающим это будет в пользу.
Итак, собственно сама форма куда будем писать комментарии:
<form action="obr.php" method="post">
<textarea name="comment"></textarea><br>
<input type="submit" value="Отправить" />
</form>
Видно что поле всего одно (я же обещал самый простой вариант). У этого поля есть имя — «comment». Оно необходимо для того чтобы потом спросить: Comment, а что в тебя написал пользователь, каково твое содержимое? Без имени не понятно к кому мы будем обращаться.
Форма отправляет комментарий файлу обработки: obr.php. Написанием его я и сейчас займусь.
Для начала проверю — поступили ли данные:
if (isset ($_POST['comment'])){
echo «Урра!! Комментарий получен!»;
}
Далее нам собственно нужно куда-то собирать все комментарии. Делать это мы будет в текстовый файл: allcomments.txt. Так проще.
Открываю текстовый файл на запись в конец:
$fo=fopen («allcomments.txt»,"a");
пишу туда комментарий и перевожу на новую строку для следующего комментария:
fwrite ($fo,$_POST['comment']."\r\n");
закрываю файл:
fclose ($fo);
Вот собственно и вся обработка. При нажатии на кнопку отправки Submit комментарий пересылается в obr.php, записывается в текстовый файл. И для того чтобы пользователь не останавливался на форме обработки а мог сразу просмотреть комментарий — делаю редирект на исходную страничку:
header («Location:http://setandwork.org.ua/comments_primery/ind.php»);
Здесь внимание — отправляется заголовок, а это значит что сервер раньше не должен получать ничего — то есть не должно выводить даже пробела. Путь указываем абсолютный.
Весь файл obr.php выглядит так:
<?php
if (isset ($_POST['comment'])){
$fo=fopen («allcomments.txt»,"a");
fwrite ($fo,$_POST['comment']);
fclose ($fo);
}
header («Location:http://setandwork.org.ua/comments_primery/ind.php»);
?>
Осталось только вывести комментарии в исходном файле.
А сделаем это так:
считаем все комментарии из файла allcomments.txt в массив:
$allcomments=file («allcomments.txt»);
и выведем его:
foreach ($allcomments as $v){
echo $v."<br><hr>";
}
Вот и все.
Подытожу. У нас получилось 3 файла:
1) с формой и комментариями — то что видит пользователь:
<form method="post" action="obr.php">
<textarea name="comment"></textarea><br>
<input type="submit" value="Отправить">
</form>
<?php
$allcomments=file («allcomments.txt»);
foreach ($allcomments as $v){
echo $v."<br><hr>";
}
?>
2) файл обработки (obr.txt):
<?php
if (isset ($_POST['comment'])){
$fo=fopen («allcomments.txt»,"a");
fwrite ($fo,$_POST['comment']."\r\n");
fclose ($fo);
}
header («Location:http://setandwork.org.ua/comments_primery/ind.php»); ?>
3) текстовый файл с комментариями (allcomments.txt).
Все это в рабочем виде можно увидеть здесь



Похожие записи по теме:
Понравился пост? Подпишись на обновления блога: RSS wordpress insideRSSRSS wordpress insideEmailtwitter wordpress insideTwitter!
 
Категории: Программирование  Просмотров: 1123
  1. Андрей
    February 8th, 2012 at 19:32 | #1

    Делаю страницу «форма.php» с кодом:

    form method="post" action="obr.php">

    и страницу «obr.php» с кодом:

    При отправке текста из формы происходит переход на «obr.php», но ничего не выводится. Почему?

  2. kolya
    February 9th, 2012 at 00:49 | #2

    А и не должно ничего выводится. Мы просто записываем данные, полученные из формы в файл и сразу делаем редирект на предыдущую страничку

    А на ней уже и выводим все что нужно.

    Если хотите знать что получает obr.php из формы — то напишите в этом файле print_r ($_POST);

  3. Андрей
    February 9th, 2012 at 14:20 | #3

    спасибо, что ответили.

    после ввода текста открывается obr.php и ничего не происходит, текст в allcomments.txt не записывается.

    проверьте пожалуйста, все ли правильно:

    и

    • kolya
      February 10th, 2012 at 22:57 | #4

      Наверное потому что вы запускаете код не на сервере а в браузере.

      php выполняется на сервере. Установите «Денвер» себе на комп. Или воспользуйтесь каким либо хостингом.

  1. Нет трекбеков.

Уважаемый комментатор, я очень благодарен за оставленные тобой комментарии! Мне очень приятно их читать. Но порой встречаются люди, которые просто в наглую пытаются продвинуть свой ресурс, размещая ссылку в комментариях только для того, что бы увеличить ТИЦ. Меня порой просто удивляют такие люди... С недавних пор я стал сносить ссылки, которые идут на откровенный бред, никак не похожий на мой блог. Все остальные нормальные блоги будут опубликованы! Если Вы спамер, проходите мимо! Не тратьте время зря! Я ведь всё равно проверяю каждый сайт на соответствие с требованиями. :)