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]   

> Описание: ICONV в PHP
Glushko
Отправлено: 12 Апреля, 2012 - 09:38:34
Post Id


Новичок


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


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




Добрый день всем! Народ, помогите, пожалуйста, с кодом формы обратной связи шаблона сайта на joomla. Читал похожую тему здесь
http://php.su/forum/topic.php?fo...0&topic=1369
Поменял немного код как писали в теме. Сам текст письма, тема - отображаются нормально (UTF-8). а вот имя отправителя - что попало Не понял в какой кодировке не могу понять...
В UTF-8 текст п░п╢п╪п╦п╫п╦я│я┌я─п╟я┌п╬я─ . Что на нормальном языке "Администратор".
Перепробовал все доступные кодировки - не помогло.
Вот собственно и код
PHP:
скопировать код в буфер обмена
  1. defined('_JEXEC') or die('Restricted access');
  2.  
  3. $spamtext_s5_qc         = $params->get( 'spamtext' );
  4. $pretext_s5_qc          = $params->get( 'pretext' );
  5. $email_address = $params->get( 'adminemail' );
  6. $subject_prefix = $params->get( 'subjectprefix' );
  7. $nametext_s5_qc = $params->get( 'nametext' );
  8. $emailtext_s5_qc = $params->get( 'emailtext' );
  9. $subjecttext_s5_qc = $params->get( 'subjecttext' );
  10. $subjectspacer = " ";
  11. $bodytext_s5_qc = $params->get( 'bodytext' );
  12. $sendtext_s5_qc = $params->get( 'sendtext' );
  13. $width_s5_qc = $params->get( 'width' );
  14. $height_s5_qc = $params->get( 'height' );
  15. $thankyou_s5_qc = $params->get( 'thankyou' );
  16. $emailerror_s5_qc = $params->get( 'emailerror' );
  17. $spamerror_s5_qc = $params->get( 'spamerror' );
  18. $notcomplete_s5_qc = $params->get( 'notcomplete' );
  19. $ex1 = $params->get( 'ex1', 's5_qc_null');
  20. $ex2 = $params->get( 'ex2', 's5_qc_null');
  21. $ex3 = $params->get( 'ex3', 's5_qc_null');
  22. $ex4 = $params->get( 'ex4', 's5_qc_null');
  23. $ex5 = $params->get( 'ex5', 's5_qc_null');
  24. $ex6 = $params->get( 'ex6', 's5_qc_null');
  25. $ex7 = $params->get( 'ex7', 's5_qc_null');
  26. $ex8 = $params->get( 'ex8', 's5_qc_null');
  27. $ex9 = $params->get( 'ex9', 's5_qc_null');
  28. $ex10 = $params->get( 'ex10', 's5_qc_null');
  29. $ex11 = $params->get( 'ex11', 's5_qc_null');
  30. $ex12 = $params->get( 'ex12', 's5_qc_null');
  31. $ex13 = $params->get( 'ex13', 's5_qc_null');
  32. $ex14 = $params->get( 'ex14', 's5_qc_null');
  33. $ex15 = $params->get( 'ex15', 's5_qc_null');
  34. $ex16 = $params->get( 'ex16', 's5_qc_null');
  35. $ex17 = $params->get( 'ex17', 's5_qc_null');
  36. $ex18 = $params->get( 'ex18', 's5_qc_null');
  37. $ex19 = $params->get( 'ex19', 's5_qc_null');
  38. $ex20 = $params->get( 'ex20', 's5_qc_null');
  39. $ex21 = $params->get( 'ex21', 's5_qc_null');
  40. $ex22 = $params->get( 'ex22', 's5_qc_null');
  41. $ex23 = $params->get( 'ex23', 's5_qc_null');
  42. $ex24 = $params->get( 'ex24', 's5_qc_null');
  43. $ex25 = $params->get( 'ex25', 's5_qc_null');
  44. $ex26 = $params->get( 'ex26', 's5_qc_null');
  45. $ex27 = $params->get( 'ex27', 's5_qc_null');
  46. $ex28 = $params->get( 'ex28', 's5_qc_null');
  47. $ex29 = $params->get( 'ex29', 's5_qc_null');
  48. $ex30 = $params->get( 'ex30', 's5_qc_null');
  49.  
  50. if (isset($_POST['name'])) {
  51.     $name = $_POST['name'];
  52. }
  53. if (isset($_POST['email'])) {
  54.     $email = $_POST['email'];
  55. }
  56. if (isset($_POST['message'])) {
  57.     $message = $_POST['message'];
  58. }
  59. if (isset($_POST['subject'])) {
  60.     $subject = $subject_prefix . $subjectspacer . $_POST['subject'];
  61. }
  62. if (isset($_POST['verif_box'])) {
  63.         $verif_box = (md5($_POST["verif_box"]).'a4xn');
  64. }
  65.  
  66. $ran_num = rand(0,9999);
  67.  
  68. $exclude_check = "valid";
  69.  
  70.  
  71. // Detects mail headers to prevent spammers.
  72.  
  73.         if (isset($_POST['name'])) {
  74.         if ($name != "" && $name != " ") {
  75.            $from = urldecode($email);
  76.  
  77.            
  78.            $message2 = "1".$message;
  79.            
  80.            if (strrpos($message2,$ex1) > 0) {
  81.                         $exclude_check = "invalid";
  82.            }
  83.            if (strrpos($message2,$ex2) > 0) {
  84.                         $exclude_check = "invalid";
  85.            }
  86.            if (strrpos($message2,$ex3) > 0) {
  87.                         $exclude_check = "invalid";
  88.            }
  89.            if (strrpos($message2,$ex4) > 0) {
  90.                         $exclude_check = "invalid";
  91.            }
  92.            if (strrpos($message2,$ex5) > 0) {
  93.                         $exclude_check = "invalid";
  94.            }
  95.            if (strrpos($message2,$ex6) > 0) {
  96.                         $exclude_check = "invalid";
  97.            }
  98.            if (strrpos($message2,$ex7) > 0) {
  99.                         $exclude_check = "invalid";
  100.            }
  101.            if (strrpos($message2,$ex8) > 0) {
  102.                         $exclude_check = "invalid";
  103.            }
  104.            if (strrpos($message2,$ex9) > 0) {
  105.                         $exclude_check = "invalid";
  106.            }
  107.            if (strrpos($message2,$ex10) > 0) {
  108.                         $exclude_check = "invalid";
  109.            }
  110.            if (strrpos($message2,$ex11) > 0) {
  111.                         $exclude_check = "invalid";
  112.            }
  113.            if (strrpos($message2,$ex12) > 0) {
  114.                         $exclude_check = "invalid";
  115.            }
  116.            if (strrpos($message2,$ex13) > 0) {
  117.                         $exclude_check = "invalid";
  118.            }
  119.            if (strrpos($message2,$ex14) > 0) {
  120.                         $exclude_check = "invalid";
  121.            }
  122.            if (strrpos($message2,$ex15) > 0) {
  123.                         $exclude_check = "invalid";
  124.            }
  125.            if (strrpos($message2,$ex16) > 0) {
  126.                         $exclude_check = "invalid";
  127.            }
  128.            if (strrpos($message2,$ex17) > 0) {
  129.                         $exclude_check = "invalid";
  130.            }
  131.            if (strrpos($message2,$ex18) > 0) {
  132.                         $exclude_check = "invalid";
  133.            }
  134.            if (strrpos($message2,$ex19) > 0) {
  135.                         $exclude_check = "invalid";
  136.            }
  137.            if (strrpos($message2,$ex20) > 0) {
  138.                         $exclude_check = "invalid";
  139.            }
  140.            if (strrpos($message2,$ex21) > 0) {
  141.                         $exclude_check = "invalid";
  142.            }
  143.            if (strrpos($message2,$ex22) > 0) {
  144.                         $exclude_check = "invalid";
  145.            }
  146.            if (strrpos($message2,$ex23) > 0) {
  147.                         $exclude_check = "invalid";
  148.            }
  149.            if (strrpos($message2,$ex24) > 0) {
  150.                         $exclude_check = "invalid";
  151.            }
  152.            if (strrpos($message2,$ex25) > 0) {
  153.                         $exclude_check = "invalid";
  154.            }
  155.            if (strrpos($message2,$ex26) > 0) {
  156.                         $exclude_check = "invalid";
  157.            }
  158.            if (strrpos($message2,$ex27) > 0) {
  159.                         $exclude_check = "invalid";
  160.            }
  161.            if (strrpos($message2,$ex28) > 0) {
  162.                         $exclude_check = "invalid";
  163.            }
  164.            if (strrpos($message2,$ex29) > 0) {
  165.                         $exclude_check = "invalid";
  166.            }
  167.            if (strrpos($message2,$ex30) > 0) {
  168.                         $exclude_check = "invalid";
  169.            }
  170.            
  171.            
  172.            if ($exclude_check == "valid") {
  173.            
  174.                         if($verif_box == $_COOKIE['s5_qc']){
  175.                                    $head = "Content-Type: text/plain; charset=utf-8\r\n"
  176.                    ."From: $name <$email>\r\n";
  177.                    mail($email_address, $subject, $message, $head);
  178.                                 setcookie('s5_qc','');
  179.                         }
  180.                        
  181.                         else if(isset($message) and $message!=""){
  182.                                 exit;
  183.                         }
  184.                
  185.                 }
  186.                
  187.         }
  188.         }
 
 Top
