Очень намучился с создание формы для обратной связи. если учитывать, что с Пшп вообще мало знаком, думаю что-то получилось. Проверьте, пжлст мои Коды и дайте рекомендации. Есть вопросы, которые меня особо интересуют: 1. что там на счет полей обязательных для ввода, все верно? 2. как сделать так, чтобы без включенного поля Agree письмо не отправлялось 3. правильна ли проверка телефона? (нужно, чтобы телефон начинался с "+380") 4. правильно ли осуществляется проверка типа файла (у меня эта проверка - accept="text/txt") 5. как правильно подключить Капчту, а то у меня гадость какая-то получилась) - ну и все, что вы можете мне посоветовать файл с формой ****.html Код (Text): <form action="mail.php" method="post" enctype="multipart/form-data" accept="text/txt"> <div align="center"> <table width="500" cellspacing="1" cellpadding="2"> <tr bgcolor="#acd5ff"> <td> <b>* П.І.Б.</b><br>Введіть реальне ім'я, щоб ми знали як до Вас звертатись </td> </tr> <tr> <td><input type="text" name="nick" size="39" style="border: #000 1px solid; background-color: #fff;"></b> </td> </tr> <tr bgcolor="#acd5ff"> <td> <b>* Ваш E-mail:</b><br>Введіть рельну e-mail адресу, на неї ви отримаете створений файл </td> </tr> <tr> <td><input type="text" name="email" size="39" style="border: #000 1px solid; background-color: #fff;"></b> </td> </tr> <tr bgcolor="#acd5ff"> <td> <b>* Контактний телефон:</b><br>Введіть рельний телефон, необхідний для підтверження ваших даних </td> </tr> <tr> <td><input type="text" name="phone" size="39" value="+380123456789" style="border: #000 1px solid; background-color: #fff;"></b> </td> </tr> <tr bgcolor="#acd5ff"> <td> <b>* Прикріпити файл:</b> </td> </tr> <tr> <td><input type="file" name="file" size="35" style="border: #000 1px solid; background-color: #fff;"> </b> </td> </tr> <tr bgcolor="#acd5ff"> <td> <b>Додаткова інформація</b><br>Вкажіть інформацію, що на Вашу думку сприятиме виконанню послуги </td> </tr> <tr> <td><textarea rows="2" cols="60" name="msg" style="border: #000 1px solid; background-color: #fff;scrollbar-dark-shadowcolor:#E7E8EB;scrollbar-light-shadow-color:#EFF3F4;scrollbar-base-color:#EFF3F4;scrollbar-arrow-color:#D0CFCE;scrollbar-face-color:#E7E8EB;scrollbar-shadow-color:#7D868D;scrollbar-3d-light-color:#EFF3F4;"></textarea></b> </td> </tr> <tr> <td><input type="checkbox" name="agree" value="Yes">Я згоден з правилами надяння послуги та ввів коректні дані</b> </td> </tr> <tr><td>Код підтвердження: <input type="text" id="code" name="code" size="4" maxlength="4"> <img align="absmiddle" src="captcha.php"></td></tr> <tr> <tr> <td bgcolor="#042f5b"> <table width="100%"> <tr><td align="right"><input type="submit" value="Надіслати" style="background-color:#D0CFCE;border: #000 1px solid;" name="submit"> </td></tr> </table> </td> </tr> </table> </div> </form><br>* Ці поля, обов'язкові для заповнення </div> а это файл Меил.пшп Код (Text): <?php $url = "*****.html"; //Адрес гостевой книги, ваша страница $title = "*****"; //Заголовок сайта $subject = "Письмо с сайта $title"; //Тема отпровляемых вам сообщений $admail = "******"; //Ваш e-mail, на который будут отправляться письма $back = "<a href=\"java script: history.back()\">Назад</a></p>"; if(@$_POST['nick'] or @$_POST['email'] or @$_POST['phone'] or @$_POST['agree'] or @$_POST['file']) { @$nick = $_POST['nick'] or die("Переконайтесь, що ввели своє ім'я!$back"); @$mail = $_POST['email'] or die("Переконайтесь, що ввели свій E-mail!$back"); @$phone = $_POST['phone'] or die("Переконайтесь, що ввели свій номер телефону!$back"); @$file = $_POST['file'] or die("Переконайтесь, що прикріпили вірний файл!$back"); @$accept = $_POST['agree'] or die("Для доступу до послуги Ви повинні погоджуватися з нашими умовами!$back"); if(!eregi("^[a-z0-9\._-]+@[a-z0-9\._-]+\.[a-z]{2,4}\$", $email)) { echo "Переконайтесь, що ввели коректний E-mail!$back"; exit; } if(!eregi("[a-z]\$", $nick)) { echo "Переконайтесь, що ввели коректне ім'я!$back"; exit; } if(!eregi("^[+380]+[0-9]{7,7}\$", $phone)) { echo "Переконайтесь, що ввели коректний телефон!$back"; exit; $content = "\nПользователь $nick!\n Адресс: $email\n Телефон - $phone Отправил(а) вам письмо с сайта - \"$title\"\n со следующим содержанием:\n\n$msg"; if(!@mail($admail, $subject, $content)) { echo "Помилка під час відправлення повідомлення. Будь-ласка, повідомте про це адміністратора сайта використовуючи інший вид связку.$back"; exit; } else { echo "Ваше повідомлення успішно відіслане!<Br> Ви отримаете відповідь найближчим часом "; echo "<meta http-equiv=\"refresh\" content=\"1;URL=$url\">"; } } else { die("Для отравки повідомлення заповність всі обов'язкові поля!$back"); } ?>
Может лучше за 10-20 американских бумажек ктото сделает так как нужно? а то тут все переписать нужно. Код может и рабочий, но написан ногами. Если для самопрактики - то пойдет, но ставить этот скрипт в реальный сайт - не стоит.
понимаешь, это как Жигули и Мерседес. Вроде и первое и второе может ехать, но качество исполнения совсем разное. Наговнокодить так чтобы абы как работало то можно, я не спорю. Вот у тебя - если ошибка проверки срабатывает die(), остальная часть кода продолжает выполняться. Это уже через одно место написано. Если сделать хорошо - то это будет каптча, с обновлением картинки без перезагрузки страницы, та же проверка всех инпутов на правильность заполнения на js. И если все верно - только тогда отправляется форма. В итоге - юзер не ждет пока странице вернется после проверки и ошибки тут же будут выведены, а сайт лишний раз не дергается, если инфа введенная - некорректна.
а может не насиловать себе мозг и посмотреть на примеры ? "скачать скрипт формы обратной связи" в гугле я не говорю брать , а просто посмотреть , а возможно и брать =)
to Апельсин: ООО если можно включить проверку, через js - то это тоже хорошо, буду Гуглить.. to siiXth: а то я эту форму сам писал))) конечно по чуть-чуть передрал с других.. вот из-за этого и прошу проверить) а ошибок реально много и я это осознаю, те о которых мне подсказали (пока только о наличии) это: проверка номера, $back, проверка чекбокса... П.с. продолжаю надеяться на Робин Гудов)
goshalve Во-первых, я был born in USSR. Во-вторых, в части наших школ до сих пор преподают русский язык и литературу, в большей части городов говорят по-русски, и библиотеки не закрывают за антиукраинские настрои. В отличие от.. от вашей "демократичной" державы. Вас даже до сих пор через новости зомбируют - какие украинцы плохие и какие американцы гады. Но это уже другая тема.
пхаха я какбэ тоже тутачки ишо ? пойди погугли понятия билингв и как это влияет на уровень интеллекта. не понимаю тех кто не знает в совершенстве хотя бы этих 2х языков.
Апельсин,siiXth в Рашке построят 1 линию метро ,и эт будет по новостям,в то время как в Китае только 50 линий метро нбудет там.Сколковский конструктор лего ,медведская шиза на полицию.Про Америкосов что они устроили революцию в Египте было,про украинцев показали что Тимошенко ушла и всё!Про Украинцев только если в газетах,у нас типо вся страна будет играть на компьютере потому что Медвед явно не доиграл и чтобы было интереснее играть в контру переменовал милицию.Я как бэ зомбящик не смотрю особо. Да и Медвед о Терракте в Домодедово из Твитера узнал!
боже , что это ? внизу есть кнопка "забанить себя" для персонажей со спермотоксикозом которые начинают нести некую поебень. да и както я дальше "в Рашке построят" не читал. мне настолько пойух насколько это возможно. пойди и загугли то что я написал выше.
siiXth Понял что решение ПроизводительностьМозга(мозг+знание1)>ПроизводительностьМозга(мозг) в общем так и есть.Рыночная экономика и быдломассы упрощают требования от мозга
руби оффтоп! по теме: написание формы связи это простейшая задача. и ОДНОЙ увиденной формы должно хватить для всех практических применений. если вам для этого нужна помощь и эту представленную выше писали не вы - забейте на пхп.
to iqordata: ну, если бы я смог увидеть ОДНУ форму, которая полностью отвечала бы моим требованием - то конечно без вопросов... но, например с чекбоксами и их проверкой не находил, то же и с проверкой телефона
to offtopoвцам: Мне в школе, например, преподавали 5 языков: украинский, русский, английский, немецкий и математику..
chest ИНПУТЫ ВСЕ ОДИНАКОВЫЕ =) учи язык, учи простейшие вещи которые тебе помогут. var_dump($_POST); сделай и все будет как на ладони. Что тут еще можно думать и изобретать неделю.