Jump to content
  • 0

Jquery validation engine - process.php


orgi
 Share

Question

Добрый день!

На сайте используется jquery validation engine.

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

вот код скрипта:


<script src="js/jquery.validationEngine-en.js" type="text/javascript" ></script>
<script src="js/jquery.validationEngine.js" type="text/javascript"></script>
<!-- End of Js file for form validation popups -->
<!--***************************************************************-->
<script type="text/javascript">
<!--
$(document).ready(function () {

// For form validation
$("#formID").validationEngine({
success : function() {
$('#load').show();
var dataString = 'name='+ $("input#name").val() + '&email=' + $("input#email").val() + '&comments=' + $('textarea#comments').val();
$.ajax({
type: "POST",
url: "process.php",
data: dataString,
success: function(msg) {
$('#load').hide();
$('#message').html(msg)
.hide()
.fadeIn(1500, function() {
$('#message').append("");
});
$("input#name").val('Name');
$("input#email").val('E-mail');
$('textarea#comments').val('Message');
}
});
}
})
// End of form Validation

});
-->
</script>

вот код самой формы:


<form action="#" class="mail" id="formID">
<input name="name" type="text" value="Name" id="name" class="validate[required,exemptString[Name]]" onfocus="if(this.value=='Name')this.value='';" onblur="if(this.value=='')this.value='Name';" />
<input name="email" type="text" value="E-mail" id="email" class="validate[required,custom[email],exemptString[E-mail]]" onfocus="if(this.value=='E-mail')this.value='';" onblur="if(this.value=='')this.value='E-mail';" />
<textarea name="comments" cols="" rows="" class="validate[required,exemptString[Message]]" id="comments" onfocus="if(this.value=='Message')this.value='';" onblur="if(this.value=='')this.value='Message';">Message</textarea>
<input type="submit" name="submit" value="Отправить сообщение" class="more_button" />
<!-- Change the loading style after Submit -->
<span id="load" style="float:left; margin-top:30px; margin-left:10px; display:none; font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#CCCCCC;" ><img src="images/ajax-loader.gif" alt="loading" /> Пожалуйста подождите ...</span>
<!-- End of loading style -->
<!-- DIV where the successful form submit message displayed -->
<div id="message" style="display:none; float:left"></div>
<!-- End Of div -->
</form>

а вот как раз сам этот process.php


<?php

if(isset($_POST['email'])) {
if ( !check_email( trim($_POST['email']) )) {
echo 'Пожалуйста введите верный адрес <br />';
}
else send_email();
}
exit;
function check_email($emailAddress) {
if (preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $emailAddress)){
$emailArray = explode("@",$emailAddress);
if (checkdnsrr($emailArray[1])){
return true;
}
}
return false;
}
function send_email() {
$message = "\nOrganization: " . $_POST['organization'] .
"\nName: " . $_POST['name'] .
"\nEmail: " . $_POST['email'] .
"\nPhone: " . $_POST['phone'];

$message .= "\n\nBrowser Info: " . $_SERVER["HTTP_USER_AGENT"] .
"\nIP: " . $_SERVER["REMOTE_ADDR"] .

"\n\nDate: " . date("Y-m-d h:i:s");

$siteEmail = 'mymail@mail.ru';
$emailTitle = 'Сообщение с сайта';
$thankYouMessage = "Спасибо! Мы ответим вам в ближайщее время.";

if(! mail($siteEmail, $emailTitle, $message, 'From: ' . $_POST['name'] . ' <' . $_POST['email'] . '>'))
echo 'Mail can not sent.';
}
?>

а на почту приходит только

Organization:

Name: olgf

Email: email@mail.ru

Phone:

Browser Info: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/535.1

IP: 195.5.143.174

Date: 2011-09-08 02:17:10

Может какой-то строчки не хватате7 Помогите пожалуйста!

Edited by orgi
Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

нехватает $_POST['comments'], я не вижу чтоб оно к сообщению пришлёпывалось, собсна её вообще нет почему-то в файле process.php

P.s. :) Опередили

Edited by LunatiK
Link to comment
Share on other sites

  • 0

да спс помогло, написала вот так


