Настройка работы РНР скрипта почтовой формы.

Тема в разделе "Свободное общение", создана пользователем GROM, 8 окт 2009.

  1. GROM

    GROM Гость

    Знатоки, пожалуйста, подскажите!
    У меня несколько форм отправки почтовых сообщений, а обработчик этих сообщений как говориться один на всех, он написан на PHP. Так вот, у него есть проверка на правильность заполнения полей. В первом случае, если посетитель что-то наколбасил, то после нажатия открывается страничка, где написано об ошибке, при этом срабатывает переадресация назад URL=java script:history.go(-1), чтоб он исправил всё и повторил попытку, тут всё нормально. Но, во втором случае, если всё нормально заполнено, то открывается страничка, где написано "Ваше сообщение отправлено", и он должен вроде как попасть опять обратно к форме, но если написать так URL=java script:history.go(-1) в форме остается уже отправленное сообщение. Это как раз и смущает, так посетитель может, нажимая на submit спамить. Так как форм несколько, а обработчик один, то в нём указать прямой адрес назад на форму, что бы страница при переходе обновлялась, не получается.

    Надо что бы почтовые формы из index.php лежащие в папках ниже уровнем корректно работали с обработчиком находящимся выше в папке output_agent, другими словами, чтоб возврат со страницы обработчика был на страницу с почтовой формой.
    Существует ли возможность решить эту проблему, каким ни будь javascript или PHP, что бы страница обновилась. Или может, есть другое решение реализовать такую работу скриптов.
    Ниже привожу пример структуры. Буду очень благодарен за помощь.
     

    Вложения:

    • derevo.gif
      derevo.gif
      Размер файла:
      55,4 КБ
      Просмотров:
      12
  2. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.470
    Симпатии:
    27
    Эмм.. А почему бы обработчику попутно не передавать еще и переменную ReturnTo по адресу в которой он перейдет после выполнения всего, что нужно?
     
  3. GROM

    GROM Гость

    Всё бы хорошо, если б знать что и куда вписать. Я не гуру, только начал постигать азы языка PHP, пока слабо получается. :( Рылся неделю в инете, но если находил, что-то подобное, то очень туманно описанные примеры мне не помогли.
     
  4. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.470
    Симпатии:
    27
    Эмм.. Ну смотри. У тебя получается форма, к-я передает параметры обработчику в виде index.php?parametr1=znachemie&parametr2=zhechenie и т.п. Сделай в форме отправки сообщения еще одно скрытое поле и значением его сделай имя сайта, на который нужно вернуться. Ну а потом просто Locate(эта переменная);
     
  5. GROM

    GROM Гость

    Как я понимаю "эта переменная" является адресом? Так значит, придется все адреса страниц переписать в Locate, да?
     
  6. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.470
    Симпатии:
    27
    Мм.. Locate - это просто единственный способ перехода на другую страницу который я помню в пхп=) Если ты делаешь как-то по другому - это не важно. Суть в том, что ты просто вместе с почтовыми данными передаешь еще и адрес страницы на которую нужно вернуться, а после выполнения скрипта на нее и переходишь. Все.
     
  7. GROM

    GROM Гость

    Дело всё в том, что мне собственно всё равно как будет осуществлён возврат на страницу, средствами PHP, JS или еще каким то возможным способом. Цель такова, чтоб после возврата со страницы "Б" на страницу "А" страница "А" обновлялась, что бы в форме не оставалось инфы, иначе пользователь капсит. Вот и всё. Если форма одна, то и проблем нет. Но в виду того, что почтовых форм с пол сотни, а потом возможно и ещё не меньше появится, то хочу сделать так, что бы не раздувать файлы. А как реализовать ума не приложу. Вторую неделю скитаюсь по инету, пытаюсь вникнуть в великое множество советов, но воз и ныне там. …) Может я не с тем скриптом связался, может, что по проще придумать. Он, почему-то не хочет работать в странице с формой, отрезает весь html код находящийся ниже обработчика. По этому его вынес в отдельный файл. Вот и появилась это проблема с перенаправлением.
     
  8. GROM

    GROM Гость

    С Locate ни чего не получается, то ли я что-то не то и не туда прописываю, толи еще что.
    Я тут подумал, а не получится ли связать почтовые формы с БД. Раз уж форм много и каждая должна отправлять сообщения на индивидуальный адрес, то может быть можно сделать так, чтоб форма была одна на всех. Т.е. вгружать форму в страницы из БД, а в БД создать список адресов, типа name1@name.ru, name2@name.ru и т.д. на которые форма должна отправлять сообщения и список страниц, на которые после обработки возвращаться надо. Единственное, что это для меня потёмки. Надеюсь, к пенсии сделаю. :)
     
  9. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.470
    Симпатии:
    27
    мм.. Чем дольше ты объсняешь, тем больше я запутываюсь. Блин, нужно что бы форма очищалась после того как сообщение отправлено? Пффф, все просто. Сделайте себе скрытое поле типа ismesssagesended. значение ему 0. После того как отправили сделайте его значение =1. А при загрузке страницы с формой проверяйте, if ismessagesended=1 then очистить все поля(на js делается 1м циклом) Надеюсь, я тебя не запутал=)
     
  10. GROM

    GROM Гость

    Всё, погрузился в полное уныние. Не черта не выходит. Если можно помочь за вознаграждение, то рассмотрю Ваше предложение. Сообщите мне о решении grom22@mail.ru
     
  11. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.470
    Симпатии:
    27
    отписал в личку.
     
Загрузка...

Поделиться этой страницей