Помощник
|
Помогите сделать почтовую форму, SOS |
Гость_0_*
Гость_0_* |
Сообщение
#1
|
||
|
|
||
|
|||
Xan_mw |
28.6.2008, 20:11;
Ответить: Xan_mw
Сообщение
#2
|
|
doctor почитайте в учебниках пхп про формы ввода и отправку POST. Там должно рассказываться как работать с формами.. Точно сказать ничего не могу, так как с пхп не общаюсь
|
|
|
Vialls_mw |
28.6.2008, 21:38;
Ответить: Vialls_mw
Сообщение
#3
|
|
Тут писать очень много, функции для проверки коректности данных и т.п.. А вообще скрипт не сложно написать, изучив основные моменты PHP (но минимум денек потребуется, если вы ноль).
Если хотите сделаю за 5-10 баксов, стучите в асю... Называйте темы своими именами! |
|
|
ZiTosS |
29.6.2008, 0:11;
Ответить: ZiTosS
Сообщение
#4
|
|
Ну примерно так ))) Это без проверок
[php]<?php if(isset($_POST['submit'])) { $to = "someone@mail.ru"; //Ваш ящик $subject = "Отчет с сайта"; $subject = convert_cyr_string($theme, 'w', 'k'); $message = "<html> <head></head> <body> Поле 1 {$_POST['имя переменной']} ................... Поле N {$_POST['имя переменной']} </body> </html>"; $message = convert_cyr_string($message, 'w', 'k'); $headers = "Content-Type: text/html; charset=KOI8-R\r\n"; if(mail($to, $subject, $message, $headers)) { echo "Письмо успешно отправлено"; } else { echo "Произошла ошибка - письмо не отправлено"; } exit(); } ?> <html> <head> </head> <body> <form method="POST" action=""> Поле 1 : <input type="тип" name="Имя PHP переменной в массиве POST"> .............. Поле N : <input type="тип" name="Имя PHP переменной в массиве POST"> <input type="submit" name="submit" value="Отправить заказ"> </form> </body> </html>[/php] |
|
|
nifty5 |
13.8.2009, 23:10;
Ответить: nifty5
Сообщение
#5
|
|
[quote]
Ну примерно так ))) Это без проверок А я вот проверку никак, какраз, сделать не могу Хочу попросить помочь разобраться тоже (если время есть) У меня простая почтовая форма на PHP хочу сделать проверку обязательного поля "сообщение" и "e-mail" Поле с E-mail желательно с проверкой правильности адреса (ну это в идеале хотелось бы, можно и без этого). На данный момент всё работает так: там несколько пустых полей, чтобы не спамили, их не видно, но если их заполняет программа, то форма не отправляется и ещё там по умолчанию введены подсказки прямо в поля (при клике текст пропадает) в остальном самая простая форма. При отправке отправляет, также, на другую страницу thanx.htm в любом случае (независимо от того заполнена или нет) Я хотел бы чтобы было 2 поля для "Сообщения" и "Адреса почты" обязательными с проверкой и чтобы, если они не заполнены, то открывалась одна страница с ошибкой (error.htm), а если они заполнены, то другая (эта thanx.htm как сейчас) закачал 3 файла - html, php и css, которые используются. Вот они: sendspace.com/file/az6gpa (прикрепил архив к записи сюда тоже php_form.zip ( 2,14 килобайт ) Кол-во скачиваний: 152 ) Можете в них исправить что нужно? Я сам пробывал много раз - кучу скриптов перерыл уже и так и эдак - не получается у меня. Я вообще не понимаю в этом PHP... Был бы благодарен за помощь. |
|
|
ZiTosS |
14.8.2009, 1:23;
Ответить: ZiTosS
Сообщение
#6
|
|
nifty5,
Скажите что в вашем понимании "проверка правильности адреса"? Это его существование(этого проверить я не смогу) или же просто соответствие шаблону, то что это точно email-адрес? Вообще вот вам скрипт тогда: Файл form.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Отправка почты</title> <link rel="stylesheet" href="contact.css"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </head> <body> <form action="form.php" method="POST"> <input type=hidden name="recipient" value="admin@site.ru"> <input type=hidden name="subject" value="сообщение с сайта"> <table width="300" height="280" border="0" cellpadding="2" cellspacing="1"> <tr valign="top"> <td> Тема сообщения </td> <td> <input type="text" name="subject" value="" size="58" /> </td> </tr> <tr valign="top"> <td> Email-адрес получателя </td> <td> <input type="text" name="mail" value="" size="58" /> </td> </tr> </tr> <tr valign="top"> <td> Сообщение </td> <td> <textarea name="text"></textarea> </td> </tr> <tr> <td> <input type="reset" name="reset" class="clear" value="ОЧИСТИТЬ"> </td> <td> <input type="submit" name="submit" class="send" value="ОТПРАВИТЬ"> </td> </tr> </table> </form> </body> </html> Файл form.php [php]<meta http-equiv=Content-Type content="text/html; charset=windows-1251"> <?php if($_POST['text'] == "" || $_POST['mail'] == "") echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=error.html'>"; if(!ereg("^[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[@]{1}[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[.]{1}[A-Za-z]{2,5}$", $_POST['mail'])) echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=error.html'>"; $body = " С сайта http://www.site.ru/, поступило следующее сообщение: __________________________________________________________________________ Текст сообщения: ".$_POST['text']." "; $mailto = addslashes($_POST['mail']); $subject = addslashes($_POST['subject']); $body = convert_cyr_string(stripslashes($body),w,k); $subject = convert_cyr_string(stripslashes($subject),w,k); if(!mail($mailto, $subject, $body, "From: ".$_POST['mylo'])) echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=error.html'>"; else echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=thanks.html'>"; ?>[/php] Файл error.html <html> <head> </head> <body> <h1>Сообщение не было отправлено.</h1><br> Попробуйте отправить сообщение <a href="form.html">ещё раз</a> </body> </html> Файл thanks.html <html>
<head> </head> <body> <h1>Сообщение ОТПРАВЛЕНО</h1> </body> </html> |
|
|
nifty5 |
14.8.2009, 2:46;
Ответить: nifty5
Сообщение
#7
|
|
[quote]
Спасибо. Я имею ввиду, конечно, проверку написания просто e-mail К сожалению, не работает форма... Вы пишите в HTML файле 3 поля: Тема сообщения (subject), e-mail адрес получателя (mail), сообщение (text) 1) У меня форма отправки сообщения с сайта на мой адрес, то есть e-mail не получателя нужно вводить, а отправителя 2) У меня 6 полей в форме для заполнения настоящих, которых видно и можно заполнять + ещё 3 поля фальшивых - наживка для антиспама (роботы спамеров их видят, а люди нет, в итоге роботы их заполняют тоже, а люди нет, соответственно, если робот заполнил ложные поля, то почта не отправыляется, а люди о них даже и не знают). С этим антиспамом всё уже работает и сейчас как надо. Осталось только проверку сделать настоящие поля: agency (тема обращения) person (Имя) mylo (адрес почты отправителя) sayt (сайт отправителя) opros (вопрос как попали на сайт) bazar (текст сообщения) фальшивые: username (для роботов) password (для роботов) account (для роботов) Мне нужно 1)чтобы поле "bazar" (текст сообщения) и "mylo" (адрес почты отправителя) были обязательными для заполнения, иначе перенаправление на страницу ошибки. 2)Чтобы проверялось написание e-mail (как вы сделали) 3) чтобы если заполнены фальшивые поля "username" , "password" , "account" то также было перенаправление на ошибку (это уже у меня работает нормально сейчас) Как я говорил, это для программ спамерских (люди этих полей не видят в форме) 4) чтобы если всё ок, то перенаправление на страницу Спасибо (как сейчас) Я попробывал поменять просто свои поля (потому что Вы их изменили и сделали 3 вместо 5) - думал что просто поменяю и всё ок будет, но не работает. ФОрма отправляется в любом случае, даже если поля не заполнены Пожалуйста подправьте файлы именно с моими полями (мне всё равно нужна защита от спама и эти 5 полей) |
|
|
НЕПЛОХОЙ |
14.8.2009, 3:54;
Ответить: НЕПЛОХОЙ
Сообщение
#8
|
|
Пожалуйста подправьте файлы именно с моими полями (мне всё равно нужна защита от спама и эти 5 полей) вам сюда http://www.masterwebs.ru/forum/20-rabota-dlja-vebmastera/ |
|
|
ZiTosS |
14.8.2009, 13:40;
Ответить: ZiTosS
Сообщение
#9
|
|
Евгений, да ладно, делов на 5 минут. Попробуем-с помочь
nifty5, тогда покажу как исправить файл form.php [php]<meta http-equiv=Content-Type content="text/html; charset=windows-1251"> <?php if($_POST['username'] || $_POST['password'] || $_POST['account']) { echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=error.html'>"; exit(); } if($_POST['bazar'] == "" || $_POST['mylo'] == "") { echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=error.html'>"; exit(); } if(!ereg("^[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[@]{1}[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[.]{1}[A-Za-z]{2,5}$", $_POST['mylo'])) { echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=error.html'>"; exit(); } $body = " С сайта http://www.site.ru/, поступило следующее сообщение: Цель Обращения: ".$_POST['agency']." Контактное лицо: ".$_POST['person']." E-mail: ".$_POST['mylo']." URL: ".$_POST['sayt']." Как вообще дела: ".$_POST['opros']." __________________________________________________________________________ Текст сообщения: ".$_POST['bazar']." "; $mailto = $_POST['recipient']; $subject = $_POST['subject']; $body = convert_cyr_string (stripslashes($body),w,k); $subject = convert_cyr_string (stripslashes($subject),w,k); if(!mail($mailto, $subject, $body, "From: ".$_POST['mylo'])) echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=error.html'>"; else echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=thanks.html'>"; ?>[/php] |
|
|
nifty5 |
14.8.2009, 15:06;
Ответить: nifty5
Сообщение
#10
|
|
nifty5, тогда покажу как исправить файл form.php Спасибо. С e-mail всё работает вроде, а вот с текстом сообщения - в любом случае всё отправляется сейчас. Наверное, это потому, что у меня сейчас в этих полях написан текст (описание полей), который исчезает при клике по полю (см. файл css) То есть, я так понимаю, что если ничего не писать в поле, то оно всё равно не считается пустым, так как его описание воспринимается как заполненный текст. так? а можно как-то это поправить. например ввести этот текст подсказки и написать, что если текст в поле именно такой (то есть ничего нового не вводилось в форму), то воспринимать как пустое? |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Нужно сделать репост статей в соц сети | 1 | HavingingWorld | 2393 | 27.2.2024, 2:15 автор: AndrePro |
|
Помогите вспомнить рекламного бота Телеграм для обмена рекламой | 0 | Mixatraider | 692 | 21.2.2024, 23:42 автор: Mixatraider |
|
Сделать дорвей | 0 | tok24ua | 901 | 28.8.2023, 20:59 автор: tok24ua |
|
Сделать правки на html-странице | 5 | TABAK | 2261 | 20.5.2023, 10:45 автор: EvilGomel |
|
Сколько стоит сделать шаблон для WP? изучаю цены |
3 | Palundra | 2379 | 2.4.2022, 3:06 автор: WebSuccessful |
Текстовая версия | Сейчас: 28.3.2024, 22:38 |