Bonjour,
je suis entrain de faire un systeme d'inscription, mais j'ai un problème que j'ai dû mal à saisir.
je m'explique, lors de l'inscription l'internaute entre le pseudo d'un parrain, je fais une recherche find pourvoir si le parrain saisi existe, si c'est le cas l'inscription se poursuivre quand tout est ok les données s'enregistrent dans la base, mon problème est que avec le find du parrain les données s'enregistrent mais le redirect ne marche pas même en cas d'erreur.
voici mon code.
public function register(){
$this->loadModel('Transaction');
if($this->request->is('post')){
//debug($this->Session->read());
$d=$this->request->data;
//debug($d);die();
if(!empty($d["User"]["parrain"])){
$user=$this->User->find('first',array('conditions'=>array('username'=>$d["User"]["parrain"])));
if($user != array()){
// $this->redirect('/users/login');
$parrain_name=$user['User']['name'];
$parrain_id=$user['User']['id'];
if(!empty($d['User']['phone'])){
$phone=$d['User']['phone'];
$tel1=substr($phone,0,5);
$number=array('00228','00229','00225','00226','00223');
if(in_array($tel1, $number)){
if(strlen($phone)=='13'){
if($phone == $d['User']['confirmphone']){
if($d['User']['password'] == $d['User']['confirmpass']){
if(!empty($d['User']['password'])){
$d['User']['password']= Security::hash($d['User']['password'],null,true);
}
if(!empty($d['User']['country'])){
if(!empty($d['User']['ville'])){
$transaction=$this->Transaction->find('first',array('conditions'=>array('Transaction.username'=>$d['User']['name'])));
//debug($transaction);
$codeTrans=$transaction['Transaction']['code_ger'];
$etatTrans=$transaction['Transaction']['etat'];
if($d['User']['code']==$codeTrans){
if($etatTrans=='0'){
if(!empty($d['User']['role'])){
if($d['User']['cgu']=='1'){
$username= $this->enleve($d['User']['username']);
$name= $d['User']['name'];
if($this->User->save(array('role'=>$d['User']['role'],'username'=>$d['User']['username'],'name'=>$name,'email'=>$d['User']['email'],'password'=>$d['User']['password'],'phone'=>$d['User']['phone'],
'parrain_id'=>'1','cgu'=>$d['User']['cgu'],'ville'=>$d['User']['ville'] ,'country'=>$d['User']['country']))){
$this->Session->setFlash("Votre compte a été crée.","notif");
$this->redirect('/users/login');
}else{
$this->Session->setFlash("Inscription imposible, veuillez réessayer.","notif");
$this->redirect($this->referer());
}
}else{
$this->Session->setFlash("Veuillez accepter les conditions générales d'utilisation.","notif");
$this->redirect($this->referer());
}
}else{
$this->Session->setFlash("Veuillez sélectionner votre pack.","notif");
$this->redirect($this->referer());
}
}else{
$this->Session->setFlash("Votre code d'activation a été déjà utilisé.","notif");
$this->redirect($this->referer());
}
}else{
$this->Session->setFlash("le code d'activation saisir n'est pas valide.","notif");
$this->redirect($this->referer());
}
}else{
$this->Session->setFlash("Veuillez saisir votre ville.","notif");
$this->redirect($this->referer());
}
}else{
$this->Session->setFlash("Veuillez préciser votre pays.","notif");
$this->redirect($this->referer());
}
}else{
$this->Session->setFlash("Les mots de passe ne sont pas identiques.","notif");
$this->redirect($this->referer());
}
}else{
$this->Session->setFlash("Les numéros de téléphone ne sont pas identiques.","notif");
$this->redirect($this->referer());
}
}else{
$this->Session->setFlash("Veuillez vérifier votre numéro de téléphone.","notif");
$this->redirect($this->referer());
}
}else{
$this->Session->setFlash("Veuillez saisir un numéro de téléphone valide.","notif");
$this->redirect($this->referer());
}
}else{
$this->Session->setFlash("Veuillez saisir votre numéro de téléphone.","notif");
$this->redirect($this->referer());
}
}else{
$this->Session->setFlash("Le nom de parrain que vous avez précisez n'existe pas.","notif");
$this->redirect($this->referer());
}
}
}
}
Merci pour vos retours et explications.