function send_email() {
$message = "\nName: " . $_POST['name'] .
"\nEmail: " . $_POST['email'] .
"\nТекст: " . $_POST['comments'] .
"\nPhone: " . $_POST['phone'];

$message .= "\n\nBrowser Info: " . $_SERVER["HTTP_USER_AGENT"] .
"\nIP: " . $_SERVER["REMOTE_ADDR"] .

"\n\nDate: " . date("Y-m-d h:i:s");

вот только пока правила. наткр\нулась еще на один косяк.

если в форму забивать на руссскмо что нить, то приходит вот такое

Name: п?п?я?

Email: orgi_spb@mail.ru

п?п?п?я?я?: п?п?п?п?п?

Phone:

понимаю что проблема в кодировке. Сама страница contacts.php у меня в windows-1251 (если менять на utf-8, то весь текст нечитаем)

а вот process.php как раз на utf-8. если поменять на кириллица (windows)

то приходит так:

Name: Ольга Валерьевна

Email: orgi_spb@mail.ru

Текст: Ольга Валерьевна

Phone:

UPD: да и еще вообще не всякий раз отправляет когда на русском что-то пиешь

UPD: сломала вообще(( убрала это из process.php

if(isset($_POST['email'])) {
if ( !check_email( trim($_POST['email']) )) {
echo 'Пожалуйста введите верный адрес <br />';
}
else send_email();
}
exit;

а то оно появлялось

Edited by orgi
Link to comment
Share on other sites

  • 0

$headers .= "Content-type: text/html; charset=utf-8";

$siteEmail = 'mymail@mail.ru';

$emailTitle = 'Сообщение с сайта';

$thankYouMessage = "Спасибо! Мы ответим вам в ближайщее время.";

if(! mail($siteEmail, $emailTitle, $message, $headers, 'From: ' . $_POST['name'] . ' <' . $_POST['email'] . '>'))

echo 'Mail can not sent.';

так попробуйте

Link to comment
Share on other sites

  • 0

спасибо, правда не помогло. вообще не отправляет тпеерь((

<?php

if(isset($_POST['email'])) {
if ( !check_email( trim($_POST['email']) )) {
echo 'Пожалуйста введите верный адрес <br />';
}
else send_email();
}
exit;
function check_email($emailAddress) {
if (preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]
{2,4}\b/i', $emailAddress)){
$emailArray = explode("@",$emailAddress);
if (checkdnsrr($emailArray[1])){
return true;
}
}
return false;
}
function send_email() {
$headers .= "Content-type: text/html; charset=utf-8";
$siteEmail = 'orgi_spb@mail.ru';
$emailTitle = 'Сообщение с сайта';
$thankYouMessage = "Спасибо! Мы ответим вам в ближайщее время.";

if(! mail($siteEmail, $emailTitle, $message, $headers, 'From: ' . $_POST['name'] . ' <' . $_POST['email'] . '>'))
echo 'Mail can not sent.';

}
?>

может чего надо в скрипте еще поменять? я прям в панике((

Edited by orgi
Link to comment
Share on other sites

  • 0

не надо паниковать, тут просто пару строчек добавлено, от этого он не должен неправильно работать:


<?php

if(isset($_POST['email'])) {
if ( !check_email( trim($_POST['email']) )) {
echo 'Пожалуйста введите верный адрес <br />';
}
else send_email();
}
exit;
function check_email($emailAddress) {
if (preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]
{2,4}\b/i', $emailAddress)){
$emailArray = explode("@",$emailAddress);
if (checkdnsrr($emailArray[1])){
return true;
}
}
return false;
}
function send_email() {
$message = "\nOrganization: " . $_POST['organization'] .
"\nТекст: " . $_POST['comments'] .
"\nName: " . $_POST['name'] .
"\nEmail: " . $_POST['email'] .
"\nPhone: " . $_POST['phone'];

$message .= "\n\nBrowser Info: " . $_SERVER["HTTP_USER_AGENT"] .
"\nIP: " . $_SERVER["REMOTE_ADDR"] .

"\n\nDate: " . date("Y-m-d h:i:s");

$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=windows-1251 \r\n"; // тут меняете на нужную кодировку
$siteEmail = 'mymail@mail.ru';
$emailTitle = 'Сообщение с сайта';
$thankYouMessage = "Спасибо! Мы ответим вам в ближайщее время.";

if(! mail($siteEmail, $emailTitle, $message, $headers, 'From: ' . $_POST['name'] . ' <' . $_POST['email'] . '>'))
echo 'Mail can not sent.';
}
?>

Link to comment
Share on other sites

  • 0

попробовал у себя, все отправляет:


<?php
$comments = $_POST['comments'];
$name = $_POST['name'];
$email = $_POST['email'];
if(isset($_POST['email'])) {
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email'])) {
echo 'Пожалуйста введите верный адрес <br />';
}
else send_email();
}
function send_email() {
$message = "\nOrganization: " . $_POST['organization'] .
"\nТекст: " . $_POST['comments'] .
"\nName: " . $_POST['name'] .
"\nEmail: " . $_POST['email'] .
"\nPhone: " . $_POST['phone'];

$message .= "\n\nBrowser Info: " . $_SERVER["HTTP_USER_AGENT"] .
"\nIP: " . $_SERVER["REMOTE_ADDR"] .

"\n\nDate: " . date("Y-m-d h:i:s");

$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=windows-1251 \r\n"; // тут меняете на нужную кодировку
$siteEmail = 'mymail@mail.ru';
$emailTitle = 'Сообщение с сайта';
$thankYouMessage = "Спасибо! Мы ответим вам в ближайщее время.";

if(! mail($siteEmail, $emailTitle, $message, $headers, 'From: ' . $_POST['name'] . ' <' . $_POST['email'] . '>'))
echo 'Mail can not sent.';
}

?>


<form action="process.php" method="post">
<input name="name" type="text">
<input name="email" type="text">
<textarea name="comments"></textarea>
<input type="submit" name="submit" value="Отправить сообщение">
</form>
метод надо указывать в теге form.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy