Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 48 Ответов
  • 4146 Просмотров
*

Леон

  • Захожу иногда
  • 331
  • 4 / 0
Обработчик формы
« : 29.05.2014, 11:36:45 »
Здравствуйте, такой вопрос. Пишу формы обратной связи, заказов тарифов и прочего, смысл у всех будет одинаков разница в некоторых полях только. Создаю свой модуль html-код, кидаю в него код формы, размещаю в нужной мне позиции, стили подключаю в файле шаблона. Вопрос в том как быть с php файлом обработчиком, куда его нужно залить?
(решил отказаться от rsform)
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Обработчик формы
« Ответ #1 : 29.05.2014, 11:42:08 »
А не проще при этом свой модуль нарисовать, пусть он и отображает и обрабатывает отправку.
*

Леон

  • Захожу иногда
  • 331
  • 4 / 0
Re: Обработчик формы
« Ответ #2 : 29.05.2014, 11:51:19 »
а без модуля можно?, я пока еще не совсем разобрался с созданием модулей.
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Обработчик формы
« Ответ #3 : 29.05.2014, 11:56:44 »
О, это самый простой в разработке вид расширения :) Берем копию mod_custom, переименовываем, например, в mod_datasendform и правим, как душе угодно
Превосходная документация

А иначе - без php, на js - другого не вижу.
« Последнее редактирование: 29.05.2014, 12:17:28 от AlekVolsk »
*

Леон

  • Захожу иногда
  • 331
  • 4 / 0
Re: Обработчик формы
« Ответ #4 : 29.05.2014, 12:00:36 »
Ух, похоже придется пробовать создавать, спасибо)
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Обработчик формы
« Ответ #5 : 29.05.2014, 12:02:18 »
союз диалоговое окно + форма (на ява, пхп) - можно решить проблему Форма и диалоговое окно --->>>
Спойлер
[свернуть]

Создаем окно и в ней иклудим форму
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Обработчик формы
« Ответ #6 : 29.05.2014, 12:04:43 »
Да не за что, сам так делаю прямо сейчас :)

darkghost, предлагаемое решение - уже модификация шаблона, имхо, модуль - это проще для новичка: имейте в ввиду, что, судя по ответам, ТС не программист
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Обработчик формы
« Ответ #7 : 29.05.2014, 12:31:16 »
Обработчиком может быть тот же файл что и форму выводит. Нужно лишь сделать проверку на присутствие post данных.
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Обработчик формы
« Ответ #8 : 29.05.2014, 12:36:23 »
Нужно лишь сделать проверку на присутствие post данных.
А кто эти данные с post получать будет, когда произойдет сабмит формы?
Если только js, а речь идет о php
« Последнее редактирование: 29.05.2014, 12:43:45 от AlekVolsk »
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Обработчик формы
« Ответ #9 : 29.05.2014, 12:48:52 »
А кто эти данные с post получать будет, когда произойдет сабмит формы?
тот же файл что выводит и будет получать. В экшн формы прописываете текущую URL. а в файле сделать проверку
Код: php
if (isset($_POST)
{
 //обрабатываем форму
}
else
{
//выводим форму
}
интернет-блог: http://websiteprog.ru
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Обработчик формы
« Ответ #10 : 29.05.2014, 13:04:06 »
генератор формы PHP ---->>>
Спойлер
[свернуть]
Заполняем поля, получаем форму. Файлы копируем и переносим на сайт. Как видите, в нашее время можно найти все, вот только теперь осталось все это установить на свой сайт, но и эта не проблема, на указанном источнике все подробно расписано.
Часик тренировки, проб и ошибок и все получится
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Обработчик формы
« Ответ #11 : 29.05.2014, 13:11:15 »
И как Вы все это предлагаете запихать в html-custom? Повторюсь: ТС не программист, только админка, какой редактор это поддержит?
*

Леон

  • Захожу иногда
  • 331
  • 4 / 0
Re: Обработчик формы
« Ответ #12 : 29.05.2014, 13:12:26 »
ужс тут обсуждения)
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Обработчик формы
« Ответ #13 : 29.05.2014, 13:17:13 »
Да ну что Вы, нормальный рабочий процесс обсуждения решения, согласно ТЗ ТС + выводы из последующей на обсуждение реакции ТС :)

