Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Обработка формы

Ответить
Настройки темы
Обработка формы

Аватара для ][alter

Старожил


Сообщения: 195
Благодарности: 15

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: ][alter
Дата: 06-12-2007
Доброе время суток.

У меня возникла небольшая проблемка при обработке письма и отправке нужному адресату. Дело в том что, для корректной обработке письма требуется указать поле «recipient» (получатель) их числа администраторы, пользователи и т.д. После удаления данного поля из шаблона формы(а оно не как не вписывается в общий дизайн сайта), возникает ошибка «E-Mail: <> not valid». Как я понимаю, не указан адрес получателя. Вот кусок кода отвечающий за данную операцию:



PHP код: Выделить весь код

if (isset($_POST['send'])) {

    
$stop "";

    if (
$is_logged)
    {
        
$name  $member_id['name'];
        
$email $member_id['email'];
    } else {

        
$name $db->safesql(strip_tags($_POST['name']));
        
$email $db->safesql(strip_tags($_POST['email']));
$db->query("SELECT name from " USERPREFIX "_users where LOWER(name) = '".strtolower($name)."' OR LOWER(email) = '".strtolower($email)."'");

        if (
$db->num_rows() > 0) {
             
$stop $lang['news_err_7'];
         }

        
$name strip_tags(stripslashes($_POST['name']));
        
$email strip_tags(stripslashes($_POST['email']));


    }

    
$subject strip_tags(stripslashes($_POST['subject']));
    
$message strip_tags(stripslashes($_POST['message']));
    
$recip intval($_POST['recip']);


 function 
check_email($value) {
  return 
eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$"$value);
 }

 if (empty(
$name)) {
   
$stop .= $lang['feed_err_1'];
 }

 if (empty(
$email)) {
   
$stop .= $lang['feed_err_2'];
 }
 elseif (!
check_email($email)) {
   
$stop .= $lang['feed_err_3'];
 }

 if (empty(
$subject)) {
   
$stop .= $lang['feed_err_4'];
 }

 if (empty(
$message)) {
   
$stop .= $lang['feed_err_5'];
 }

    if ( 
$_POST['sec_code'] != $_SESSION['sec_code_session'] OR !$_SESSION['sec_code_session']) {
       
$stop .= $lang['reg_err_19'];
    }
    
$_SESSION['sec_code_session'] = false;

if (
$stop) {

msgbox ($lang['all_err_1'], "$stop<br><br><a href=\"javascript:history.go(-1)\">$lang[all_prev]</a>");

} else {

    include_once 
ENGINE_DIR.'/inc/mail.class.php';
    
$mail = new dle_mail ($config);

    
$recipient $db->super_query("SELECT name, email, fullname FROM " USERPREFIX "_users WHERE user_id='".$recip."'");

    if (empty(
$recipient['fullname'])) $recipient['fullname'] = $recipient['name'];

     
$row $db->super_query("SELECT template FROM " PREFIX "_email where name='feed_mail' LIMIT 0,1");

     
$row['template'] = stripslashes($row['template']);
     
$row['template'] = str_replace("{%username_to%}",$recipient['fullname'], $row['template']);
     
$row['template'] = str_replace("{%username_from%}",$name$row['template']);
     
$row['template'] = str_replace("{%text%}",$message$row['template']);
     
$row['template'] = str_replace("{%ip%}",$_SERVER['REMOTE_ADDR'], $row['template']);

     
$mail->from $email;

     
$mail->send ($recipient['email'], $subject$row['template']);

     if (
$mail->send_errormsgbox ($lang['all_info'], $mail->smtp_msg);
      else 
msgbox($lang['feed_ok_1'], "$lang[feed_ok_2] ".$recipient['name']." $lang[feed_ok_3] <a href=\"{$config['http_home_url']}\">$lang[feed_ok_4]</a>");

}

} else {


    
$user intval($_GET['user']);

    if (!
$user)
     
$db->query("SELECT name, user_group, user_id FROM " USERPREFIX "_users where user_group < '4' AND allow_mail = '1' ORDER BY user_group");
    else
     
$db->query("SELECT name, user_group, user_id FROM " USERPREFIX "_users where user_id = '$user' AND allow_mail = '1' ORDER BY user_group");

   if (
$db->num_rows())
     {
     
$empf "<select name=\"recip\">";
     
$i 1;
     while (
$row $db->get_array()) {
      
$str $row['name']." (".stripslashes($user_group[$row['user_group']]['group_name']).")";

       if (
$i == 1) {
         
$empf .= "<option selected=\"selected\" value=\"".$row["user_id"]."\">".$str."</option>\n";
       } else {
         
$empf .= "<option value=\"".$row["user_id"]."\">".$str."</option>\n";
       }
        
$i++;
      }
  
$empf .="</select>"

Как мне задать отправку письма, лишь на один почтовый адрес или просто скрыть это поле? Сам я лих начинающий программист, вот и решил попросить помощи у более квалифицированных лиц.

Отправлено: 03:01, 06-12-2007

 

Аватара для ][alter

Старожил


Сообщения: 195
Благодарности: 15

Профиль | Сайт | Отправить PM | Цитировать


Все всем огромное спасибо, все заработало, заменил:


PHP код: Выделить весь код

$this->subject $subject

на $this->subject = "User";

убрал, это условие

PHP код: Выделить весь код

if ( !preg_match"/^<.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,4})(\]?)>$/"$this->to ) )   


        {  
$this->smtp_msg "E-Mail: {$this->to} not valid";                         
  
$this->send_error true;                          
 
$this->to false;          
 } 

И в место вместо $this->to адрес "mail@mail.ma"

Отправлено: 00:18, 18-12-2007 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Обработка формы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Пакетная обработка видео zhecka Видео и аудио: обработка и кодирование 17 09-12-2010 14:42
Разное - Не корректная обработка букв... Котяр Microsoft Windows 2000/XP 0 13-09-2008 16:57
Обработка видео Antonij Видео и аудио: обработка и кодирование 14 29-03-2007 21:44
*Решено* | Обработка массивов в С++ Shad0VV Программирование и базы данных 7 15-10-2005 19:59
обработка переменных из сгенерированой формы LuckyNET Вебмастеру 6 11-07-2005 14:40




 
Переход