Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Форма обратной связи

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Почему-то не работает
pantela
Отправлено: 06 Декабря, 2010 - 00:42:36
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Есть форма обратной связи, которая не работает, т.е. письма не идут. Огорчение
Форму скачал с сети. может чего нибудь не хвотает Растерялся

Страница вывода формы
PHP:
скопировать код в буфер обмена
  1. <script type="text/javascript" src="js/jquery.js"></script>
  2. <script type="text/javascript">
  3. // <![CDATA[
  4. jQuery(document).ready(function(){
  5.         $('#contactform').submit(function(){                             
  6.                 var action = $(this).attr('action');
  7.                 $.post(action, {
  8.                         name: $('#name').val(),
  9.                         email: $('#email').val(),
  10.                         company: $('#company').val(),
  11.                         subject: $('#subject').val(),
  12.                         message: $('#message').val()
  13.                 },
  14.                         function(data){
  15.                                 $('#contactform #submit').attr('disabled','');
  16.                                 $('.response').remove();
  17.                                 $('#contactform').before('<p class="response">'+data+'</p>');
  18.                                 $('.response').slideDown();
  19.                                 if(data=='Message sent!') $('#contactform').slideUp();
  20.                         }
  21.                 );
  22.                 return false;
  23.         });
  24. });
  25. // ]]>
  26. </script>
  27.  
  28.   <div class="body2">
  29.     <div class="big">
  30.       <h2><?PHP echo "$lang[contacts]"; ?></h2>
  31.       <p><?PHP echo "$lang[contacts_desc]"; ?></p>
  32.       <div class="line"></div>
  33.       <form action="cms/page/contact_form.php" method="post" id="contactform">
  34.         <ol>
  35.           <li>
  36.             <label for="name"><?PHP echo "$lang[contacts_first_name]"; ?> <span class="red">*</span></label>
  37.             <input id="name" name="name" class="text" />
  38.           </li>
  39.           <li>
  40.             <label for="email"><?PHP echo "$lang[contacts_your_email]"; ?> <span class="red">*</span></label>
  41.             <input id="email" name="email" class="text" />
  42.           </li>
  43.           <li>
  44.             <label for="company"><?PHP echo "$lang[contacts_company]"; ?></label>
  45.             <input id="company" name="company" class="text" />
  46.           </li>
  47.           <li>
  48.             <label for="subject"><?PHP echo "$lang[contacts_subject]"; ?></label>
  49.             <input id="subject" name="subject" class="text" />
  50.           </li>
  51.           <li>
  52.             <label for="message"><?PHP echo "$lang[contacts_message]"; ?> <span class="red">*</span></label>
  53.             <textarea id="message" name="message" rows="6" cols="50"></textarea>
  54.           </li>
  55.           <li class="buttons">
  56.             <input type="image" name="imageField" id="imageField" src="images/<?PHP echo $_REQUEST['lng'] ?>/send.gif" />
  57.           </li>
  58.         </ol>
  59.       </form>
  60.     </div>
  61.     <div class="small">
  62.     <?PHP echo "$lang[contacts_info]"; ?>
  63.     </div>
  64.     <div class="clr"></div>
  65.   </div>


страница отсчёта
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if(!$_POST) exit;
  3.  
  4. $email = $_POST['email'];
  5.  
  6. //$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS';
  7. if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email )){
  8.         $error.="$lang[contacts_error]";
  9.         $errors=1;
  10. }
  11. if($errors==1) echo $error;
  12. else{
  13.         $values = array ('name','email','message');
  14.         $required = array('name','email','message');
  15.          
  16.         $your_email = "xxx@yahoo.com";
  17.         $email_subject = "New Message: ".$_POST['subject'];
  18.         $email_content = "new message:\n";
  19.        
  20.         foreach($values as $key => $value){
  21.           if(in_array($value,$required)){
  22.                 if ($key != 'subject' && $key != 'company') {
  23.                   if( empty($_POST[$value]) ) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; }
  24.                 }
  25.                 $email_content .= $value.': '.$_POST[$value]."\n";
  26.           }
  27.         }
  28.          
  29.         if(@mail($your_email,$email_subject,$email_content)) {
  30.                 echo 'Message sent!';
  31.         } else {
  32.                 echo 'ERROR!';
  33.         }
  34. }
  35. ?>


