[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Отправка на Email
Евгений (Yakuza)
Добрый день Уважаемые посетители форума.
С 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>&nbsp;</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">&nbsp;</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";
    
$headers .= "Reply-To: info@my_site.com\r\n";
    
$headers .= "Return-Path: info@my_site.com\r\n";
    
$headers .= "X-Mailer: Drupal\n";
    
$headers .= 'MIME-Version: 1.0' "\n";
    
$headers .= 'Content-type: text/html; charset=UTF-8' "\r\n";


Спустя 14 часов, 21 минута, 20 секунд (7.08.2009 - 07:26) Евгений (Yakuza) написал(а):
Спасибо ОГРОМНОЕ, такое человеческое! )
Все работает!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.