Ох, загнул, психолог фихофф...
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Обработчик формы
« Ответ #14 : 29.05.2014, 13:27:11 »
Имхо, нарисовать универсальный модуль все же проще, потом используй везде, где надо, и при реструктуризации сайта тоже гемора меньше.
Это всего лишь личное мнение, не навязываю, решать не мне.
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Обработчик формы
« Ответ #15 : 29.05.2014, 13:34:33 »
И как Вы все это предлагаете запихать в html-custom? Повторюсь: ТС не программист, только админка, какой редактор это поддержит?
---- а предлагаете создать модуль ))) Хоча и  личное мнение. Мы только предлагаем варианты, а оценивать - под силу это сделать или нет - это за ТС
А привентить на сайт это можно использовать модуль (для редактирования хтмл, пхп-кода), который затем встраивать в материал или еще куда-то
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Обработчик формы
« Ответ #16 : 29.05.2014, 13:41:04 »
Модуль создается 1 раз, а Вы предлагаете решение, при котором любая более-менее серьезная реструктуризация потянет за собой очередную правку кода. А если форма используется у ТС на нескольких однотипных сайтах? Или же на одном, но в нескольких местах (например, на главной и на странице тп)?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Обработчик формы
« Ответ #17 : 29.05.2014, 13:48:05 »
О че вы? У  ТС  уже есть форма и есть обработчик. Все что ему нужно это положить обработчик в какую нибудь папку и прописать путь к обработчику в action формы.
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Обработчик формы
« Ответ #18 : 29.05.2014, 13:53:25 »
Леон, "Все приемы хороши - выбирай на вкус" :)
*

Леон

  • Захожу иногда
  • 331
  • 4 / 0
Re: Обработчик формы
« Ответ #19 : 29.05.2014, 13:57:29 »
Если все же можно, то на первое время выберу, на сколько я понял тут указать путь <form action="form.php"> к обработчику) Когда осилю модули сделаю модуль) всем спасибо)
*

Леон

  • Захожу иногда
  • 331
  • 4 / 0
Re: Обработчик формы
« Ответ #20 : 30.05.2014, 22:04:07 »
Подскажите еще, сделал пока одну кнопку, с формой заказа, на сайте отображается нормально. При заполнении полей и нажатии заказать открывается файл экшн обработчик php и приходит письмо на почту с заказом. Вот ссылка на него: http://www.worldofsites.ru/templates/vt_marketing/files/obr01.php , если перейти по ссылке просто так мне сразу приходит письмо как-будто обработало запрос. Как закрыть доступ к этому файлу по прямой ссылке или какой-то другой путь нужен

вот код файла:
Код
<?php
$yourname = $_POST['yourname'];
$eml = $_POST['eml'];
$phn = $_POST['phn'];
$usluga = $_POST['usluga'];

$REMOTE_ADDR = $_POST['REMOTE_ADDR'];

$to = "kolya-nes@mail.ru";
$subject = "Мир сайтов";
$message = "Имя пославшего письмо: $yourname .\nЭлектронный адрес: $eml\nТелефон: $phn .\nУслуга: $usluga .\nIP-адрес: $_SERVER[REMOTE_ADDR]";

mail ($to,$subject,$message,"Content-type:text/plain; charset = utf-8") or print "Не могу отправить письмо !";
echo "<center><b>$yourname Вы заказали $usluga. <br><br> Мы свяжемся с вами в течение часа <br><br> ";
exit;
?>

*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Обработчик формы
« Ответ #21 : 30.05.2014, 22:11:02 »
Если просто перейти по ссылке на файл, то $_POST будет пуст, а где в коде проверки на наличие в посте данных?
*

Леон

  • Захожу иногда
  • 331
  • 4 / 0
Re: Обработчик формы
« Ответ #22 : 30.05.2014, 22:12:58 »
Там есть js, он проверяет если форма заполнена как надо отправляет все на обработчик, я код обработчика нашел в сети, в нем нужно еще одну проверку данных?
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Обработчик формы
« Ответ #23 : 30.05.2014, 22:14:42 »
Атто? И почему вообще к php-файлу имеется доступ извне по url? имхо. с безопасностью у Вас как-то не очень =)
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Обработчик формы
« Ответ #24 : 30.05.2014, 22:22:35 »
Давайте подумаем как можно сделать все чужими руками
Используем решение из Вывод компонента в качестве модуля
здесь вместо пункта 3 вставляем
Код: html4strict
<form id="sendme" action="<?php echo JRoute::_('index.php'); ?>" method="post" class="form-validate">
    <input name="jform[contact_name]" type="text" required="required" placeholder="Ваше имя" title="Ваше имя" value="">
    <input name="jform[contact_email]" type="email" required="required" placeholder="Email" title="E-mail" value="">
    <textarea name="jform[contact_message]" required="required" placeholder="Введите текст сообщения" rows="5" title="Текст сообщения"></textarea>
    <span> Получить копию & nbsp;</span>
    <input type="checkbox" name="jform[contact_email_copy]" value="1" title="Получить копию">
    <button id="contact-submit" type="submit"> Отправить</button>
    <input type="hidden" name="jform[contact_subject]" value="<?php echo JURI::getInstance()->toString(); ?>">
    <input type="hidden" value="com_contact" name="option">
    <input type="hidden" value="contact.submit" name="task">
    <input type="hidden" value="" name="return">
    <input type="hidden" value="1:contacts" name="id">
    <?php echo JHtml::_('form.token'); ?>
