+ Ответить в теме
Показано с 1 по 3 из 3

Тема: почтовая форма

  1. #1

    почтовая форма

    Всем привет. Столкнулся проблемой и немогу понять в чем ее суть.
    Последний раз редактировалось Nicolai; 08.11.2013 в 08:07.

  2. #2
    пишите в личку

  3. #3
    Новичок wieppir на пути к лучшему Аватар для wieppir
    Регистрация
    03.08.2014
    Сообщений
    1
    Записей в дневнике
    2
    Подскажите если в каждом поле выдает вот так что это <?=$_SESSION['post']['name']?> <?=$_SESSION['post']['email']?> <?=$_SESSION['post']['message']?>

    Code
    Index.php
    session_name("fancyform");
    session_start();
    $_SESSION['n1'] = rand(1,20); /* сгенерировать первую цифру */
    $_SESSION['n2'] = rand(1,20); /* потом вторую */
    $_SESSION['expect'] = $_SESSION['n1']+$_SESSION['n2']; /* результат сложения */
    /* Код ниже используется, если JS выключен */
    $str='';
    if($_SESSION['errStr']) /* если submit.php выдает строку с ошибкой в массиве session */

    {
    $str='<div class="error">'.$_SESSION['errStr'].'</div>';
    unset($_SESSION['errStr']); /* будет показан только 1 раз */
    }
    $success='';
    if($_SESSION['sent'])
    {
    $success='<h1>Thank you!</h1>'; /* Сообщение об успехе */
    $css='<style type="text/css">#contact-form{display:none;}</style>';
    /* специальное правило CSS, которое прячет форму */
    unset($_SESSION['sent']);
    }
    Code
    Submit.php
    require "phpmailer/class.phpmailer.php";
    session_name("fancyform"); /* начинаем сессию */
    session_start();
    foreach($_POST as $k=>$v)
    {
    /* если magic_quotes включены, очистить массив post */
    if(ini_get('magic_quotes_gpc'))
    $_POST[$k]=stripslashes($_POST[$k]);
    $_POST[$k]=htmlspecialchars(strip_tags($_POST[$k]));
    /* удалить special chars */
    }
    $err = array();
    /* некоторые проверки на ошибки */
    if(!checkLen('name'))
    $err[]='The name field is too short or empty!';
    if(!checkLen('email'))
    $err[]='The email field is too short or empty!';
    else if(!checkEmail($_POST['email']))
    $err[]='Your email is not valid!';
    if(!checkLen('subject'))
    $err[]='You have not selected a subject!';
    if(!checkLen('message'))
    $err[]='The message field is too short or empty!';
    /* Сравнить полученный результат captcha с результатом в массиве session */
    if((int)$_POST['captcha'] != $_SESSION['expect'])

    $err[]='The captcha code is wrong!';
    /* Если ошибки есть */
    if(count($err))
    {
    /* Если форма обработана с помощью AJAX */
    if($_POST['ajax'])
    {
    echo '-1';
    }
    /* в противном случае заполнить массив SESSION и редирект обратно на форму */
    else if($_SERVER['HTTP_REFERER'])
    {
    $_SESSION['errStr'] = implode('<br />',$err);
    $_SESSION['post']=$_POST;
    header('Location: '.$_SERVER['HTTP_REFERER']);
    }
    exit;
    }
    /* тело письма */
    $msg=
    'Name: '.$_POST['name'].'<br />
    Email: '.$_POST['email'].'<br />
    IP: '.$_SERVER['REMOTE_ADDR'].'<br /><br />
    Message:<br /><br />
    '.nl2br($_POST['message']).'
    ';
    $mail = new PHPMailer(); /* используя PHPMailer */
    $mail->IsMail();
    $mail->AddReplyTo($_POST['email'], $_POST['name']);
    $mail->AddAddress($emailAddress);
    $mail->SetFrom($_POST['email'], $_POST['name']);
    $mail->Subject = "A new ".mb_strtolower($_POST['subject'])." from ".$_POST['name']." | contact form feedback";
    $mail->MsgHTML($msg);
    $mail->Send();
    unset($_SESSION['post']);
    /* Форма удачно была отправлена */
    if($_POST['ajax'])

    {
    echo '1';
    }
    else
    {
    $_SESSION['sent']=1;
    if($_SERVER['HTTP_REFERER'])
    header('Location: '.$_SERVER['HTTP_REFERER']);
    exit;
    }
    /* дополнительные функции */
    function checkLen($str,$len=2)
    {

    return isset($_POST[$str]) && mb_strlen(strip_tags($_POST[$str]),"utf-8") > $len;
    }
    function checkEmail($str)
    {
    return preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $str);
    }
    ?>
    Последний раз редактировалось wieppir; 31.08.2014 в 12:19.

+ Ответить в теме

Похожие темы

  1. Почтовая рассылка -как верстать?
    от marina sp в разделе HTML
    Ответов: 7
    Последнее сообщение: 06.07.2015, 16:49
  2. Форма
    от Andrey1812 в разделе HTML
    Ответов: 2
    Последнее сообщение: 23.12.2012, 14:35
  3. Почтовая гиперссылка
    от tashka-tashka в разделе HTML
    Ответов: 3
    Последнее сообщение: 09.11.2010, 10:15
  4. Почтовая программа (оффлайн)
    от Licoric в разделе Разное
    Ответов: 1
    Последнее сообщение: 04.06.2010, 07:45
  5. Ответов: 4
    Последнее сообщение: 16.07.2009, 18:01

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения