Как обычно не могу разобраться... Есть HTML код: HTML: <form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form"> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <input type="text" class="form-control" name="name" required="required" placeholder="Имя"> </div> </div> <div class="col-sm-6"> <div class="form-group"> <input type="email" class="form-control" name="email" required="required" placeholder="Email адрес"> </div> </div> </div> <div class="row"> <div class="col-sm-12"> <div class="form-group"> <textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Сообщение"></textarea> </div> <div class="form-group"> <button type="submit" class="btn btn-danger btn-lg">Отправить</button> </div> </div> </div> </form> И PHP action: PHP: <?php header('Content-type: application/json'); $status = array( 'type'=>'success', 'message'=>'Email sent!' ); $name = @trim(stripslashes($_POST['name'])); $email = @trim(stripslashes($_POST['email'])); $subject = @trim(stripslashes($_POST['subject'])); $message = @trim(stripslashes($_POST['message'])); $email_from = $email; $email_to = '[email protected]'; $body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message; $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>'); echo json_encode($status); die; На почту приходит: Name: Email: Subject: Message: И не появляется не где ничего... а вроде должно, потому что так можно тыкать тыкать и заспамить) Помогите пожалуйста..... С чего я взял что, что-то должно появлятся, просто перед формой есть код: <div class="status alert alert-success" style="display: none"></div> Тоесть я как понял после успешной отправки что-то должно выскачить)
Сделал вот: PHP: <?// ----------------------------конфигурация-------------------------- //$adminemail="[email protected]"; // e-mail админа$date=date("d.m.y"); // число.месяц.год$time=date("H:i"); // часы:минуты:секунды$backurl="/index.html"; // На какую страничку переходит после отправки письма//---------------------------------------------------------------------- //// Принимаем данные с формы$name=$_POST['name'];$email=$_POST['email'];$time=$_POST['time'];$msg=$_POST['message'];// Проверяем валидность e-mailif (!preg_match("|^([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})|is",strtolower($email))){ echo"<center>Вернитесь <ahref='javascript:history.back(1)'><B>назад</B></a>. Выуказали неверные данные!"; }else{$msg="Имя: $nameE-mail: $emailСообщение: $msg";// Отправляем письмо админуmail("$adminemail", "$date $time Сообщениеот $name", "$msg");print "<script language='Javascript'><!--function reload() {location = \"$backurl\"}; setTimeout('reload()', 0);//--></script>$msg<p>Сообщение отправлено! Подождите, сейчас вы будете перенаправлены на главную страницу...</p>";exit;}?> Не работает. Вообще ничего не приходит
не нужно было брать ту кодяру. нужно почитать тему и прийти к выводу, что нужно заюзать phpmailer + там же примеры есть.
Я в php не особо шарю да и в html тоже не профессионал, поэтому разбираться это уйдет пол века) проще нету вариантов? --- Добавлено, 15 июл 2014 --- Ну почему не работает............. Я с аналогичного взял где работает код: PHP: <?php$haveError = false;if (isset($_POST['name'])) {$name = $_POST['name'];}if (isset($_POST['email'])) {$email = $_POST['email'];}if (isset($_POST['message'])) {$message = $_POST['message'];}$title= "Новый сообщение с ///";$emailadr = array('//@gmail.com');$address = implode(",", $emailadr);$mes = "Имя: $name \nEmail: $email \nСообщение: $message ";$send = mail ($address,$title,$mes,"Content-type:text/plain; charset = UTF-8\r\nFrom:$email");?><html><head><body><script>document.location.replace("http://.......ru/buy/done.html");</script></body></html>
PHP: <?php$sendto = "[email protected]";$usermail = $_POST['email'];$content = nl2br($_POST['msg']);// Формирование заголовка письма$subject = "Новое сообщение";$headers = "From: " . strip_tags($usermail) . "\r\n";$headers .= "Reply-To: ". strip_tags($usermail) . "\r\n";$headers .= "MIME-Version: 1.0\r\n";$headers .= "Content-Type: text/html;charset=utf-8 \r\n";// Формирование тела письма$msg = "<html><body style='font-family:Arial,sans-serif;'>";$msg .= "<h2 style='font-weight:bold;border-bottom:1px dotted #ccc;'>Новое сообщение</h2>\r\n";$msg .= "<p><strong>От кого:</strong> ".$usermail."</p>\r\n";$msg .= "<p><strong>Сообщение:</strong> ".$content."</p>\r\n";$msg .= "</body></html>";// отправка сообщенияif(@mail($sendto, $subject, $msg, $headers)) { echo "true";} else { echo "false";}?> HTML: <form id="contact" name="contact" action="#" method="post"> <label for="email">Ваш E-mail</label> <input type="email" id="email" name="email" class="txt"> <br> <label for="msg">Введите сообщение</label> <textarea id="msg" name="msg" class="txtarea"></textarea> <button id="send">Отправить E-mail</button> </form>
Поставил свой html код с твоим обработчиком вот изменения: HTML HTML: <form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form"> <div class="row"> <div class="col-sm-6"> <div class="form-group"> <input type="text" class="form-control" name="name" required="required" placeholder="Имя"> </div> </div> <div class="col-sm-6"> <div class="form-group"> <input type="email" class="form-control" name="email" required="required" placeholder="Email адрес"> </div> </div> </div> <div class="row"> <div class="col-sm-12"> <div class="form-group"> <textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Сообщение"></textarea> </div> <div class="form-group"> <button type="submit" class="btn btn-danger btn-lg">Отправить</button> </div> </div> </div> </form> PHP изменил так: PHP: <?php$sendto = "[email protected]";$name = $_POST['name'];$usermail = $_POST['email'];$content = nl2br($_POST['msg']);// Формирование заголовка письма$subject = "Новое сообщение";$headers = "From: " . strip_tags($usermail) . "\r\n";$headers .= "Reply-To: ". strip_tags($usermail) . "\r\n";$headers .= "MIME-Version: 1.0\r\n";$headers .= "Content-Type: text/html;charset=utf-8 \r\n";// Формирование тела письма$msg = "<html><body style='font-family:Arial,sans-serif;'>";$msg .= "<h2 style='font-weight:bold;border-bottom:1px dotted #ccc;'>Новое сообщение</h2>\r\n";$msg .= "<p><strong>Имя:</strong> ".$name."</p>\r\n";$msg .= "<p><strong>Email или телефон:</strong> ".$usermail."</p>\r\n";$msg .= "<p><strong>Сообщение:</strong> ".$content."</p>\r\n";$msg .= "</body></html>";// отправка сообщенияif(@mail($sendto, $subject, $msg, $headers)) { echo "true";} else { echo "false";}?> На странице сработал какой-то скрипт походу тот который я писал див вылез: <div class="status alert alert-success" style="display: none"></div> Но пришло письмо снова вида: Новое сообщение Имя: Email или телефон: Сообщение: пустое тоесть) Еще нашел JS скрипт связан чем-то Код: //Ajax contact var form = $('.contact-form'); form.submit(function () { $this = $(this); $.post($(this).attr('action'), function(data) { $this.prev().text(data.message).fadeIn().delay(3000).fadeOut(); },'json'); return false; });
PHP: <script type="text/javascript"> function validateEmail(email) { var reg = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return reg.test(email); } $(document).ready(function() { $(".modalbox").fancybox(); $("#contact").submit(function() { return false; }); $("#send").on("click", function(){ var emailval = $("#email").val(); var msgval = $("#msg").val(); var msglen = msgval.length; var mailvalid = validateEmail(emailval); if(mailvalid == false) { $("#email").addClass("error"); } else if(mailvalid == true){ $("#email").removeClass("error"); } if(msglen < 4) { $("#msg").addClass("error"); } else if(msglen >= 4){ $("#msg").removeClass("error"); } if(mailvalid == true && msglen >= 4) { // если обе проверки пройдены // сначала мы скрываем кнопку отправки $("#send").replaceWith("<em>отправка...</em>"); $.ajax({ type: 'POST', url: 'sendmessage.php', data: $("#contact").serialize(), success: function(data) { if(data == "true") { $("#contact").fadeOut("fast", function(){ $(this).before("<p><strong>Успешно! Ваше сообщение отправлено :)</strong></p>"); setTimeout("$.fancybox.close()", 1000); }); } } }); } }); });</script>
Вот http://phpformgen.sourceforge.net/new_demo/phpformgen/ хороший генератор форм, постоянно использую.
Попробуй выяснить на каком этапе ошибка. Есть несколько точек это в самом начале PHP скрипта, после фильтрации, до отправки почты и после получения. Поставь debug вывод того что получаешь, может у тебя еще до отправки письма в переменных уже пусто