Форма заказа

Тема в разделе "PHP программирование", создана пользователем jurikserf, 18 апр 2009.

  1. jurikserf

    jurikserf Гость

    Недавно понадобилось прикрутить к форуму магазин. Не стал искать модуль, написал простенькое дополнение к сайту. Не делал корзины и прочих наворотов, просто под каждым товаром поставил кнопку "заказ" и при ее нажатии открывается форма заказа товара, что-то наподобие формы обратной связи.

    Прописал отдельный код формы и сделал страницу обработчика. Все как обычно. но появилась проблема. Сначала была проблема с кодировкой, ее я решил. Сейчас проблема в том. что приходит письмо с отображением только текста, переменные не прописываются. Даже не знаю в чем дело, защиту сервера на глобальные перемены прописал в виде исключения, все равно нет значения переменных в письме.

    Чтобы не быть голословным приведу точное содержание кода.

    Страница с формой заказа: (имя сайта отмечу как *******)

    Код (Text):
    <form action="http://www.tutor.*******.ru/send.php" method="post" name="f1">
    <table width="391" height="380" border="1">
    <tr>
    <td>Фамилия: </td>
    <td><input type="text" class="bginput" name="surname"></td>
    </tr>
    <tr>
    <td>Имя:</td>
    <td><input type="text" class="bginput" name="name"></td>
    </tr>
    <tr>
    <td>Отчество:</td>
    <td><input type="text" class="bginput" name="father"></td>
    </tr>
    <tr>
    <td>Страна     :</td>
    <td><input type="text" class="bginput" name="country"></td>
    </tr>
    <tr>
    <td>Область, край:</td>
    <td><input type="text" class="bginput" name="kray"></td>
    </tr>
    <tr>
    <td>Город: </td>
    <td><input type="text" class="bginput" name="town"></td>
    </tr>
    <tr>
    <td>Адрес (улица, дом...): </td>
    <td><input type="text" class="bginput" name="adres"></td>
    </tr>
    <tr>
    <td>Почтовый индекс:</td>
    <td><input type="text" class="bginput" name="index"></td>
    </tr>
    <tr>
    <td>e-mail:</td>
    <td><input type="text" class="bginput" name="email"></td>
    </tr>
    <tr>
    <td>Телефон: </td>
    <td><input type="text" class="bginput" name="phone"></td>
    </tr>
    </table>
    <p>
    <input type="submit" name="sub" value="Я подтверждаю заказ отправления на указанные данные"></form>
    После заполнения формы и нажатия кнопки подтверждения открывается страница, прописанная как результат удачного отправления. Письмо отправляется следующим обработчиком:

    Код (Text):
    <?php
    if (isset ($_POST['surname'])) {$surname=$_POST ['$surname'];}
    if (isset ($_POST['name'])) {$name=$_POST ['$name'];}
    if (isset ($_POST['father'])) {$father=$_POST ['$father'];}
    if (isset ($_POST['country'])) {$country=$_POST ['$country'];}
    if (isset ($_POST['kray'])) {$kray=$_POST ['$kray'];}
    if (isset ($_POST['town'])) {$town=$_POST ['$town'];}
    if (isset ($_POST['adres'])) {$adres=$_POST ['$adres'];}
    if (isset ($_POST['index'])) {$index=$_POST ['$index'];}
    if (isset ($_POST['email'])) {$email=$_POST ['$email'];}
    if (isset ($_POST['phone'])) {$phone=$_POST ['$phone'];}

    $address='tutorial@********.ru';
    $sub="Заказ продукта с моего сайта";

    $mes="Поступил новый заказ \n";
    $mes.="Фамилия: $surname\n ";
    $mes.="Имя:$name\n";
    $mes.="Отчество:$father\n";
    $mes.="Страна:$country\n Край:$kray\n ";
    $mes.="Город:$town\n Адрес:$adres\n ";
    $mes.="Почтовый индекс:$index\n ";
    $mes.="e-mail:$email\n ";
    $mes.="Номер телефона: $phone\n";

    $verify=mail($address,$sub,$mes,"Content-Type: text/plain; charset=utf-8");
    if($verify=='true')
    {
    $URL="http://www.tutor.********.ru/success.htm";
    header("location:$URL");
    exit;
    }
    else
    {
    $URL="http://www.tutor.a*******.ru/failure.htm";
    header("location:$URL");
    exit;
    }
    ?>

    Открываю почтовый ящик и вижу только текст. значения переменных отсутствуют:

    Код (Text):
    Поступил новый заказ
    Фамилия:
    Имя:
    Отчество:
    Страна:
    Край:
    Город:
    Адрес:
    Почтовый индекс:
    e-mail:
    Номер телефона:
    Не понимаю в чем проблема. Такое ощущение, что переменные не отсылаются обработчиком. Посмотрите кто может код и подскажите где ошибка и как это можно исправить.
     
  2. nws

    nws Гость

    1. var_dump($_POST);
    2. $_POST ['$surname']; -> $_POST['$surname'];(без пробела)
    3. if($verify=='true') -> if($verify)
    4. $submit_button = @$_POST['sub'];
    if (isset($submit_button))
    { код }
     
  3. Programmer_Hard

    Programmer_Hard Гость

    if (isset ($_POST['surname'])) {$surname=$_POST ['$surname'];}
    поменять на
    if (isset ($_POST['surname'])) {$surname=$_POST ['surname'];}
    ну и везде так...
    ЗЫ возможно я и не прав, просто праздник... и не вникал в код ))
     
  4. etc

    etc Гость

    закусывать надо :)
     
Загрузка...

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