Bonjour,
Je débute en POO. J'ai un problème avec mon code j'ai :
Fatal error: Call to undefined method Membres::sendmail() in /home/site/public_html/site/class/Mail.php on line 36
Mon code est le suivant :
Code : Tout sélectionner
<?php
class Mail {
public function sendmail($FromE,$FromN,$To,$Sujet,$Mes)
{
//message en mode texte (affiché uniquement si l'affichage en HTML n'est pas possible)
$msg_texte = preg_replace("/\<a href=\"http\:\/\/(.*?)\>(.*?)\<\/a\>/","\\2",$Mes);
$msg_texte = preg_replace("/\<br\>/","\\n",$msg_texte);
//message au format HTML
$msg_html = $Mes;
//on va se servir de la chaîne limite pour délimiter les différentes zones du message
$limite = "-----=" . md5( uniqid ( rand() ) );
$headers = "From: \"".$FromN."\"<".$FromE.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$limite\"";
$message = "This is a multi-part message in MIME format.\n\n";
$message .= "--" . $limite . "\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message .= $msg_texte;
$message .= "\n\n";
$message .= "--" . $limite . "\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message .= $msg_html;
$message .= "\n\n";
$message .= "--" . $limite . "--\n";
mail($To, $Sujet, $message, $headers);
echo 'To :'.$To.'<br/>';
echo 'Sujet :'.$Sujet.'<br/>';
echo 'message :'.$messsage.'<br/>';
echo 'Headers :'.$headers.'<br/>';
}
public function mailactivation($cle,$To) {
$this->sendmail('[email protected]','site.com',$To,'site.com : Activation de votre compte',"Bienvenue,<br/><br/>Vous venez de rejoindre la grande famille site <a href=\"http://www.site.com\">www.site.com</a>.<br/><br/>Pour activier votre compte cliquez sur le lien suivant : http://www.site.com/register.php?varcle=$cle<br /><br />");
}
}
?>
Pourquoi cette erreur alors que j'utilise bien $this-> ? A noter que si je créé un objet mail et que je fais $mail->sendmail(); Cela marche.
A noter que j'appelle la fonction sendmail depuis une autre classe comme ceci :
Merci d'avance pour votre aide pour un problème qui me bloque depuis un moment.

Bonjour,
Je débute en POO. J'ai un problème avec mon code j'ai :
Fatal error: Call to undefined method Membres::sendmail() in /home/site/public_html/site/class/Mail.php on line 36
Mon code est le suivant :
[code]<?php
class Mail {
public function sendmail($FromE,$FromN,$To,$Sujet,$Mes)
{
//message en mode texte (affiché uniquement si l'affichage en HTML n'est pas possible)
$msg_texte = preg_replace("/\<a href=\"http\:\/\/(.*?)\>(.*?)\<\/a\>/","\\2",$Mes);
$msg_texte = preg_replace("/\<br\>/","\\n",$msg_texte);
//message au format HTML
$msg_html = $Mes;
//on va se servir de la chaîne limite pour délimiter les différentes zones du message
$limite = "-----=" . md5( uniqid ( rand() ) );
$headers = "From: \"".$FromN."\"<".$FromE.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$limite\"";
$message = "This is a multi-part message in MIME format.\n\n";
$message .= "--" . $limite . "\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message .= $msg_texte;
$message .= "\n\n";
$message .= "--" . $limite . "\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message .= $msg_html;
$message .= "\n\n";
$message .= "--" . $limite . "--\n";
mail($To, $Sujet, $message, $headers);
echo 'To :'.$To.'<br/>';
echo 'Sujet :'.$Sujet.'<br/>';
echo 'message :'.$messsage.'<br/>';
echo 'Headers :'.$headers.'<br/>';
}
public function mailactivation($cle,$To) {
$this->sendmail('
[email protected]','site.com',$To,'site.com : Activation de votre compte',"Bienvenue,<br/><br/>Vous venez de rejoindre la grande famille site <a href=\"http://www.site.com\">www.site.com</a>.<br/><br/>Pour activier votre compte cliquez sur le lien suivant : http://www.site.com/register.php?varcle=$cle<br /><br />");
}
}
?>[/code]
Pourquoi cette erreur alors que j'utilise bien $this-> ? A noter que si je créé un objet mail et que je fais $mail->sendmail(); Cela marche.
A noter que j'appelle la fonction sendmail depuis une autre classe comme ceci :
[code]Mail::mailactivation($emailcode, $emailbak);[/code]
Merci d'avance pour votre aide pour un problème qui me bloque depuis un moment. :cry: