Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je suis entrain de developpez mon controller d'inscription,et je veux quand le traitement d'inscription (InscriptionController /verifyAction())est valide,m'afficher un avertissement (retournez à votre boite,un mail automatique sera envoyé pour activer votre compte)roulaant horizontalement sur la même page surlaquelle j'ai fait l'inscription(index/index),car le formulaire d'inscription existe dans toutes les pages du sites.
S'il vous plait pouvez vous me dire comment?
Merci.
Hors ligne
Salut, je pense que le plus simple est de réaliser une aide de vue qui va te permettre d'afficher via ton layout le formulaire d'inscription sur toutes les pages. De cette façon tu gères tout uniquement au niveau de la vue de ton aide de vue.
Grosso modo dans ton aide de vue tu retournes un nouveau ViewModel et dans celui-ci tu affiches ton message dans le cas où l'inscription est valide.
Hors ligne
Orkin a écrit:
Salut, je pense que le plus simple est de réaliser une aide de vue qui va te permettre d'afficher via ton layout le formulaire d'inscription sur toutes les pages. De cette façon tu gères tout uniquement au niveau de la vue de ton aide de vue.
Grosso modo dans ton aide de vue tu retournes un nouveau ViewModel et dans celui-ci tu affiches ton message dans le cas où l'inscription est valide.
Salut,Merci bien pour la réponse,je veux l'adapter mais je ne sais pas comment pouvez vous m'aider?
Voilà ce que j'ai fait jusqu' à présent:supposons que nous somme sur la page index/index et dans mon action form :
<form action="<?php echo $this->url(array('controller'=>'account','action'=>'verify','paramcl'=>'Index','paramAct'=>'Index'))?>" method="post">
----------------------------------------InscriptionController-------------------------------------
public function verifyAction() { ini_set('SMTP','smtp.menara.ma'); //preparation des variables //si l'utilisateur a une session if($session->getUserInfo()==false){ //recuperation des params de l'url et registry $secure = $registry->get('security'); $email = $this->_getParam('email'); $pwd = $this->_getParam('pwd'); $pwdc = $this->_getParam('pwdc'); $nom=$this->_getParam('nom'); $prenom=$this->_getParam('prenom'); $controller=$this->_getParam('paramcl');//je recupere l'action et le controller $action=$this->_getParam('paramact');//où se trouve le formulaire //pour se rediriger vers la même page // si email valide $found = preg_match('#^[a-z0-9_.-]{1,}@[a-z0-9_.-]{2,}\.[a-z]{2,4}$#', $email); if($found){ // si email existe deja dans la bd $row = $db->fetchAll("SELECT * FROM client WHERE EMAIL='$email'"); if(count($row)){ $this->_redirect($controller.'/'.$action.'/error/1'); }else{ // verify if passwords are the same if(strcmp($pwd, $pwdc)==0 && strlen($pwd)>=8){ // add client and send confirmation email // password crypt $pwd = md5(utf8_encode($pwd)); // crypt id for client cofirmation $emails = md5($email); $date = date('Y-m-d H:i:s'); $date = md5($date); $idConfirmation = md5(utf8_encode($emails.' '.$date)); // send email to the user /*mail($email,$translate->_('confirm_subject'),$translate->_('confirm_msg') .'<br />' .'http://www.psddoctor.com/account/confirm/id/'.$idConfirmation );*/ $mail = new Zend_Mail(); $mail->setFrom('exemple@exemple.com','expediteur'); $mail->addTo($email); $mail->setBodyHtml('Bonjour '.' '.$prenom.','.'<br>'.$translate->_('confirm_msg').' <br />'.'http://www.exemple.com/account/confirm/id/'.$idConfirmation); $mail->setSubject($translate->_('confirm_subject')); $mail->send(); // insert $data = array( 'email'=>$email, 'login'=>$email, 'pwd'=>$pwd, 'idconfirmation'=>$idConfirmation, 'confirmed'=>false ); $client = new Client($db); $client->insert($data); $this->_redirect($controller.'/'.$action.'/success/1'); //$this->_redirect('account/confirm/id/'.$idConfirmation); }else{ $this->_redirect($controller.'/'.$action.'/error/2'); } } }else{ $this->_redirect($controller.'/'.$action.'/error/1'); } }else{ $this->_redirect('/'); } }
---------------------------------------------IndexController-----------------------------------------------------------------
public function indexAction() { // action body //session_start(); $registry = new Zend_Registry(); $session = $registry->get('session'); $lang = $this->_getParam('lang'); if($session->getUserInfo()==false){ $success = $this->_getParam('success',0); $error = $this->_getParam('error',0); $translate = $registry->get('translator'); SessionHandler::langCookie($lang, $translate); $this->view->translate = $translate; $this->view->lang = $lang; $this->view->success = $success; $this->view->error = $error; }else{ $this->_redirect('session/login'); } }
------------------------------------------index.phtml-----------------------------------------
<div><?php if($this->success!=0):?> <?php if($this->view->success==1):?> <?php echo 'votre ascription est bien faite';?> <?php elseif($this->success==2):?> <?php echo $this->translate->_('success_confirm_register')?> <?php endif;?> <?php else:?> <?php if($this->error!=0):?> <?php if($this->error==1){ echo $this->translate->_('email_error'); }else{ echo $this->translate->_('password_error'); } ?> <?php endif;?> <?php endif;?> </div>
Le problème ici est :lorsque l'inscription est valide il me redirige vers public/Index//success/1 mais il ne m'affiche pas ce qui est entre les if.
S'il vous plait pouvez vous m'aider?
Merci bien
Hors ligne
Tu es sur d'utiliser la version 2 du framework ?
Hors ligne
shadypierre a écrit:
Tu es sur d'utiliser la version 2 du framework ?
Non j'utlise 1.11.6 livrée avec zendStudio 8-0-1
Hors ligne
Comme tu peux le voir tu es dans le section réservé aux versions 2.X du zendframework. Tu n'es donc pas dans la bonne section.
Je déplace la discussion.
Hors ligne
Hello,
C'est le helper 'flashMessenger' qu'il te faut:
http://framework.zend.com/manual/fr/zen … hmessenger
Sur la meme page tu pourras apres un envoi d'email (ou une inscription dans ton cas), afficher un message pour l'utilisateur.
Dernière modification par us2rn4m2 (31-07-2012 14:48:00)
Hors ligne
Pages: 1