За последние 24 часа нас посетили 17507 программистов и 1310 роботов. Сейчас ищут 1135 программистов ...

Помогите советом

Тема в разделе "Работа с почтой", создана пользователем series9, 8 авг 2013.

  1. series9

    series9 Новичок

    С нами с:
    8 авг 2013
    Сообщения:
    5
    Симпатии:
    0
    Есть форма на странице index.ru :
    <form action="http://мой сайт/options.php" method="post">
    <input placeholder="Имя*" name="fio" size="40" type="text"><br>
    <input placeholder="Телефон*" name="tlf" size="40" type="text"><br>
    <input placeholder="Email*" name="email" size="40" type="text"><br>
    <textarea placeholder="" name="money" cols="40" rows="10" title=""></textarea><br>
    <center><u>
    <input onclick="location.href='options.php?from='+location.href" value="Отправить" name="submit" type="submit">
    </u></center>

    <div class="wpcf7-response-output wpcf7-display-none"></div>
    </form></div>


    <?php

    session_start();
    if (!isset($_SESSION['username'])) {
    $_SESSION['username']=" ";

    }
    else
    {
    echo $_SESSION['username'];
    session_unregister('username');

    session_destroy();
    echo $_SESSION['username'];
    }

    ?>
    И есть обработчик options.php :
    <?php
    if (isset($_POST['fio'])) {$fio = $_POST['fio']; if ($fio == '') {unset($fio);}}
    if (isset($_POST['tlf'])) {$tlf = $_POST['tlf']; if ($tlf == '') {unset($tlf);}}
    if (isset($_POST['email'])) {$email = $_POST['email']; if ($email == '') {unset($email);}}
    if (isset($_POST['money'])) {$money = $_POST['money']; if ($money == '') {unset($money);}}

    if (isset($fio) && isset($email) && isset($money) && isset($tlf))
    {
    $fio = htmlspecialchars(trim($fio));
    $email = htmlspecialchars(trim($email));
    $money = htmlspecialchars(trim($money));
    $tlf = htmlspecialchars(trim($tlf));
    $address = "мыло@inbox.ru";
    $sub = "Сообщение с сайта ";
    $mes = "Закащик: $fio \nОставил такой E-mail: $email \n Оставил телефон: $tlf \n Текст заказа: $money" ;
    $verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = UTF-8\r\nFrom:$email");
    if ($verify == 'true')

    {
    session_start();

    session_unregister('username');
    session_destroy();
    session_start();

    $_SESSION['username'] = "Сообщение отправлено";
    }
    else
    {
    session_start();

    session_unregister('username');
    session_destroy();
    session_start();

    $_SESSION['username'] = "Сообщение не отправлено !";

    }




    }
    else
    {
    session_start();

    session_unregister('username');
    session_destroy();
    session_start();

    $_SESSION['username'] = "Форма заполнена неверно!";

    }

    header("location: ".$_GET["from"]);
    ?>
    Все это дело работает ровно через раз : Пищит то сообщение отправлено, то не отправлено.
    Хотя во всех случаях сообщение приходит на почту.
    Подскочите, что я сделал не так..
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А зачем такое количество session_start(); session_unregister('username'); session_destroy();?
    Перечитай как пользоваться сессиями.

    Что это? if ($verify == 'true')
    mail возвращает булевое значение а не строку.
    Проверяй var_dump-ом что у тебя в $verify когда пишет не отправлено.