Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 01-04-2008 11:47:07

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

verification de login et mot de passe

bonjour

je viens de tester l'ajout d'un nouveau utilisateur

il faux que le mot de passe soit vérifier et tout les champs sont remplis ça c'est fais

Code:

/*apres le getpost de ces variable*/

if ($nom != '' && $login != '' && $pwd != '' && $pwd2 != '' && $service != ''&& $droit!='') /*test sur le remplissage des champs

{
                     
                    if($pwd !=$pwd2)///verification de mot de passe
                {
                    
                    echo"Verifiez les donnees entreés : mot de passe non identique!!";
                }
                
                                    else
                    {///ajout
                    $data = array(
                        'nom' => $nom,
                        'login' => $login,
                        'pwd'  => $pwd,
                        'num_serv' =>$service,
                        'droit'  => $droit,
                                  );

             $util = new Utilisateur();
             $util->insert($data);
            
                $this->_redirect('/');
                return;
            }
            }
            else///les champs ne sont pas remplis
            {
            echo" Vous devez remplir tous les champs !";
    }    }

maintenent je veux que le mot de passe soit unique pour chaque utilisateur ainsi que le login


j'ai creer une requete qui comporte le login et le pwd de table utilisateur

Code:

$infos="SELECT login,pwd FROM `consultation1`.`utilisateur` ";

        $this->infos = $GLOBALS['db']->fetchAll($infos);

puis dans mon test j'ai ajouter au code precedent

Code:

if ($nom != '' && $login != '' && $pwd != '' && $pwd2 != '' && $service != ''&& $droit!='') /*test sur le remplissage des champs

{

    if($pwd !=$pwd2)///verification de mot de passe
                {
                    
                    echo"Verifiez les donnees entreés : mot de passe non identique!!";
                
                
foreach($this->infos as infos)

{
   if(info['login']==$login || infos['pwd']==$pwd)
echo " login ou mot de passe existant";

}endforeach


}
else 
{

        {///ajout
                    $data = array(
                        'nom' => $nom,
                        'login' => $login,
                        'pwd'  => $pwd,
                        'num_serv' =>$service,
                        'droit'  => $droit,
                                  );

             $util = new Utilisateur();
             $util->insert($data);
            
                $this->_redirect('/');
                return;
            }
            }
            else///les champs ne sont pas remplis
            {
            echo" Vous devez remplir tous les champs !";
    }    }

ce code génère une erreur de if et else???

et est ce que je peux faire foreach comme que j'ai écris ???
merci de m'aider

Hors ligne

 

#2 01-04-2008 12:08:04

fizzbanana
Membre
Date d'inscription: 29-05-2007
Messages: 40

Re: verification de login et mot de passe

il y a un erreur dans le foreach et aussi dans le if.

Code:

foreach($this->infos as $info)

{
   if($info['login']==$login || $info['pwd']==$pwd)
echo " login ou mot de passe existant";

}

Dernière modification par fizzbanana (01-04-2008 14:09:26)

Hors ligne

 

#3 01-04-2008 13:34:51

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: verification de login et mot de passe

Ton code ne veut strictement rien dire, y a des erreurs de partout,
Ca commence par un commentaire "/*test sur le remplissage des champs" qui n'est pas fermé, donc tout ton code est commenté hmm
Donc déja à partir de la deuxieme ligne ça risque pas d'être interprété .

- Des double crochets ouvrants.

Code:

else 
{

        {///ajout

Un foreach traité n'importe comment (correction ci dessous)

Code:

foreach($this->infos as $info)
{
   if($info['login']==$login || $info['pwd']==$pwd)
echo " login ou mot de passe existant";

}//endforeach

Le pire c'est

Code:

else 
{

        {///ajout
                    $data = array(
                        'nom' => $nom,
                        'login' => $login,
                        'pwd'  => $pwd,
                        'num_serv' =>$service,
                        'droit'  => $droit,
                                  );

             $util = new Utilisateur();
             $util->insert($data);
            
                $this->_redirect('/');
                return;
            }
            }
            else///les champs ne sont pas remplis
            {
            echo" Vous devez remplir tous les champs !";
    }    }

C'est stictement incompréhensible, essaye d'abord de faire un code propre indenté, de ne pas ouvrir de crochet n'importe quand et n'importe ou.

Bref impossible de t'aider avec ton code hmm.

Concernant l'utilité de ton code, c'est du n'importe quoi d'interdire d'utiliser le mot de passe d'un autre, c'est inimaginable de pouvoir penser faire un truc pareil!
Pour le pseudo ok ! mais vérifier l'existance du mot de passe est une abération !

Encore "de plus" big_smile , tu charges complètement un tableau avec tous les user/mdp en mémoire juste pour tester si le mdp/user entré existe déja!
Tu ne penses pas qu'il serait mieux de faire en SQL :
Select count(*) from matable where motdepasse = mot_depasse_entré OR login=login_entré
Si ça te retourne plus de 1, c'est que l'un des deux existe déja ! Pas la peine de parser toute la table en php , le SQL est la pour ça!
Bref ...

Dernière modification par sebondus (01-04-2008 13:45:19)

Hors ligne

 

#4 01-04-2008 14:12:59

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

Re: verification de login et mot de passe

merci de tes remarque c'est que j'ai ecrit n'est pas actuellement dans mon controllers car je l'est tester et je l'ai effacer je l'ai réécris  sur le forum directement tu as raison il y a des fautes désolé j' ai été pressée

ok je suis convaincue pour le mot de passe

maintenant je vais tester sur le login et je vais exécuter ta requête pour le login et non le mot de passe . et je vais voir le resultat
merci encore et désolé encore:Dbig_smile

Hors ligne

 

#5 01-04-2008 14:17:04

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: verification de login et mot de passe

Ne sois pas désolé big_smile

Hors ligne

 

#6 01-04-2008 14:32:08

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

Re: verification de login et mot de passe

salut

j'ai un probleme voici ma requete

Code:

$infos="Select count(*) from `consultation1`.`utilisateur` where login ='".$login."' ";
         $this->infos = $GLOBALS['db']->fetchAll($infos);

mais je ne sais pas comment recuperer le resultat de cette requet dans une variable pour la tester est ce que c'est >1 ou non comment attribuer le resultat à un evariable???

merci de m'aider

Hors ligne

 

#7 01-04-2008 14:45:01

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: verification de login et mot de passe

Code:

$select = $GLOBALS['db']->select()
             ->from(`consultation1`.`utilisateur`,
                    array('nombre_meme_login' => 'COUNT(*)'))
             ->where('login=?', $login);

$stmt = $select->query();
$result = $stmt->fetchAll();

http://framework.zend.com/manual/fr/zend.db.select.html

Dernière modification par sebondus (01-04-2008 14:45:50)

Hors ligne

 

#8 01-04-2008 14:57:46

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

Re: verification de login et mot de passe

big merci sebondus  big_smile big_smile

merci beaucoup sa marché bien maintenant je ne peux pas ajouter deux utilisateurs qui on le meme login merci encore
  wink

Dernière modification par yosra (01-04-2008 14:58:18)

Hors ligne

 

#9 01-04-2008 15:12:22

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

Re: verification de login et mot de passe

voici ma fonction complete et sans faute et marche wink

Code:

$util = new Utilisateur();
        if ($this->_request->isPost()) {
            Zend_Loader::loadClass('Zend_Filter_StripTags');
            $filter = new Zend_Filter_StripTags();

            $nom = $filter->filter($this->_request->getPost('nom'));
            $nom= trim($nom);
            $login = trim($filter->filter($this->_request->getPost('login')));
            $pwd = trim($filter->filter($this->_request->getPost('pwd')));
            $pwd2 = trim($filter->filter($this->_request->getPost('pwd2')));
            $service = trim($filter->filter($this->_request->getPost('serv')));
            $droit = trim($filter->filter($this->_request->getPost('droit')));
             
                    
            ////////***Les test**//////////
         $select = $GLOBALS['db']->select()
             ->from(`consultation1`.`utilisateur`,
                    array('nombre_meme_login' => 'COUNT(*)'))
             ->where('login=?', $login);

            $stmt = $select->query();
            $result = $stmt->fetchAll();
             
             if ($nom != '' && $login != '' && $pwd != '' && $pwd2 != '' && $service != ''&& $droit!='') {
                     
                    
                    if($pwd !=$pwd2 )
                        
                                
                    echo"Verifiez les donnees entreés : mot de passe non identique!!";
                    
                  else 
                  if ($result >1)                                
                    echo "Login existant";
                    
                
                
                else
                    {
                    $data = array(
                        'nom' => $nom,
                        'login' => $login,
                        'pwd'  => $pwd,
                        'num_serv' =>$service,
                        'droit'  => $droit,
                                  );

             $util = new Utilisateur();
             $util->insert($data);
            
                $this->_redirect('/');
                return;
            }
            }
            else
            {
            echo" Vous devez remplir tous les champs !";
    }    } 

        // set up an "empty" fournisseur
        $this->view->utilisateur = $util->createRow();;

        // additional view fields required by form
        $this->view->action = 'ajouterutil';
        $this->view->buttonText = 'Ajouter';
    }

Dernière modification par yosra (01-04-2008 15:12:57)

Hors ligne

 

#10 01-04-2008 15:16:37

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: verification de login et mot de passe

if ($result >1)       

Ca veut dire que s'il est = 1 , ça passe alors que le login existe ...

Hors ligne

 

#11 01-04-2008 15:31:29

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

Re: verification de login et mot de passe

si j'ai compris c'est que tu veux dire c'est quand on a un utilisateur qui a ce même login il enregistre comme même
c'est logique donc je modifie ça

Code:

if ($result >1)

par

Code:

if ($result >=1)

j'ai tester d'un login qui existe une seule fois dans ma table déjà faite et l'insertion n'est pas faite avec code 

Code:

if ($result >1)

mais croyez moi qu'il a refuser d'ajouter pourquoi meme que le résultat =1??

Dernière modification par yosra (01-04-2008 15:31:59)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages