2010-04-10 13 views
0

J'ai le code suivant qui fonctionne quand je l'ai mis dans une page php vide, mais quand j'essaie de mettre le code dans une autre page php où j'ai déjà quelques codes, je obtenir l'erreur:ERRNO: 8192 en essayant d'envoyer du courrier

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"=>"[email protected]", "Subject"=>"Your order has been placed "); 
     $body = "lol"; 
     $mail->send("[email protected]", $headers, $body); 

Répondre

1

Vous avez probablement une ancienne version de PEAR :: mail. Peut-être la version 1.1.14, la dernière version stable avant la version stable actuelle 1.2.0.

Essayez

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

pour obtenir la dernière version.


modifier: Ce n'est pas fait partie de la réponse, mais ne rentre pas dans un commentaire soit:

Pour le débogage remplacer la fonction usine en poire/Mail.php par

function &factory($driver, $params = array()) 
{ 
    $driver = strtolower($driver); 
    echo '<pre>Debug: driver=', $driver, "</pre>\n"; 
    echo '<pre>Debug: include_path=', get_include_path(), "</pre>\n"; 
    echo '<pre>Debug: cwd=', getcwd(), "</pre>\n"; 
    echo '<pre>Debug: __FILE__=', __FILE__, "</pre>\n"; 

    require_once 'Mail/' . $driver . '.php'; 
    $class = 'Mail_' . $driver; 
    if (class_exists($class)) { 
    $mailer = new $class($params); 
    return $mailer; 
    } 
    else { 
    throw new Exception('Unable to find class for driver ' . $driver); 
    } 
} 
+0

où est-ce que je tape ce qui précède? – chupinette

+0

Dans un shell de commande. Comment avez-vous obtenu la version de PEAR :: Mail que vous avez déjà? N'avez-vous pas utilisé 'pear install Mail'? – VolkerK

+0

non .. j'ai installé xampp. – chupinette