ОШИБКА: 8192 при попытке отправить почту - PullRequest
0 голосов
/ 10 апреля 2010

У меня есть следующий код, который работает, когда я помещаю его на любую пустую страницу php, но когда я пытаюсь поместить код на другую страницу php, где у меня уже есть некоторые коды, я получаю ошибку:

ERRNO: 8192
TEXT: Assigning the return value of new by reference is deprecated
LOCATION: C:\xampp\php\PEAR\Mail.php, line 154,
 include('Mail.php');
        $mail = Mail::factory("mail");

        $headers = array("From"=>"xyz@gmail.com", "Subject"=>"Your order has been placed   ");
        $body = "lol";
        $mail->send("abc@live.com", $headers, $body);

1 Ответ

1 голос
/ 10 апреля 2010

Возможно, у вас старая версия PEAR :: Mail. Может быть версия 1.1.14, последняя стабильная версия до текущей стабильной версии 1.2.0.

Попробуйте

pear channel-update pear.php.net
pear upgrade Mail

, чтобы получить последнюю версию.


edit: На самом деле это не часть ответа, но и комментарий не подходит:

В целях отладки замените заводскую функцию в pear / Mail.php на

<code>function &factory($driver, $params = array())
{
  $driver = strtolower($driver);
  echo '<pre>Debug: driver=', $driver, "
\ п "; echo '
Debug: include_path=', get_include_path(), "
\ n "; echo '
Debug: cwd=', getcwd(), "
\ n "; echo '
Debug: __FILE__=', __FILE__, "
\ n "; require_once 'Mail /'. $ водитель. '.Php'; $ class = 'Mail_'. $ Водителя; if (class_exists ($ class)) { $ mailer = новый $ class ($ params); вернуть $ mailer; } еще { выбросить новое исключение («Невозможно найти класс для драйвера». $ driver); } }
...