Помощник
|
почтовая форма |
Nicolai_hb
|
Сообщение
#1
|
||
|
|
||
|
|||
Degradator |
9.11.2013, 12:56;
Ответить: Degradator
Сообщение
#2
|
|
пишите в личку
|
|
|
wieppir |
31.8.2014, 13:15;
Ответить: wieppir
Сообщение
#3
|
|
Подскажите если в каждом поле выдает вот так что это <?=$_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); } ?> |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Форма регистрации вордпресс. Привязка ссылок | 0 | plscomeback | 5600 | 29.3.2016, 19:29 автор: -plscomeback- |
|
Калькулятор + форма заказа | 0 | adsprosto | 7308 | 11.4.2015, 0:30 автор: -adsprosto- |
|
Есть форма, как отправить с нее инфу на почту? | 0 | LipGrad | 2775 | 13.4.2014, 12:20 автор: -LipGrad- |
|
Ajax форма | 0 | jollar | 1077 | 19.1.2014, 14:36 автор: jollar |
|
Форма расчета с результатом на другой странице | 6 | kreolmage | 3636 | 12.5.2013, 23:33 автор: -fanaticc- |
Текстовая версия | Сейчас: 19.4.2024, 6:28 |