Bonjour,

depuis quelque heures, je ronge mon frein sur un problème assez bizarre. Voici mon code (un peu épuré) :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
 function envoi_mail_activation() {
 
        // --- passage à la ligne des headers
        if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $this->_email))
            $passage_ligne = "\r\n";
        else
            $passage_ligne = "\n";
 
        $headers = 'From: "Admin Space Conqueror" <no-reply@spaceconqueror.com>'.$passage_ligne;
        $headers .= 'Reply-to: "Admin Space Conqueror" <no-reply@spaceconqueror.com>'.$passage_ligne;
        $headers .= 'MIME-Version: 1.0'.$passage_ligne;
        $headers .= "Content-Type: text/html; charset=\"utf-8\"".$passage_ligne;
        $headers .= "Content-Transfer-Encoding: 8bit".$passage_ligne;
 
        $message = '...';
        $message .= '<a href="'.URL.'lib/controler.php?activation='.$this->_univers.'-'.sha1($this->_pseudo.$this->_mdp).'">'.URL.'lib/controler.php?activation&'.$this->_univers.'-'.sha1($this->_pseudo.$this->_mdp).'</a><br /><br />';
        $message = '...';
 
        // --- si le mail n'est pas envoyé, on supprime tout
        if(mail($this->_email, 'Confirmation d\'inscription sur l\'univers '.ucfirst($this->_univers), $message, $headers) === true) {
            mail(EMAIL_ADMIN, 'Inscription de '.ucfirst(strtolower($this->_pseudo)).' sur l\'univers '.ucfirst($this->_univers), 'Inscription de '.ucfirst(strtolower($this->_pseudo)).' sur l\'univers '.ucfirst($this->_univers), $headers);
            $this->msg(COMPTE_CREE);
        }else {
            Application::addRequete('DELETE FROM joueurs WHERE joueur_id=? LIMIT 1', array($this->_joueur_id));
            Application::doRequetes();
            $this->msg(ERREUR_CREATION_COMPTE);
        }
    }

Ma ligne posant problème est identifiée et est la suivante :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$message .= '<a href="'.URL.'lib/controler.php?activation='.$this->_univers.'-'.sha1($this->_pseudo.$this->_mdp).'">'.URL.'lib/controler.php?activation='.$this->_univers.'-'.sha1($this->_pseudo.$this->_mdp).'</a><br /><br />';

Mon problème : il suffit que je mette un "=" ou "&" ou "&amp;" par exemple pour que l'utilisateur ne recoive pas son mail d'activation

Au début je codais (un peu à l'arrache je l'avoue sur notepad++) et je pensais que peut etre vu que la gestion de l'encodage laisse à désirer sur notepad++ je trouve, qu'il pouvait s'agir d'un problème de (méta)caractère ou autre dans mon fichier (je précise que j'ai déjà réussi à envoyer des mails d'activatino sur d'autres projet hein). Du coup je suis passé sur netbeans mais idem, dès que je mets un & ou = je ne recois pas mon mail mais la fonction mail() retourne true...

Quelqu'un a une idée ?