Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

Помогите с функцией mail() в php

Обсуждение темы Помогите с функцией mail() в php в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Привет всё! У меня есть проблема с функции mail(). Суть такая! Я создал свой обработчик для формы, по этому обработчику после заполнение полей ...


Закрытая тема
 
Опции темы
Старый 20.08.2015, 16:37   #1
Привет всё! У меня есть проблема с функции 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
 
Старый 20.08.2015, 16:37
Ссылки
Старый 21.08.2015, 16:11   #2
я думаю мож массив $UserZnania преобразовать в строку, implode(",", $array);
И как то все у тебя сложно) здесь же просто форма

Последний раз редактировалось Hispanic; 21.08.2015 в 16:13..
 
Старый 26.08.2015, 17:13   #3
Привет всем! Я решил свою проблему таким образам?
Вот код:
PHP код:
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";
         
$header.='Content-type: text/html; charset=utf-8';
         
$message="<p>Вам пишет: $famile $name </p> 
                   <p>Он знает языки: 
$znania[0] $znania[1] $znania[2] $znania[3]</p>
                   <p>Текст письма: .
$text</p>";
         
$Admin=mail($AdminMail,$title,$message,$header);
        if(
$Admin)
            return 
true;
        else
            return 
false;
    } 
Правда, не знаю, правильное это решения или нет!

Последний раз редактировалось mamon-88; 26.08.2015 в 17:18..
 
Старый 26.08.2015, 17:13
Закрытая тема


Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите скрипт c функцией как у marquee, и еще пару скриптов web_smile HTML, CSS, JavaScript 1 09.09.2009 22:00
проблема с функцией mail() Анастасия ASP, Perl, PHP и MySQL 6 18.06.2007 10:25
Форма НЕ отправляется на E-Mail!!! Помогите, люди умные! Prof HTML, CSS, JavaScript 12 21.01.2006 20:57
mail(); DiV ASP, Perl, PHP и MySQL 9 10.01.2006 03:20
php + mail vision HTML, CSS, JavaScript 1 04.04.2005 05:36


Текущее время: 17:56. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Тарифный план «Lite»
Место: 1000 Мб
Трафик: неограниченный
Панель управления
Заказать ТП «Lite»
Тарифный план «Normal»
Место: 2000 Мб
Трафик: неограниченный
Поддержка скриптов
Заказать ТП «Normal»
Тарифный план «Profy»
Место: 7000 Мб
Трафик: неограниченный
Поддержка скриптов
Заказать ТП «Profy»
Тарифный план «Места хватит!»
Место: 25 ГБ
Трафик: неограниченный
Поддержка SSI, ssh
Заказать ТП «Места хватит!»
Дизайнерский форум