Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
je débute sur ZF.
J'ai créer un formulaire qui permet à un utilisateur de s'inscrire sur mon site. Mais je voudrais que l'email sur unique. Lorsque l'email existe deja sur la base de données un message "email utilisé" doit s'affiché.
Voici le code que je fais au niveau du controlleur:
public function inscriptionAction(){
$form = new Application_Form_InscriptionForm();
$this->view->form = $form;
if ($this->_request->isPost() && $this->_request->getPost('Inscription')) {
$formData = $this->_request->getPost();
if($form->isValid($formData)){
$sql = 'SELECT count(*) FROM utlisateur WHERE email="'.mysql_escape_string($_POST['email']).'"';
$req = mysql_query($sql);
$result = mysql_fetch_array($req);
if ($result >=1) {
$this->view->erreur = "email existant";
}else{
$email = $form->getValue('email');
$pass = md5($form->getValue('password'));
}
$this->ecriture->saveUtilisateur(
new Application_Model_Utilisateur(null, null, $pass,
'user', $email, 0,
null, null, null,
null, null, null, null)
);
$this->view->inscriptionOk = "Merci de vous être inscrit,
vous devez activer votre compte par mail pour pouvoir vous identifier";
}
}
}
}
Le problème est que lorsqu'on s'inscrit avec un émail existant déjà dans la base ce dernier est enregistré mais on ne peut pas se connecter avec. Et je ne vois pas comment faire.
Merci d'avance pour votre aide.
Hors ligne
Bonjour, tu dois utiliser le validateur de champ Zend_Validate_Db_NoRecordExists
Dernière modification par shadypierre (09-06-2011 17:46:44)
Hors ligne
Merci pour l'aide, ça marche.
Une autre question comment faire une redirection avec ZF? J
Je m'explique, j'ai un devis en pdf que j'aimerai qu'il s'affiche sur un nouveau onglet.
Merci d'avance.
Hors ligne
Pour ouvrir un lien dans un autre onglet/une autre fenêtre, ce n'est avec du PHP (et donc encore moins avec du Zend Framwork) que tu peux faire ça, mais tout simplement avec du HTML : la balise "a" admet un attribut "target" dont une des valeurs possibles est "_blank"
Hors ligne
Pour la redirection, tu peux faire ceci :
[lang=php] $this->_redirect($this->view->url(array('controller'=>'index','action'=>'index')));
Dernière modification par probitaille (10-06-2011 20:07:25)
Hors ligne
f.garoby voici le code de mon formulaire et j'utilise bien l'attribut target mais le pdf s'affiche toujours sur la même page.
<?php
class Application_Form_PanierForm extends Zend_Form
{
public function __construct($title)
{
parent::__construct();
$submit = new Zend_Form_Element_Submit($title);
$submit->__set("target", "_blank");
$submit->setLabel('');
$this->addElements(array($submit));
}
}
?>
Hors ligne