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
Форумы портала PHP.SU :: Версия для печати :: ошибка в class.phpmailer.php
Форумы портала PHP.SU » » Работа с сетью » ошибка в class.phpmailer.php

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

1. foozzi - 05 Июля, 2011 - 17:06:26 - перейти к сообщению
Есть форма отправки e-mail когда пытаюст отправить выдет такие ошибки:
CODE (SQL):
скопировать код в буфер обмена
  1. Warning: require(class.phpmailer.php) [FUNCTION.require]: failed TO open stream: No such file OR directory IN /home/a6519250/public_html/mail.php ON line 73


CODE (SQL):
скопировать код в буфер обмена
  1. Fatal error: require() [FUNCTION.require]: Failed opening required 'class.phpmailer.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') IN /home/a6519250/public_html/mail.php ON line 73


Сам код:

PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <title>Отправить свой ответ</title>
  4. </head>
  5. <body>
  6.  <style type="text/css">
  7.   /*<![CDATA[*/
  8.   * { margin: 0px; padding: 0px; }
  9.   body, td { font-family: Times New Roman; font-size: 17px; color: #333333; background-color: transparent; text-shadow: 1px 1px 2px #999999; }
  10.   a { text-decoration: none; color: #000099; }
  11.   a:hover { color: #FF0000; text-shadow: -1px -1px 2px #AAAAAA; }
  12.   .al { text-align: left; padding-left: 10px; }
  13.   .ac { text-align: center; }
  14.   .tb { font-weight: bold; }
  15.   .title { font-family: Times New Roman; font-size: 28px; font-weight: bold; font-style: italic; color: #FF0000; border-bottom: solid 1px #888888; }
  16.   .desc { font-size: 12px; color: #888888; }
  17.   .info { font-size: 12px; color: #888888; padding-top: 0px; padding-bottom: 10px; padding-left: 10px; vertical-align: top; }
  18.   .b-vr { border-right: solid 1px #888888; }
  19.   .b-hb { border-bottom: dotted 1px #AAAAAA; }
  20.   /*]]>*/
  21.   </style>
  22.  
  23. <?PHP
  24. function show_form()
  25. {
  26. ?>
  27. <form action="" method=post enctype="multipart/form-data">
  28. <div align="center">
  29.               <br />Имя*              <input type="text" name="name" size="40">
  30.               <br />Контактный email*              <input type="text" name="email" size="40">
  31.               <br />Teма              <input type="text" name="title" size="40">
  32.               <br />Сообщение*              <textarea rows="10" name="mess" cols="30"></textarea>
  33.               <br />Файл              <input name="attachfile" type="file" size="28">
  34.               <br />Изображение              <input name="attachimage" type="file" size="28">
  35.               <br /><br /><input type="submit" value="Отправить" name="submit">
  36. </div>
  37. </form>
  38. * Помечены поля, которые необходимо заполнить
  39. <br>
  40. Вы так же можете использовать HTML теги
  41. <?
  42. }
  43.  
  44. function complete_mail() {
  45.         // $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и  substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично
  46.         $_POST['title'] =  substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);
  47.         $_POST['mess'] =  substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);
  48.         $_POST['name'] =  substr(htmlspecialchars(trim($_POST['name'])), 0, 30);
  49.         $_POST['email'] =  substr(htmlspecialchars(trim($_POST['email'])), 0, 50);
  50.         // если не заполнено поле "Имя" - показываем ошибку 0
  51.         if (empty($_POST['name']))
  52.              output_err(0);
  53.         // если неправильно заполнено поле email - показываем ошибку 1
  54.         if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))
  55.              output_err(1);
  56.         // если не заполнено поле "Сообщение" - показываем ошибку 2
  57.         if(empty($_POST['mess']))
  58.              output_err(2);
  59.         // обратите внимание, теперь мы можем писать красивые письма, с помощью html тегов ;-)
  60.         $mess = '
  61. <b>Имя отправителя:</b>'.$_POST['name'].'
  62. <b>Контактный email:</b>'.$_POST['email'].''.$_POST['mess'];
  63.  
  64.         // подключаем файл класса для отправки почты
  65.         require 'class.phpmailer.php';
  66.  
  67.         $mail = new PHPMailer();
  68.         $mail->From = 'test@test.ru';      // от кого
  69.         $mail->FromName = 'www.php-mail.ru';   // от кого
  70.         $mail->AddAddress('social-people@yandex.ru', 'people'); // кому - адрес, Имя
  71.         $mail->IsHTML(true);        // выставляем формат письма HTML
  72.         $mail->Subject = $_POST['title'];  // тема письма
  73.  
  74.         // если был файл, то прикрепляем его к письму
  75.         if(isset($_FILES['attachfile'])) {
  76.                  if($_FILES['attachfile']['error'] == 0){
  77.                     $mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']);
  78.                  }
  79.         }
  80.         // если было изображение, то прикрепляем его в виде картинки к телу письма.
  81.         if(isset($_FILES['attachimage'])) {
  82.                  if($_FILES['attachimage']['error'] == 0){
  83.                     if (!$mail->AddEmbeddedImage($_FILES['attachimage']['tmp_name'], 'my-attach', 'image.gif', 'base64', $_FILES['attachimage']['type']))
  84.                          die ($mail->ErrorInfo);
  85.                     $mess .= 'А вот и наша картинка:<br /><img src="cid:my-attach" border=0><br />я показал как ее прикреплять, соответственно Вам осталось вставить ее в нужное место Вашего письма ;-) ';
  86.                  }
  87.         }
  88.         $mail->Body = $mess;
  89.  
  90.         // отправляем наше письмо
  91.         if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
  92.         echo 'Спасибо! Ваше письмо отправлено.';
  93. }
  94.  
  95. function output_err($num)
  96. {
  97.     $err[0] = 'ОШИБКА! Не введено имя.';
  98.     $err[1] = 'ОШИБКА! Неверно введен e-mail.';
  99.     $err[2] = 'ОШИБКА! Не введено сообщение.';
  100.     echo '<p>'.$err[$num].'</p>';
  101.     show_form();
  102.     exit();
  103. }
  104.  
  105. if (!empty($_POST['submit'])) complete_mail();
  106. else show_form();
  107. ?>
  108. </body>
  109. </html>
  110.  
2. vlados - 05 Июля, 2011 - 17:25:37 - перейти к сообщению
foozzi он не может найти class.phpmailer.php, или директорию /home/a6519250/public_html/mail. php
3. OrmaJever - 05 Июля, 2011 - 17:26:14 - перейти к сообщению
foozzi пишет:
require 'class.phpmailer.php';

крутой инклуд но так работать не будет. Нужен полный путь к файлу.
foozzi пишет:
90% ошибок находятся в полуметре от монитора...

Подмигивание
4. vlados - 05 Июля, 2011 - 17:28:21 - перейти к сообщению

100% ошибок находятся в полуметре от монитора...
5. Мелкий - 05 Июля, 2011 - 17:34:59 - перейти к сообщению
OrmaJever пишет:
крутой инклуд но так работать не будет.

Вообще-то будет.
Но файла такого в директории нет по утверждению php.
6. foozzi - 05 Июля, 2011 - 17:37:09 - перейти к сообщению
дело в том что он есть хД
7. vsll - 05 Июля, 2011 - 17:42:09 - перейти к сообщению
1. chmod
2. положите в папку с этим файлом, если не поможет, то определите базовую директорию, там где config файл и от неё уже задавайте пути
8. vlados - 05 Июля, 2011 - 17:46:23 - перейти к сообщению
9. koka - 12 Июля, 2011 - 13:46:11 - перейти к сообщению
foozzi, я для удобства определил себе переменную, например,

PHP:
скопировать код в буфер обмена
  1. $BASEURLTECH = "/home/kjkjkikhijn/public_html";


и делаю все инклуды так

PHP:
скопировать код в буфер обмена
  1. include_once $BASEURLTECH . '/somepage.php';


Если нет желания каждый раз указывать путь файла относительно корневой, можно сделать инклуд так
PHP:
скопировать код в буфер обмена
  1. include_once $DOCUMENT_ROOT . '/somepage.php';

 

Powered by ExBB FM 1.0 RC1