+ переход на вторую страницу (отсчёта) происходит через jQuery JavaScript Library v1.3.2

P.S. Переменые $lang - это у меня языковые костанты. (сайт мультиязычный)

(Отредактировано автором: 20 Ноября, 2011 - 00:36:47)

 
 Top
pantela
Отправлено: 11 Декабря, 2010 - 09:49:37
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Намекните пожалуйсто, или может за оплату дописать если много писать...
 
 Top
LEONeso
Отправлено: 11 Декабря, 2010 - 11:03:26
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




именно с помощью jQuery нужно реализовать данную задачу т.е. обновление страницы не допускается?

и там страница отсчёта или отчёта?


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
vlom
Отправлено: 11 Декабря, 2010 - 11:10:46
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010  
Откуда: Екатеринбург


Помог: 4 раз(а)




Вам это принципиально через jQuery?
 
 Top
LEONeso
Отправлено: 11 Декабря, 2010 - 11:15:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




Я скопировал весь ваш код. Заполнил обязательные поля "имя", "мыло", "текст" нажал на кнопку "отправить запрос", результат:


получатель получает:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Файл /tmp/!sendmail/2010-12-11_12-12-08.eml:
  2.  
  3. X-Sendmail-Cmdline: sendmail.pl -t -i
  4. To: support@yahoo.com
  5. Subject: New Message:
  6.  
  7. new message:
  8. name: имя
  9. email: lelel@reret.ry
  10. message: мой текст
  11.  


единственное моё изменение - это занести скрипты в body
CODE (html):
скопировать код в буфер обмена
  1. <body>
  2. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  3.  
  4.       <script type="text/javascript">
  5.      
  6.       // <![CDATA[
  7.      jQuery(document).ready(function(){
  8.              $('#contactform').submit(function(){                            
  9.                      var action = $(this).attr('action');
  10.                      $.post(action, {
  11.                              name: $('#name').val(),
  12.                              email: $('#email').val(),
  13.                              company: $('#company').val(),
  14.                              subject: $('#subject').val(),
  15.                              message: $('#message').val()
  16.                      },
  17.                              function(data){
  18.                                      $('#contactform #submit').attr('disabled','');
  19.                                      $('.response').remove();
  20.                                      $('#contactform').before('<p class="response">'+data+'</p>');
  21.                                       $('.response').slideDown();
  22.                                       if(data=='Message sent!') $('#contactform').slideUp();
  23.                               }
  24.                       );
  25.                       return false;
  26.               });
  27.       });
  28.       // ]]>
  29.       </script>
  30.        </body>

(Добавление)
так же я убрал "cms/page/contact_form.php" т.е. запрос идет на этот же файл.
CODE (html):
скопировать код в буфер обмена
  1.             <form action="" method="post" id="contactform">

т.к. php код я указал тут же (все в одном файле)

