Помощник
|
Как сделать форму обратной связи на сайте |
Kolovrat_hb
|
Сообщение
#1
|
||
|
|
||
|
|||
unfixed |
12.5.2012, 22:45;
Ответить: unfixed
Сообщение
#2
|
|
Более того, теги <title> добавлять тоже не надо.
В упрощенном виде второй пункт выглядит так. <?php // Если срабатывает кнопка send if (@$_POST['send']) { // Получаем данные формы $name = $_POST['name']; $mail = $_POST['mail']; $theme = $_POST['theme']; $text = $_POST['text']; $string = $name."\n". $mail."\n". $theme."\n". $text; // Название каждого файла — дата и время поступления сообщения $filename = date("d-m-Y H.i.s").'.txt'; // Записываем каждое сообщение в файл $file = fopen($filename, 'w+'); fwrite($file, $string); fclose($file); } ?> Только не стоит забывать обрабатывать полученные переменные функциями типа trim, htmlspecialchars. т.е. получится "$name = htmlspecialchars(trim( $_POST['name']));". Переменные записываются в файл каждая с новой строки, поэтому потом будет удобно считывать их функцией file. |
|
|
Kolovrat_hb
|
Сообщение
#3
|
|
огромнейшее спасибо =) вот такой вот вопросик =) я вот сидел сам пробовал сделать упрощенный вариант чтоб именно понять работу с файлами и написал эту вещь:
<? $name = $_post['name']; $mail = $_post['mail']; $theme = $_post['theme']; $text = $_post['text']; $file = "Тема сообщения: ".$theme."/n Имя: ".$name."/n Майл: ".$mail."/n/n".$text; $feed = fopen('counter.txt', 'w'); $test = fwrite($feed, $file); if ($test) echo("Данные успешно занесены!"); else echo("ОШИБКА!!!"); fclose($feed); ?> так вот, файл не создавался а проверка в конце срабатывала так как будто все записалось (ну в том смысле что выводилось сообщение "Данные успешно занесены!"). потом я еще попробовал переменную $file вывести после того сообщения и оказалось что в нее не вставились значения переменных $name $text и т.д. не знаете ли почему так получилось? и если не сложно, можно ли поподробней про "Только не стоит забывать обрабатывать полученные переменные функциями типа trim, htmlspecialchars. т.е. получится "$name = htmlspecialchars(trim( $_POST['name']));"." P.S. попробовал сейчас вставить ваш код себе и он тоже не работает... просто не создает файлик =( может быть какие то базы данных не обновлены??? я пользуюсь программой openserver, недавно было какое то обновление и я его установил |
|
|
unfixed |
13.5.2012, 14:31;
Ответить: unfixed
Сообщение
#4
|
|
Переменные не передались, потому что глобальные переменные типа $_POST, $_GET, $_SERVER пишутся заглавным буквами. И, кстати, символ перевода строки "\n", а не "/n".
Может, с формой что-то не так? Вот весь код, который у меня работал: <?php
error_reporting(E_ALL); // Если срабатывает кнопка send if (@$_POST['send']) { // Получаем данные формы $name = $_POST['name']; $mail = $_POST['mail']; $theme = $_POST['theme']; $text = $_POST['text']; $string = $name."\n". $mail."\n". $theme."\n". $text; // Название каждого файла — дата и время поступления сообщения $filename = date("d-m-Y H.i.s").'.txt'; // Записываем каждое сообщение в файл $file = fopen($filename, 'w+'); fwrite($file, $string); fclose($file); } ?> <form action="<?=$_SERVER['PHP_SELF'];?>" method="post"> <input type="text" name="name" placeholder="name" /> <input type="text" name="mail" placeholder="mail" /> <input type="text" name="theme" placeholder="theme" /> <input type="text" name="text" placeholder="text" /> <input type="submit" name="send" /> </form> |
|
|
Kolovrat_hb
|
Сообщение
#5
|
|
спасибо, сейчас попробую. я думал что они не чувствительны к регистру. пожалуйста, при возможности не покидайте форум. мне срочно надо это доделать, боюсь что вдруг опять что то не так пойдет. заранее благодарен
что значит это: error_reporting(E_ALL); Все! Большое спасибо! Заработало! Теперь буду разбираться с кодом, попытаюсь понять почему до этого не работало и т.д. все же просьба растолкуйте русским языком для чего error_reporting(E_ALL); . я нашел в нэте описание, но там как то не понятно |
|
|
yury_mw |
13.5.2012, 16:02;
Ответить: yury_mw
Сообщение
#6
|
|
что значит это: error_reporting(E_ALL); error_reporting() — это функция обработки ошибок.Конкретно команда error_reporting(E_ALL); указывает интерпретатору PHP сообщать обо всех ошибках в вашем коде и выводить все предупреждения, если соответствующие ошибки в коде обнаружатся. |
|
|
Kolovrat_hb
|
Сообщение
#7
|
|
тоесть если эту комманду не поставить они не будут выводиться? но ведь если не ошибаюсь у меня выводились ошибки до этого
Я немного подправил PHP код, но вся суть осталась. Просто оформил как мне удобней будет. И переводы строки не работают. Гляньте скрипт пожалуйста: <?php |
|
|
yury_mw |
13.5.2012, 18:13;
Ответить: yury_mw
Сообщение
#8
|
|
тоесть если эту комманду не поставить они не будут выводиться? но ведь если не ошибаюсь у меня выводились ошибки до этого Будут ли выводиться сообщения об ошибках и какие зависит от настроек PHP, команда error_reporting задает это в обход этих настроек.И переводы строки не работают. Переводы строк работают, но не для windows, который считает, что для новой строки одного символа новой строки "n" не достаточно и в добавок хочет еще символ возврата каретки "r".Т.е. если хочется увидеть переводы строк в стандартном win-блокноте, используйте вместо "n" — "rn": $string = "Имя: ".$name."rn"."EMail: ".$mail."rn"."Тема: ".$theme."rnrn".$text;
|
|
|
Kolovrat_hb
|
Сообщение
#9
|
|
Спасибо большое всем =) все работает =) но появился еще один вопрос как делать перенаправление на определенный адресс???
|
|
|
Kolovrat_hb
|
Сообщение
#10
|
|
блин =) и еще одна проблемка думал это легко исправить будит, но не получилось файл с данными создается в том же каталоге где находится php файл с кодом, а мне надо на один каталог раньше в другую папку. как мне это указать? пробовал двумя способами и не работает
|
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Сделать дорвей | 2 | tok24ua | 896 | Сегодня, 5:21 автор: c4p1t4l15t |
|
Большие ставки для кликов в Я.Директ. Как удешевить? | 2 | rownong27 | 1116 | 26.3.2024, 14:13 автор: knezevolk |
|
Как вы бросили работу и перешли на заработок с сайтов? | 12 | uahomka | 2279 | 25.3.2024, 6:52 автор: Skyworker |
|
Как отозвать банковский платеж фрилансеру? | 28 | metvekot | 3910 | 25.3.2024, 6:34 автор: Skyworker |
|
Как вывести деньги в Украине с заблокированного Юмани ? | 23 | freeax | 3635 | 24.3.2024, 20:55 автор: Liudmila |
Текстовая версия | Сейчас: 28.3.2024, 14:13 |