На время проведения реконструкции сайт переведён в режим "ТОЛЬКО ЧТЕНИЕ" (Read only). Приносим свои извинения!
MaxHub
Полезности по Maxsite CMS

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

Компоненты, юниты и т.п. / 8 апреля 2016

Если кому вдруг понадобится, то вот код формы заказа, работает через smtp сервер (стандартный плагин в maxsite).

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

Форма вставлена через ушку в сайдбаре

<div class="online">
  <h3>Online заказ</h3>
  <form method="post" role="form">
    <div class="form-group">
      <label for="name">Имя:</label>
      <input type="text" class="form-control" name="name" required>
    </div>
    <div class="form-group">
      <label for="fam">Фамилия:</label>
      <input type="text" class="form-control" name="fam" required>
    </div>
    <div class="form-group">
      <label for="phone">Телефон:</label>
      <input type="text" class="form-control" name="phone" required>
    </div>
    <div class="form-group">
      <label for="city">Из какого Вы города:</label>
      <input type="text" class="form-control" name="city" required>
    </div>
    <div class="form-group">
      <label for="comment">Примечание:</label>
      <textarea class="form-control" rows="5" name="comment"></textarea>
    </div>
    <button type="submit" name="zakaz1" class="btn btn-default btn-block">Отправить</button>
  </form>
</div>

А вот код который ее запускает, я запилил его в main.php

if (isset($_POST['zakaz1'])) {
 $name = htmlspecialchars($_POST['name']);
 $fam = htmlspecialchars($_POST['fam']);  $ph
 $city = htmlspecialchars($_POST['city']);
 $comment = htmlspecialchars($_POST['comment']);
 $tmp = 'Имя: '.$name."\r\n";
    $tmp .= 'Фамилия: '.$fam."\r\n";
    $tmp .= 'Телефон: '.$phone."\r\n";
    $tmp .= 'Город: '.$city."\r\n";
    $tmp .= 'Примечание: '.$comment."\r\n";
 mso_mail(mso_get_option('admin_email'), 'Заказ с сайта '.getinfo('name_site'), $tmp);
}

Отправка идет на емайл, который указан в админке сайта.

Вдруг кому пригодится, единственный минус не работает на странице контакты, но я оттуда удалил форму обратной связи, за ненадобностью.

Ну, а с CSS сами разберетесь, я потихоньку использую bootstrap, так что основные классы у меня оттуда. В общем вот так.

Комментариев: 2
  1. Спасибо, Николай! Ваш код имеет право на существование и вполне рабочий, но как по мне, в php-коде не хватает проверок. Наверно я параноик, но всё, что приходит из веба и затем отправляется на почту, по-моему, должно проверяться и экранироваться в обязательном порядке (во избежание создания почтового гейта для спамеров).

    А чем вас не устроил плагин forms? Сейчас в нём вполне можно задавать вёрстку и те же самые поля сделать...

  2. А forms не получалось нормально привязать почему-то к smtp-mail, наверное из за отсутствия достаточных знаний по php, вот и был сделан альтернативный вариант