на всякий пожарный, весь код:
PHP:
скопировать код в буфер обмена
  1. <body>
  2. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  3.  
  4.       <script type="text/javascript">
  5.      
  6.       // <![CDATA[
  7.       jQuery(document).ready(function(){
  8.               $('#contactform').submit(function(){                            
  9.                       var action = $(this).attr('action');
  10.                       $.post(action, {
  11.                               name: $('#name').val(),
  12.                               email: $('#email').val(),
  13.                               company: $('#company').val(),
  14.                               subject: $('#subject').val(),
  15.                               message: $('#message').val()
  16.                       },
  17.                               function(data){
  18.                                       $('#contactform #submit').attr('disabled','');
  19.                                       $('.response').remove();
  20.                                       $('#contactform').before('<p class="response">'+data+'</p>');
  21.                                       $('.response').slideDown();
  22.                                       if(data=='Message sent!') $('#contactform').slideUp();
  23.                               }
  24.                       );
  25.                       return false;
  26.               });
  27.       });
  28.       // ]]>
  29.       </script>
  30.        </body>
  31.         <div class="body2">
  32.           <div class="big">
  33.             <h2><?PHP echo "$lang[contacts]"; ?></h2>
  34.             <p><?PHP echo "$lang[contacts_desc]"; ?></p>
  35.             <div class="line"></div>
  36.             <form action="" method="post" id="contactform">
  37.               <ol>
  38.       <li>
  39.                   <label for="name"><?PHP echo "$lang[contacts_first_name]"; ?> <span class="red">*</span></label>
  40.                   <input id="name" name="name" class="text" />
  41.                 </li>
  42.                 <li>
  43.                   <label for="email"><?PHP echo "$lang[contacts_your_email]"; ?> <span class="red">*</span></label>
  44.                   <input id="email" name="email" class="text" />
  45.                 </li>
  46.                 <li>
  47.                   <label for="company"><?PHP echo "$lang[contacts_company]"; ?></label>
  48.                   <input id="company" name="company" class="text" />
  49.                 </li>
  50.                 <li>
  51.                   <label for="subject"><?PHP echo "$lang[contacts_subject]"; ?></label>
  52.                   <input id="subject" name="subject" class="text" />
  53.                 </li>
  54.                 <li>
  55.                   <label for="message"><?PHP echo "$lang[contacts_message]"; ?> <span class="red">*</span></label>
  56.                   <textarea id="message" name="message" rows="6" cols="50"></textarea>
  57.                 </li>
  58.                 <li class="buttons">
  59.                   <input type="image" name="imageField" id="imageField" src="images/<?PHP echo $_REQUEST['lng'] ?>/send.gif" />
  60.                 </li>
  61.  
  62.               </ol>
  63.  
  64.             </form>
  65.  
  66.           </div>
  67.  
  68.           <div class="small">
  69.  
  70.           <?PHP echo "$lang[contacts_info]"; ?>
  71.  
  72.           </div>
  73.  
  74.           <div class="clr"></div>
  75.  
  76.         </div>
  77.       <?PHP
  78.       if(!$_POST) exit;
  79.        
  80.       $email = $_POST['email'];
  81.        
  82.       //$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS';
  83.       if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email )){
  84.               $error.="$lang[contacts_error]";
  85.               $errors=1;
  86.       }
  87.       if($errors==1) echo $error;
  88.       else{
  89.               $values = array ('name','email','message');
  90.               $required = array('name','email','message');
  91.                
  92.               $your_email = "support@yahoo.com";
  93.               $email_subject = "New Message: ".$_POST['subject'];
  94.               $email_content = "new message:\n";
  95.              
  96.               foreach($values as $key => $value){
  97.                 if(in_array($value,$required)){
  98.                       if ($key != 'subject' && $key != 'company') {
  99.                         if( empty($_POST[$value]) ) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; }
  100.                       }
  101.                       $email_content .= $value.': '.$_POST[$value]."\n";
  102.                 }
  103.               }
  104.                
  105.               if(@mail($your_email,$email_subject,$email_content)) {
  106.                       echo 'Message sent!';
  107.               } else {
  108.                       echo 'ERROR!';
  109.               }
  110.       }
  111.       ?>

(Отредактировано автором: 06 Декабря, 2011 - 11:48:41)



-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
DeepVarvar Супермодератор
Отправлено: 11 Декабря, 2010 - 11:23:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




LEONeso где sendmail у вас??? На локалке? Или у хостера???
 
 Top
LEONeso
Отправлено: 11 Декабря, 2010 - 11:30:26
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




денвер стоит. Было дело писал сам для себя (собственно как и всегда =) учусь же) код, оповещения о неком действии и тестировал на хосте, все работало исправно, так что ,если в денвере посылаются данные, то и на хосте тоже должно работать (по крайней мере я в этом убежден).

(Отредактировано автором: 11 Декабря, 2010 - 11:33:04)