DelphinPRO
Отправлено: 12 Апреля, 2012 - 10:06:39
Post Id



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


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


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




в Joomla есть специальный класс для отправки мыла, в соответствии с настройками в админке

PHP:
скопировать код в буфер обмена
  1. /**
  2.  * Mail function (uses phpMailer)
  3.  *
  4.  * @param string $from From e-mail address
  5.  * @param string $fromname From name
  6.  * @param mixed $recipient Recipient e-mail address(es)
  7.  * @param string $subject E-mail subject
  8.  * @param string $body Message body
  9.  * @param boolean $mode false = plain text, true = HTML
  10.  * @param mixed $cc CC e-mail address(es)
  11.  * @param mixed $bcc BCC e-mail address(es)
  12.  * @param mixed $attachment Attachment file name(s)
  13.  * @param mixed $replyto Reply to email address(es)
  14.  * @param mixed $replytoname Reply to name(s)
  15.  * @return boolean True on success
  16.  */
  17. function sendMail($from, $fromname, $recipient, $subject, $body, $mode=0, $cc=null, $bcc=null, $attachment=null, $replyto=null, $replytoname=null )
  18.  
  19. // пример использования
  20. if (JUtility::sendMail()) {
  21.   // почта отправлена
  22. }
  23. else {
  24.   // возникла ошибка
  25. }
  26.  

