Bonjour a tous voila je suis le tuto sur les comptes membres cake php et donc mon mail ne veut pas s'envoyer a cause de ça qui se trouve dans mon fichier email/html/signup.ctp

<p><?php echo $this->Html->link('Activer mon compte',$this->Html->url($link,true)); ?></p>

Des que j’enlève cette ligne le mail s'envoie mais après on peut pas activer le compte
Voila le code de mon controller

function signup(){
        if($this->request->is('post')){
            $d = $this->request->data; 
            $d'User']'id'] = null;
            $d'User']'lastlogin'] = '2009-08-08 12:17:00'; 
            if(!empty($d'User']'password'])){
                $d'User']'password'] = Security::hash($d'User']'password'],null,true);
            }

            if($this->User->save($d,true,array('username','password','mail'))){
                $link = array('controller'=>'users','action'=>'activate',$this->User->id.'-'.md5($d'User']'password']));
                App::uses('CakeEmail','Network/Email'); 
                $mail = new CakeEmail(); 
                $mail->from('noreply@localhost.com')
                    ->to($d'User']'mail'])
                    ->subject('Test :: Inscription')
                    ->emailFormat('html')
                    ->template('signup')
                    ->viewVars(array('username'=>$d'User']'username'],'link'=>$link))
                    ->send();
                $this->Session->setFlash("Votre compte a bien été créé","notif");
                $this->request->data = array(); 
            }else{
                $this->Session->setFlash("Merci de corriger vos erreurs","notif",array('type'=>'error'));
            }
        }
    }

Le code est vraiment similaire a celui de base et je comprend vraiment pas pourquoi le link beug
Merci de votre aide

6 réponses


Tu ne vois pas l'erreur dans le mail ?

Non je vois pas ou est l'erreur ?

Si tu pouvais me dire ou ce trouve l'erreur ça serait sympas merci

Non je voulais dire il n'y a pas d'erreur affiché dans le mail envoyé ?

L'erreur est Fatal error: Call to a member function link() on a non-object in pourtant le code me parait bon

Il faut que tu ajoutes le Helper HTML dans ton fichier CakeEmail.php de la librairie.

lib/Cake/Network/Email/CakeEmail.php

protected $_helpers = array('Html');

:)