За последние 24 часа нас посетил 17571 программист и 1314 роботов. Сейчас ищут 1458 программистов ...

Форма обратной связи

Тема в разделе "Работа с почтой", создана пользователем chest, 6 мар 2011.

  1. chest

    chest Активный пользователь

    С нами с:
    6 мар 2011
    Сообщения:
    6
    Симпатии:
    0
    Очень намучился с создание формы для обратной связи. если учитывать, что с Пшп вообще мало знаком, думаю что-то получилось.
    Проверьте, пжлст мои Коды и дайте рекомендации.
    Есть вопросы, которые меня особо интересуют:
    1. что там на счет полей обязательных для ввода, все верно?
    2. как сделать так, чтобы без включенного поля Agree письмо не отправлялось
    3. правильна ли проверка телефона? (нужно, чтобы телефон начинался с "+380")
    4. правильно ли осуществляется проверка типа файла (у меня эта проверка - accept="text/txt")
    5. как правильно подключить Капчту, а то у меня гадость какая-то получилась)

    - ну и все, что вы можете мне посоветовать

    файл с формой ****.html
    Код (Text):
    1.  <form action="mail.php" method="post" enctype="multipart/form-data" accept="text/txt">
    2. <div align="center">
    3. <table width="500" cellspacing="1" cellpadding="2">
    4. <tr bgcolor="#acd5ff">
    5.   <td>
    6.      <b>* П.І.Б.</b><br>Введіть реальне ім'я, щоб ми знали як до Вас звертатись
    7.   </td>
    8. </tr>
    9. <tr>
    10.   <td><input type="text" name="nick" size="39" style="border: #000 1px solid; background-color: #fff;"></b>
    11.   </td>
    12. </tr>
    13. <tr bgcolor="#acd5ff">
    14.   <td>
    15.      <b>* Ваш E-mail:</b><br>Введіть рельну e-mail адресу, на неї ви отримаете створений файл
    16.   </td>
    17. </tr>
    18. <tr>
    19.   <td><input type="text" name="email" size="39" style="border: #000 1px solid; background-color: #fff;"></b>
    20.   </td>
    21. </tr>
    22. <tr bgcolor="#acd5ff">
    23.   <td>
    24.      <b>* Контактний телефон:</b><br>Введіть рельний телефон, необхідний для підтверження ваших даних
    25.   </td>
    26. </tr>
    27. <tr>
    28.   <td><input type="text" name="phone" size="39" value="+380123456789" style="border: #000 1px solid; background-color: #fff;"></b>
    29.   </td>
    30. </tr>
    31. <tr bgcolor="#acd5ff">
    32.   <td>
    33.      <b>* Прикріпити файл:</b>
    34.   </td>
    35. </tr>
    36. <tr>
    37.   <td><input type="file" name="file" size="35" style="border: #000 1px solid; background-color: #fff;">
    38. </b>
    39.   </td>
    40. </tr>
    41. <tr bgcolor="#acd5ff">
    42.   <td>
    43.      <b>Додаткова інформація</b><br>Вкажіть інформацію, що на Вашу думку сприятиме виконанню послуги
    44.   </td>
    45. </tr>
    46. <tr>
    47.   <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>
    48.   </td>
    49. </tr>
    50. <tr>
    51.   <td><input type="checkbox" name="agree" value="Yes">Я згоден з правилами надяння послуги та ввів коректні дані</b>
    52.   </td>
    53. </tr>
    54. <tr><td>Код підтвердження:
    55. <input type="text" id="code" name="code" size="4" maxlength="4">
    56. <img align="absmiddle" src="captcha.php"></td></tr>
    57. <tr>
    58. <tr>
    59.   <td bgcolor="#042f5b">
    60.    <table width="100%">
    61.     <tr><td align="right"><input type="submit" value="Надіслати" style="background-color:#D0CFCE;border: #000 1px solid;" name="submit">
    62.     </td></tr>
    63.    </table>
    64.   </td>
    65. </tr>
    66. </table>
    67. </div>
    68. </form><br>* Ці поля, обов'язкові для заповнення
    69.   </div>
    а это файл Меил.пшп
    Код (Text):
    1. <?php
    2. $url = "*****.html"; //Адрес гостевой книги, ваша страница
    3. $title = "*****"; //Заголовок сайта
    4. $subject = "Письмо с сайта $title"; //Тема отпровляемых вам сообщений
    5. $admail = "******"; //Ваш e-mail, на который будут отправляться письма
    6. $back = "<a href=\"java script: history.back()\">Назад</a></p>";
    7.  
    8. if(@$_POST['nick'] or @$_POST['email'] or @$_POST['phone'] or @$_POST['agree'] or @$_POST['file'])
    9. {
    10. @$nick = $_POST['nick'] or die("Переконайтесь, що ввели своє ім'я!$back");
    11. @$mail = $_POST['email'] or die("Переконайтесь, що ввели свій E-mail!$back");
    12. @$phone = $_POST['phone'] or die("Переконайтесь, що ввели свій номер телефону!$back");
    13. @$file = $_POST['file'] or die("Переконайтесь, що прикріпили вірний файл!$back");
    14. @$accept = $_POST['agree'] or die("Для доступу до послуги Ви повинні погоджуватися з нашими
    15.  
    16. умовами!$back");
    17.  
    18. if(!eregi("^[a-z0-9\._-]+@[a-z0-9\._-]+\.[a-z]{2,4}\$", $email))
    19. {
    20. echo "Переконайтесь, що ввели коректний E-mail!$back";
    21. exit;
    22. }
    23. if(!eregi("[a-z]\$", $nick))
    24. {
    25. echo "Переконайтесь, що ввели коректне ім'я!$back";
    26. exit;
    27. } if(!eregi("^[+380]+[0-9]{7,7}\$", $phone))
    28. {
    29. echo "Переконайтесь, що ввели коректний телефон!$back";
    30. exit;
    31.  
    32. $content = "\nПользователь $nick!\n
    33. Адресс: $email\n
    34. Телефон - $phone
    35. Отправил(а) вам письмо с сайта - \"$title\"\n
    36. со следующим содержанием:\n\n$msg";
    37. if(!@mail($admail, $subject, $content))
    38. {
    39. echo "Помилка під час відправлення повідомлення. Будь-ласка, повідомте про це адміністратора сайта
    40.  
    41. використовуючи інший вид связку.$back";
    42. exit;
    43. }
    44. else
    45. {
    46. echo "Ваше повідомлення успішно відіслане!<Br> Ви отримаете відповідь найближчим часом ";
    47. echo "<meta http-equiv=\"refresh\" content=\"1;URL=$url\">";
    48. }
    49. }
    50. else {
    51. die("Для отравки повідомлення заповність всі обов'язкові поля!$back");
    52. }
    53. ?>
     
  2. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Может лучше за 10-20 американских бумажек ктото сделает так как нужно? а то тут все переписать нужно.
    Код может и рабочий, но написан ногами. Если для самопрактики - то пойдет, но ставить этот скрипт в реальный сайт - не стоит.
     
  3. chest

    chest Активный пользователь

    С нами с:
    6 мар 2011
    Сообщения:
    6
    Симпатии:
    0
    за 10-20 бакинских - я и сам буду формы отправлять) мне бы помочь чуток, думаю все будет ок
     
  4. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    понимаешь, это как Жигули и Мерседес. Вроде и первое и второе может ехать, но качество исполнения совсем разное. Наговнокодить так чтобы абы как работало то можно, я не спорю. Вот у тебя - если ошибка проверки срабатывает die(), остальная часть кода продолжает выполняться. Это уже через одно место написано. Если сделать хорошо - то это будет каптча, с обновлением картинки без перезагрузки страницы, та же проверка всех инпутов на правильность заполнения на js. И если все верно - только тогда отправляется форма. В итоге - юзер не ждет пока странице вернется после проверки и ошибки тут же будут выведены, а сайт лишний раз не дергается, если инфа введенная - некорректна.
     
  5. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    а может не насиловать себе мозг и посмотреть на примеры ?
    "скачать скрипт формы обратной связи" в гугле
    я не говорю брать , а просто посмотреть , а возможно и брать =)
     
  6. chest

    chest Активный пользователь

    С нами с:
    6 мар 2011
    Сообщения:
    6
    Симпатии:
    0
    to Апельсин:
    ООО если можно включить проверку, через js - то это тоже хорошо, буду Гуглить..

    to siiXth:
    а то я эту форму сам писал))) конечно по чуть-чуть передрал с других.. вот из-за этого и прошу проверить)


    а ошибок реально много и я это осознаю, те о которых мне подсказали (пока только о наличии) это: проверка номера, $back, проверка чекбокса...


    П.с. продолжаю надеяться на Робин Гудов)
     
  7. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    жаль огорчать, но Робин Гуд готовится к 8 марта :)
     
  8. goshalve

    goshalve Guest

    Апельсин
    Ты как в Украине русский выучил?
     
  9. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    goshalve
    Во-первых, я был born in USSR. Во-вторых, в части наших школ до сих пор преподают русский язык и литературу, в большей части городов говорят по-русски, и библиотеки не закрывают за антиукраинские настрои. В отличие от.. от вашей "демократичной" державы. Вас даже до сих пор через новости зомбируют - какие украинцы плохие и какие американцы гады. Но это уже другая тема.
     
  10. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    пхаха
    я какбэ тоже тутачки
    ишо ?
    пойди погугли понятия билингв и как это влияет на уровень интеллекта. не понимаю тех кто не знает в совершенстве хотя бы этих 2х языков.
     
  11. goshalve

    goshalve Guest

    Апельсин,siiXth в Рашке построят 1 линию метро ,и эт будет по новостям,в то время как в Китае только 50 линий метро нбудет там.Сколковский конструктор лего ,медведская шиза на полицию.Про Америкосов что они устроили революцию в Египте было,про украинцев показали что Тимошенко ушла и всё!Про Украинцев только если в газетах,у нас типо вся страна будет играть на компьютере потому что Медвед явно не доиграл и чтобы было интереснее играть в контру переменовал милицию.Я как бэ зомбящик не смотрю особо.

    Да и Медвед о Терракте в Домодедово из Твитера узнал!
     
  12. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    боже , что это ?
    внизу есть кнопка "забанить себя" для персонажей со спермотоксикозом которые начинают нести некую поебень.

    да и както я дальше "в Рашке построят" не читал. мне настолько пойух насколько это возможно.

    пойди и загугли то что я написал выше.
     
  13. goshalve

    goshalve Guest

    siiXth
    Понял что решение ПроизводительностьМозга(мозг+знание1)>ПроизводительностьМозга(мозг)
    в общем так и есть.Рыночная экономика и быдломассы упрощают требования от мозга
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    руби оффтоп!


    по теме: написание формы связи это простейшая задача. и ОДНОЙ увиденной формы должно хватить для всех практических применений. если вам для этого нужна помощь и эту представленную выше писали не вы - забейте на пхп.
     
  15. chest

    chest Активный пользователь

    С нами с:
    6 мар 2011
    Сообщения:
    6
    Симпатии:
    0
    to iqordata:
    ну, если бы я смог увидеть ОДНУ форму, которая полностью отвечала бы моим требованием - то конечно без вопросов... но, например с чекбоксами и их проверкой не находил, то же и с проверкой телефона
     
  16. chest

    chest Активный пользователь

    С нами с:
    6 мар 2011
    Сообщения:
    6
    Симпатии:
    0
    to offtopoвцам:
    Мне в школе, например, преподавали 5 языков: украинский, русский, английский, немецкий и математику..
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    chest
    ИНПУТЫ ВСЕ ОДИНАКОВЫЕ =)

    учи язык, учи простейшие вещи которые тебе помогут.

    var_dump($_POST); сделай и все будет как на ладони. Что тут еще можно думать и изобретать неделю.