-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
DeepVarvar Супермодератор
Отправлено: 11 Декабря, 2010 - 11:34:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Блин... Цэ макрософаг виндас... А мне с линя нужен mail.conf Огорчение
(Добавление)
LEONeso дело в том что когда мы используем ф-цию mail(); в PHP в контексте *NIX-систем, то она обращается к одной из установленых почтовых утилит, как правило это sendmail, ну бывает еще и postfix... Так вот в конфе сендмайла черт голову сломит... Не могу настроить никак... Так то оно вызывается. Но очень долго думает (30 сек) а потом говорит что письмо не отправлено.. В логах апача пишет что ему не нравится имя компа как домен... Менял - не помогло... Ну а на хостинге это все просто настроено, поэтому и работает.. Вот бы мне еще настроить...
 
 Top
LEONeso
Отправлено: 11 Декабря, 2010 - 11:57:24
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




DeepVarvar пишет:
Блин... Цэ макрософаг виндас... А мне с линя нужен mail.conf Огорчение
(Добавление)
LEONeso дело в том что когда мы используем ф-цию mail(); в PHP в контексте *NIX-систем...


Я пока использую win os и пока имею одну цель - научиться программировать на php (+mysql) в дальнейшем js, delphi, но пока не буду уверенно писать разные скрипты и хорошо разбираться в этом деле, я новые языки не буду начинать учить т.к. можно запутаться и в итоге получится "всего по чуть-чуть и ничего стоящего"., но если говорить по теме, то представленный топиккастером код, рабочий.


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
JustUserR
Отправлено: 11 Декабря, 2010 - 12:40:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




LEONeso Для осуществления отправки электронных почтовых сообщений из некоторого сетевого узла необходимо наличие сущестование на нем полноценного MTA-агента с исходящих и входящих сетевым доступом и конфигурированным почтовым доменов - или использование некоторого работоспособного SMTP-сервера выполняющего реальные действий по осуществлению отправки сообщений


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
pantela
Отправлено: 11 Декабря, 2010 - 12:56:32
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




LEONeso
Спасибо большое с дому проверю код
 
 Top
JustUserR
Отправлено: 11 Декабря, 2010 - 21:02:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




pantela пишет:
Дому проверю код
Для осуществления диагностики опсанной вами ситуации с некорректной реалиацией системы отпарвки электроных сообщений - целесообразно проведение мануальной проверки используемого сервера почтового трансферта - для обеспечения анализа возможности передачи сообщений с заданной конфигурацией относительно почтового домена


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
LEONeso
Отправлено: 12 Декабря, 2010 - 00:54:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




JustUserR пишет:
pantela пишет:
Дому проверю код
Для осуществления диагностики опсанной вами ситуации с некорректной реалиацией системы отпарвки электроных сообщений - целесообразно проведение мануальной проверки используемого сервера почтового трансферта - для обеспечения анализа возможности передачи сообщений с заданной конфигурацией относительно почтового домена

Все ваши посты такие "взяты из учебника" - сколько вы уже работаете программистом?
Достаточно сложно их понять, хотя достаточно интересно описаны.


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
JustUserR
Отправлено: 12 Декабря, 2010 - 19:16:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




LEONeso пишет:
Все ваши посты такие "взяты из учебника" - сколько вы уже работаете программистом?
Достаточно сложно их понять, хотя достаточно интересно описаны.
Приведенные выше сообщение в действительности включает описания реализации простых базовых действия по определению возможной причины некорректной работы системы - в частности предлагает осуществить проверку (1) целевого SMTP-сервера обеспечивающего отправку электронных сообщений ли MTA-агента - после чего проверить (2) сетевое взаимодействие исполняемого приложения с заданым узлом
Что касается опыта работы в области программирования - то н в действительности оказывает прямой воздействие на стиль проведения дискуссии и комментирования предполагаемых вопросов


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
pantela
Отправлено: 13 Июля, 2011 - 15:03:05
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Пожалуйсто Удалите с форума даную тему, не в свалку а вобще удалите пожалуйсто...
спс.Ув.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB