Привет всё! У меня есть проблема с функции mail(). Суть такая! Я создал свой обработчик для формы, по этому обработчику после заполнение полей должно приходить письмо на почту. Письмо приходит, но в раздел «Укажите что вы знаете» я указываю два значение, а приходит на почту только одно. Почему так?
Вот код формы:
PHP код:
<table border="0" width="600" align="center" cellpadding="0" cellspacing="0">
<? require_once "PHPclass/mail/ObrabotchikForm.php";
require_once 'PHPclass/mail/mod_Messages.php';?>
<form action="" method="post">
<col width="150">
<tr>
<td >
<fieldset><legend>Введите свой личные данные</legend>
<p>
<input type="text" name="name" placeholder="имя" size="25">
<input type="text" name="famele" placeholder="фамилия" size="25">
</p>
<p><b>Укажите что вы знаете:</b></p>
<input type="checkbox" name="znaniya[]" value="HTML">HTML</br>
<input type="checkbox" name="znaniya[]" value="CSS">CSS</br>
<input type="checkbox" name="znaniya[]" value="PHP">PHP</br>
<input type="checkbox" name="znaniya[]" value="JavaScript">JavaScript</br>
</fieldset>
</td>
</tr>
<tr>
<td>
<fieldset><legend>Новое сообщение</legend>
<p><b>Тема сообщение:</b></p>
<select name="tema">
<option name="tema" value="NoTema" selected>Нет темы...</option>
<option name="tema" value="lichnot">Личное</option>
<option name="tema" value="predlozenia">Предложение</option>
<option name="tema" value="prozba">Просьжба</option>
</select>
<p><b>Введите текст сообщение:</b></p>
<textarea name="textUser" cols="50" rows="10"></textarea>
<p><b>Отправить копию письма на ваш E-mail:</b></p>
<input type="radio" name="closeMail" value="yes">Да
<p><b>Введите ваш E-mail:</b></p>
<input type="E-mail" name="UserEmail" size="25" >
<p><input type="submit" name="bottom_user" value="отправить письмо"></p>
</fieldset>
</td>
</tr>
<form>
</table>
Вот код обработчика:
PHP код:
error_reporting(E_ALL &~E_NOTICE);
require_once 'UserErrors.php';
require_once 'UserValidator.php';
require_once 'otpravkaMail.php';
class ObrabotchikForm{
private $UserErrors;
private $UserValidator;
private $name;
private $famele;
private $znaniya;
private $tema;
private $textUser;
private $closeMail;
private $UserEmail;
private $AdminEmail;
private $otpravkaMail;
public $UserMessages=array();
function __construct(){
$this->UserErrors=new UserErrors();
$this->UserValidator=new UserValidator();
$this->name=$_POST['name'];
$this->famele=$_POST['famele'];
$this->znaniya=$_POST['znaniya'];
$this->tema=$_POST['tema'];
$this->textUser=$_POST['textUser'];
$this->closeMail=$_POST['closeMail'];
$this->UserEmail=$_POST['UserEmail'];
$this->AdminEmail='test@test';
$this->otpravkaMail=new otpravkaMaul();
$this->Obrabochik();
}
public function UserZnaniya(){
$UserZnaniya=$this->znaniya;
foreach($UserZnaniya as $one){
echo "$one ";
}
}
private function Obrabochik(){
if($this->name==''){
$this->UserMessages[]=$this->UserErrors->Errors('Error_name');
}else{
if(!$this->UserValidator->NameFamili($this->name))
$this->UserMessages[]=$this->UserErrors->Errors('Error_NameValid');
}
if($this->famele==''){
$this->UserMessages[]=$this->UserErrors->Errors('Error_famele');
}else{
if(!$this->UserValidator->NameFamili($this->famele))
$this->UserMessages[]=$this->UserErrors->Errors('Error_fameleValid');
}
if($this->tema=="NoTema")
$this->UserMessages[]=$this->UserErrors->Errors('Error_tema');
if($this->textUser==''){
$this->UserMessages[]=$this->UserErrors->Errors('Error_UserText');
}
if($this->UserEmail==''){
$this->UserMessages[]=$this->UserErrors->Errors('Error_UserEmail');
return false;
}else
if(!$this->UserValidator->UserEmalValid($this->UserEmail)){
$this->UserMessages[]=$this->UserErrors->Errors('Error_UserEmailValid');
return false;
}
if($this->closeMail=="yes")
$this->UserEmail();
else
$this->AdminEmail();
}
private function UserEmail(){
if(empty($this->UserMessages)){
$this->AdminEmail();
$this->UserMessages[]=$this->UserErrors->Errors('CloneEmail');
}else
return false;
}
private function AdminEmail(){
if(empty($this->UserMessages)){
if($this->otpravkaMail->otpravkaAdmin($this->AdminEmail,$this->UserEmail,$this->tema,$this->znaniya,$this->name,$this->famele,$this->textUser)==true)
$this->UserMessages[]=$this->UserErrors->Errors('AdminEmail');
else
$this->UserMessages[]=$this->UserErrors->Errors('Error_AdminEmail');
}
}
}
if($_SERVER['REQUEST_METHOD']=='POST')
$mail=new ObrabotchikForm();
Вот код, который отплавает письмо на почту. У меня письмо приходить в папку !sendmail в денвере
PHP код:
require_once 'UserErrors.php';
class otpravkaMaul {
private function UserZnania($znania){
$UserZnania=array();
$i=0;
foreach($znania as $value){
$UserZnania[$i]=$value;
$i++;
}
return $UserZnania;
}
private function UserTema($tema){
switch($tema){
case 'lichnot':
return 'Личное';
break;
case 'predlozenia':
return 'Предложение';
case 'prozba':
return 'Просьжба';
break;
}
}
public function otpravkaAdmin($AdminMail,$UserMail,$tema,$znania,$name,$famile,$text){
$title='Тема письма: '.$this->UserTema($tema);
$header.='From:'.$AdminMail."\r\n";
$header.='Reply-To: '.$UserMail."\r\n";
foreach($this->UserZnania($znania) as $value){
$header.='Content-type: text/html; charset=utf-8';
$message="<p>Вам пишет: $famile $name </p>
<p>Он знает: $value </p>
<p>Текст письма: .$text</p>";}
$Admin=mail($AdminMail,$title,$message,$header);
if($Admin)
return true;
else
return false;
}
}
Вот скриншоды формы и письма
скрин формы.jpg
скри письма.png