</form>
используем стандартный контроллер компонента com_contact
обратите внимание на <input type = "hidden" value = "1:contacts" name = "id" > здесь указано что письмо будет отправлено пользователю в контактах чей ид = 1 ожете заменить на другой не забыв указать см маил
*

Леон

  • Захожу иногда
  • 331
  • 4 / 0
Re: Обработчик формы
« Ответ #25 : 30.05.2014, 22:51:20 »
Fedor Vlasenko, спасибо конечно, но не совсем понял. Попробовал форма выводится. Но в моем случае я так понял нужно только убрать прямой доступ по url к обработчику и решатся все проблемы, посоветуете как это можно сделать?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Обработчик формы
« Ответ #26 : 30.05.2014, 23:22:59 »
1. отсылай данные на JURI::getInstance()->toString();
то есть на ту страницу где нахдишся. Здесь в модуле и обрабатываешь
2. Используя чужой контролер
3. Написав в плагин на событие  onAfterInitialise()
4. Переместив http://www.worldofsites.ru/templates/vt_marketing/files/obr01.php  в http://www.worldofsites.ru/templates/vt_marketing/obr01.php
вставив первую строку defined('_JEXEC') or die; и отсылать данные на http://твой_сайт/?tmpl=obr01
5. Записывать в куку какую то переменную при старте и отправлять вместе с ней
6. JHtml::_('form.token');
7. И так далее...
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Обработчик формы
« Ответ #27 : 30.05.2014, 23:28:35 »
Имхо, сразу после <?php вставить defined('_JEXEC') or die; достаточно
В папке /templates/vt_marketing/files/ должен быть файл index.html, скопировать из любой другой папки
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Обработчик формы
« Ответ #28 : 30.05.2014, 23:44:48 »
Цитировать
Имхо, сразу после <?php вставить defined('_JEXEC') or die; достаточно
И как же ты будешь работать
Суть данной конструкции если _JEXEC определена значит работаем иначе выход.
Используется когда файл при включается подключается  в другой где _JEXEC уже определена.
Если вы на это файл отправите форму, то получите die
*

Леон

  • Захожу иногда
  • 331
  • 4 / 0
Re: Обработчик формы
« Ответ #29 : 31.05.2014, 00:00:54 »
Сделал по 4-му варианту и еще почитал и сделал проверку:
Код
if (($yourname == "") or ($phn == "")) {
  header ('Location: http://www.worldofsites.ru/');
  exit();   
} else {
   
mail ($to,$subject,$message,"Content-type:text/plain; charset = utf-8") or print "Не могу отправить письмо !";
echo "<center><b>$yourname Вы заказали $usluga. <br><br> Мы свяжемся с вами в течение часа <br><br> ";

}
Если имя или номер телефона поля пустые, переходит на главную страницу. Пустые они могут быть только при одном варианте если напрямую открыть http://www.worldofsites.ru/?tmpl=obr01, в остальных вариантах перед отправкой на обработчик поля проверяет js.

только не вставлял первой строкой defined('_JEXEC') or die;, с этим почему-то не работает вобще
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка 1054 Unknown column 'created_by' in 'field list' VirtueMart

Автор Evgen Kulibin

Ответов: 3
Просмотров: 794
Последний ответ 26.02.2023, 01:56:42
от lakshmi
Ошибка 1054 - обновление Joomla 2.5 на 3.4

Автор arevuare

Ответов: 1
Просмотров: 565
Последний ответ 25.09.2019, 14:02:14
от ChaosHead
Как убрать текст на главной?

Автор m03mug08

Ответов: 5
Просмотров: 1065
Последний ответ 07.09.2018, 14:52:24
от Konst
Ошибка 1054 - Unknown column 'u.name' in 'order clause

Автор Shademy

Ответов: 27
Просмотров: 8677
Последний ответ 30.03.2018, 13:41:20
от Roki37
Проблема отображения модулей на шаблоне proto

Автор Artefact

Ответов: 10
Просмотров: 976
Последний ответ 17.08.2017, 18:29:40
от Artefact