Jump to content
  • 0

Помогите с формой отправки сообщений


bev11321
 Share

Question

Проблемы с формой. 

<form id="ajax-contact-form" action="">						<input type="text" name="name" value="" placeholder="Ваше имя" />						<input type="text" name="subject" value="" placeholder="Ваш телефон" />						<input type="text" name="email" value="" placeholder="Ваш Email" />						<textarea name="message" id="message" placeholder="Текст сообщения"></textarea>						<div class="clear"></div>						<input type="reset" class="contact_btn" value="Очистить форму" />						<input type="submit" class="contact_btn" value="Отправить" />						<div class="clear"></div>					</form>

Письма приходят нормально, проблема только в имени. Если пишешь ИМЯ на английском раскладе, то нормально (Vasya), а если пишешь на русском (Вася), то кракозябры, типа (Евгений). Не могу понять, что не так, и где можно прописать откуда письмо пришло (адрес сайта)?

Link to comment
Share on other sites

23 answers to this question

Recommended Posts

  • 0
В этом же файле index.html есть такой код:

 



<script type="text/javascript">
$(document).ready(function(){
$("#ajax-contact-form").submit(function() {
var str = $(this).serialize();
$.ajax({
type: "POST",
url: "contact_form/contact_process.php",
data: str,
success: function(msg) {
// Message Sent - Show the 'Thank You' message and hide the form
if(msg == 'OK') {
result = '<div class="notification_ok">Ваше сообщение было отправлено. СПАСИБО!</div>';
$("#fields").hide();
} else {
result = msg;
}
$('#note').html(result);
}
});
return false;
});
});
</script>

Edited by bev11321
Link to comment
Share on other sites

  • 0

Да, конечно...

<?phpinclude dirname(dirname(__FILE__)).'/mail.php';error_reporting (E_ALL ^ E_NOTICE);$post = (!empty($_POST)) ? true : false;if($post){include 'email_validation.php';$name = stripslashes($_POST['name']);$email = trim($_POST['email']);$subject = stripslashes($_POST['subject']);$message = stripslashes($_POST['message']);$error = '';// Check nameif(!$name){$error .= 'Please enter your name.<br />';}// Check emailif(!$email){$error .= 'Please enter an e-mail address.<br />';}if($email && !ValidateEmail($email)){$error .= 'Please enter a valid e-mail address.<br />';}// Check message (length)if(!$message || strlen($message) < 10){$error .= "Please enter your message. It should have at least 10 characters.<br />";}if(!$error){$mail = mail(CONTACT_FORM, $subject, $message,     "From: ".$name." <".$email.">\r\n"    ."Reply-To: ".$email."\r\n"    ."X-Mailer: PHP/" . phpversion());if($mail){echo 'OK';}}else{echo '<div class="notification_error">'.$error.'</div>';}}?>
Link to comment
Share on other sites

  • 0

Что бы отображалось с какой сайта пришло письмо добавьте в строчку "From: ".$name." <".$email.">\r\n"

"From: ".$name." <".$email.">\r\n"."From site: ".$_SERVER['SERVER_NAME']."\r\n".

А вот с кодировкой пока не разобрался.

Link to comment
Share on other sites

  • 0

Вы имеете ввиду так: то не работает

{
$mail = mail(CONTACT_FORM, $subject, $message,
     "From: ".$name." <".$email.">\r\n"
     "From site: ".$_SERVER['SERVER_NAME']."\r\n"
    ."Reply-To: ".$email."\r\n"
    ."X-Mailer: PHP/" . phpversion());
Edited by bev11321
Link to comment
Share on other sites

  • 0

Я просто код так выложил здесь, а в файле стоит...теперь вообще не отправляется форма...


Спасибо, понял, вторую точку после "From site: ".$_SERVER['SERVER_NAME']."\r\n" ставить не нужно было. Но приходит письмо с адресом домена, а не с "поддомена" откуда отправлено было...например:http://www.мой сайт.ru/поддомен/


В этой строке можно заменить?

 ."Reply-To: ".$email."\r\n"

на

."E-mail: ".$email."\r\n"

Link to comment
Share on other sites

  • 0

Ознакомился и как понял:

 

Используйте base64_encode и указывайте кодировку.
Многие почтовые клиенты не корректно обрабатывают utf-8 (которая чаще всего используется в php скриптах). Я бы рекомендовал для этого Win-1251.
Чтобы перекодировать текст используйте iconv.

 

Спасибо за ссылку, но для меня это трудновато...прописывать кодировку другую...

Edited by bev11321
Link to comment
Share on other sites

  • 0

попробуйте взять от сюда код, подправьте немного под себя, чтобы ваши данные отправлялись

http://konservs.com/it/web/%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0-%D0%BF%D0%BE%D1%87%D1%82%D1%8B-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-php-mail-15

Link to comment
Share on other sites

  • 0

Вот нашел где-то код:

 

$mail = mail("mail@mail.com", $subject, $message,

 

"From: ".$name." <".$email."> "

."Reply-To: ".$email." "

." X-Mailer: PHP/" . phpversion()

."\nContent-Type: text/plain; charset=utf-8"

);

 

Пробовал подправить под себя...не отправляет

 

Я не больно в этом волоку...

Edited by bev11321
Link to comment
Share on other sites

  • 0

как-то так:

	$message .= 'С сайта '.$_SERVER['HTTP_HOST'].'\r\n';	$headers  = 'MIME-Version: 1.0' . "\r\n";	$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";	$headers .= 'To: <'.$email.'>' . "\r\n";	$headers .= 'From: <order@'.$_SERVER['HTTP_HOST'].'>' . "\r\n";	if(!$error) {		$mail = mail(CONTACT_FORM, $subject, $message, $headers);		if($mail) {			echo 'OK';		}	}

хотя тут не совсем понятно какую роль играет вот это: CONTACT_FORM в ф-ции mail...

Link to comment
Share on other sites

  • 0

а, ну так:

    $message .= 'С сайта '.$_SERVER['HTTP_HOST'].'<br>';    $message .= $name.'<br>';    $headers = 'MIME-Version: 1.0' . "\r\n";    $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";    $headers .= 'To: <'.$email.'>' . "\r\n";    $headers .= 'From: <order@'.$_SERVER['HTTP_HOST'].'>' . "\r\n";    if(!$error) {        $mail = mail(CONTACT_FORM, $subject, $message, $headers);        if($mail) {            echo 'OK';        }    }
Link to comment
Share on other sites

  • 0

приветС сайта мойсайт.ru
сергей


{ $message .= 'С сайта '.$_SERVER['HTTP_HOST'].'<br>';    $message .= $name.'<br>';    $headers = 'MIME-Version: 1.0' . "\r\n";    $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";    $headers .= 'To: <'.$email.'>' . "\r\n";    $headers .= 'From: <order@'.$_SERVER['HTTP_HOST'].'>' . "\r\n";    if(!$error) {        $mail = mail(CONTACT_FORM, $subject, $message, $headers);        if($mail) {            echo 'OK';        }    }}

С этим кодом наверное и останусь...хватит людей мучить... :rolleyes: Спасибо большое!

Edited by bev11321
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