С PHP знаком сравнительно недавно и возникла такая задача сделать форму которая в следствии своего заполнения будет отправлять данные на почту.
Форму сделал все отправляет но Увы приходят каракули. Заголовки письма приходят нормально а вот сам текст внутри письма кривой. Помоги решить проблему. Заранее благодарен!
Ниже привожу код файла.
Свернутый текст
Цитата |
<?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Оформление покупки в МотоСалоне Inter-Moto.ru</title> <?php function show_form() { if (empty($_POST['fam'])) @$_REQUEST['fam'] = 'введите Вашу фамилию'; if (empty($_POST['nam'])) @$_REQUEST['nam'] = 'введите Ваше имя'; if (empty($_POST['otch'])) @$_REQUEST['otch'] = 'введите Ваше отчество'; if (empty($_POST['tel'])) @$_REQUEST['tel'] = 'введите Ваш телефонный номер'; if (empty($_POST['mail'])) @$_REQUEST['mail'] = 'введите Ваш E-mail'; if (empty($_POST['art'])) @$_REQUEST['art'] = 'введите Артикул товара'; if (empty($_POST['com'])) @$_REQUEST['com'] = 'введите Примечание'; ?> <style type="text/css"> <!-- body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; } .style1 {color: #FF0000} --> </style></head> <script language="javascript"><!-- function noresize(){ self.resizeTo(510,800)} function setStyle(x,str) { if (document.getElementById(x).value == str) document.getElementById(x).value=""; } function setText(x,str) { if (document.getElementById(x).value == '') document.getElementById(x).value=str; } // --></script> <body onResize="noresize()" onLoad="noresize()"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td> </td> </tr> <tr> <td> <form id="blank" name="form1" method="post" action=""> <table width="100%" border="0" cellspacing="3" cellpadding="0"> <tr> <td align="right"><span class="style1">*</span> <strong>Фамилия: </strong></td> <td align="left"> <input name="fam" type="text" id="fam" size="30" maxlength="30" value="<?=@$_REQUEST['fam']?>" onfocus="setStyle(this.id,'введите Вашу фамилию')" onblur="setText(this.id,'введите Вашу фамилию')"/> </td> </tr> <tr> <td align="right"><span class="style1">*</span> <strong>Имя</strong>: </td> <td align="left"> <input name="nam" type="text" id="nam" size="30" maxlength="30" value="<?=@$_REQUEST['nam']?>" onfocus="setStyle(this.id,'введите Ваше имя')" onblur="setText(this.id,'введите Ваше имя')"/> </td> </tr> <tr> <td align="right"><span class="style1">*</span> <strong>Отчество</strong>: </td> <td align="left"> <input name="otch" type="text" id="otch" size="30" maxlength="30" value="<?=@$_REQUEST['otch']?>" onfocus="setStyle(this.id,'введите Ваше отчество')" onblur="setText(this.id,'введите Ваше отчество')"/> </td> </tr> <tr> <td align="right"><span class="style1">*</span> <strong>Контактный телефон: </strong></td> <td align="left"> <input name="tel" type="text" id="tel" size="30" maxlength="30" value="<?=@$_REQUEST['tel']?>" onfocus="setStyle(this.id,'введите Ваш телефонный номер')" onblur="setText(this.id,'введите Ваш телефонный номер')"/> </td> </tr> <tr> <td align="right"><strong>Контактный E-mail:</strong></td> <td align="left"> <input name="mail" type="text" id="mail" size="30" maxlength="30" value="<?=@$_REQUEST['mail']?>" onfocus="setStyle(this.id,'введите Ваш E-mail')" onblur="setText(this.id,'введите Ваш E-mail')"/> </td> </tr> <tr> <td align="right"><span class="style1">*</span> <strong>Артикул товара: </strong></td> <td align="left"> <input name="art" type="text" id="art" size="30" maxlength="30" value="<?=@$_REQUEST['art']?>" onfocus="setStyle(this.id,'введите Артикул товара')" onblur="setText(this.id,'введите Артикул товара')"/> </td> </tr> <tr> <td align="right"><strong>Примечание:</strong></td> <td align="left"><input name="com" type="text" id="com" size="30" maxlength="30" value="<?=@$_REQUEST['com']?>" onfocus="setStyle(this.id,'введите Примечание')" onblur="setText(this.id,'введите Примечание')"/> </td> </tr> <tr> <td align="right"> </td> <td align="left"><input type="submit" name="submit" value="Отправить Заказ!" /> <input type="reset" name="Reset" value="Очистить формы" /></td> </tr> </table> </form> </td> </tr> </table> <? } function toMail() { $mess = ' Фамилия отправителя: '.$_SESSION['tfam'].' Имя отправителя: '.$_SESSION['tnam'].' Отчество отправителя: '.$_SESSION['totch'].' Контактныи телефон: '.$_SESSION['ttel'].' Контактныи email: '.$_SESSION['tmail'].' Артикул товара: '.$_SESSION['tart'].' Текстовое сообщение: '.$_SESSION['tcom']; $to = 'manager@inter-moto.ru'; $from='Внимание: Новый заказ!'; mail($to, $_SESSION['tart'], $mess, "From:".$from); echo 'Спасибо! Ваш заказ отправлен. Менеджер свяжется с Вами в ближайшее время.'; echo '<script language="javascript"> alert("Ваше письмо отправлено менеджеру салона "ИнтерМото""); window.close(); </script>'; } function complete_mail() { $_POST['fam'] = substr(htmlspecialchars(trim($_POST['fam'])), 0, 100); $_POST['nam'] = substr(htmlspecialchars(trim($_POST['nam'])), 0, 100); $_POST['otch'] = substr(htmlspecialchars(trim($_POST['otch'])), 0, 100); $_POST['tel'] = substr(htmlspecialchars(trim($_POST['tel'])), 0, 50); $_POST['mail'] = substr(htmlspecialchars(trim($_POST['mail'])), 0, 100); $_POST['art'] = substr(htmlspecialchars(trim($_POST['art'])), 0, 100); $_POST['com'] = substr(htmlspecialchars(trim($_POST['com'])), 0, 1000000); if (empty($_POST['fam']) or $_POST['fam'] == 'введите Вашу фамилию') output_err(0); if (empty($_POST['nam']) or $_POST['nam'] == 'введите Ваше имя') output_err(1); if (empty($_POST['otch']) or $_POST['otch'] == 'введите Ваше отчество') output_err(2); if (empty($_POST['tel']) or $_POST['tel'] == 'введите Ваш телефонный номер') output_err(3); if (empty($_POST['art']) or $_POST['art'] == 'введите Артикул товара') output_err(4); ?> <form action="" method="post" name="form2"> <? echo '<b><center>'.'Подтверждение письма!!!'.'</center> </b>'; echo '<br><b>'.'Фамилия отправителя: '. '</b>'.$_POST['fam'].'</br>'; echo '<br><b>'.'Имя отправителя: '. '</b>'.$_POST['nam'].'</br>'; echo '<br><b>'.'Отчество отправителя: '. '</b>'.$_POST['otch'].'</br>'; echo '<br><b>'.'Контактный телефон: '. '</b>'.$_POST['tel'].'</br>'; echo '<br><b>'.'Контактныи email: '. '</b>'.$_POST['mail'].'</br>'; echo '<br><b>'.'Артикул товара: '. '</b>'.$_POST['art'].'</br>'; echo '<br><b>'.'Текст примечания: '. '</b>'.$_POST['com'].'</br>'; $_SESSION['tfam'] = $_POST['fam']; $_SESSION['tnam'] = $_POST['nam']; $_SESSION['totch'] = $_POST['otch']; $_SESSION['ttel'] = $_POST['tel']; $_SESSION['tmail'] = $_POST['mail']; $_SESSION['tart'] = $_POST['art']; $_SESSION['tcom'] = $_POST['com']; ?> <br> <input type="submit" value="Отправить Заказ!" name="sub" /> <input type="submit" value="Вернуться назад" onclick="javascript:history.go(-1);return false;" name="back" /> </form> <? exit; } function output_err($num) { $err[0] = 'ОШИБКА! Не заполнено поле "Фамилия"'; $err[1] = 'ОШИБКА! Не заполнено поле "Имя"'; $err[2] = 'ОШИБКА!Не заполнено поле "Отчество"'; $err[3] = 'ОШИБКА! Не введен контактный телефон'; $err[4] = 'ОШИБКА! Не введен Артикул товара'; echo '<p>'.$err[$num].'</p>'; show_form(); exit(); } if (!empty($_POST['sub'])) toMail(); if (!empty($_POST['submit'])) complete_mail(); else show_form(); ?> </body> </html> |
Спустя 52 минуты, 29 секунд (6.08.2009 - 17:05) Oyeme написал(а):
вместо $from
PHP |
$headers = "From: My site<noreply@my_site.com>\r\n"; |
Спустя 14 часов, 21 минута, 20 секунд (7.08.2009 - 07:26) Евгений (Yakuza) написал(а):
Спасибо ОГРОМНОЕ, такое человеческое! )
Все работает!
Все работает!