проблем не было.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Viper
Отправлено: 12 Апреля, 2012 - 10:24:09
Post Id



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


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




DelphinPRO пишет:
в Joomla есть специальный класс для отправки мыла, в соответствии с настройками в админке


Не обязательно из админки.

Отправляем письмо одному или нескольким адресатам

PHP:
скопировать код в буфер обмена
  1. function _sendEmail(&$params, $data) {
  2.         $mail = &JFactory::getMailer();
  3.  
  4.         $recip_arr = explode(',', $params->get('email'));
  5.         $n = count($recip_arr);
  6.         if (is_array($recip_arr)) {
  7.                 for ($i=0; $i<$n; $i++) {
  8.                         $email = $recip_arr[$i];
  9.                         $emails[] = trim($email);
  10.                 }
  11.         } else {
  12.                 $emails = $params->get('email');
  13.         }
  14.  
  15.         $body_msg = $data['text'];
  16.         $mail->addRecipient($emails);
  17.         $mail->setSender('мыло_админа');
  18.         $mail->setSubject('тема_письма');
  19.         $mail->setBody($body_msg);
  20.         $mail->isHTML(true);
  21.         $mail->AltBody = $body_msg;
  22.         $mail->Send();
  23. }


$params - параметры объекта(шаблон, компонент, модуль, плагин) который получите самостоятельно. Код простой.
$data - массив с данными

PS! Дополнительные методы $mail можно подсмотреть тут http://api[dot]joomla[dot]org/Joomla-Pla[dot][dot][dot]/Mail/JMail[dot]html

(Отредактировано автором: 12 Апреля, 2012 - 10:26:30)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
DelphinPRO
Отправлено: 12 Апреля, 2012 - 10:47:37
Post Id



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


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


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




Viper пишет:
Не обязательно из админки.

я имел ввиду, что при использовании встроенных интерфейсов используются заданные настройки

указанный вами способ более гибок в настройке, но использует тот же самый phpmailer.
JUtility::sendMail() - по сути обертка для того, что вы написали
Прикреплено изображение (Нажмите для увеличения)
screenshot-20120412-114701.png

(Отредактировано автором: 12 Апреля, 2012 - 10:51:32)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Viper
Отправлено: 12 Апреля, 2012 - 12:25:44
Post Id



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


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




DelphinPRO скажем так более стандартный в плане фреймворка.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
DelphinPRO
Отправлено: 12 Апреля, 2012 - 12:36:54
Post Id



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


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


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




Viper, может быть, но когда не требуются тонкие настройки, достаточно обертки из JUtility Улыбка


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Viper
Отправлено: 12 Апреля, 2012 - 12:44:15
Post Id



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


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




DelphinPRO пишет:
может быть, но когда не требуются тонкие настройки, достаточно обертки из JUtility
Улыбка Совместимость кода от версии к версии будет страдать.
sendMail() deprecated: 12.1
К тому же Jutility никогда не был хоть как-то стандартизированным. От версии к версии в нем меняются методы и способ работы с ними.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
DelphinPRO
Отправлено: 12 Апреля, 2012 - 12:53:10
Post Id



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


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


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




блин, действительно, в 2.5 уже deprecated Однако


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« CMS и фреймворки »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB