IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Erreur sortie de nulle part [PHP 5.4]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut Erreur sortie de nulle part
    Bonjour,

    erreur etrange que je rencontre.

    Voila le code de ma classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    class login extends mysql {
    	public $E;
    	public $S;
     
    	public function __construct() {}
     
    	public function verifPseudo($pseudo) {
    		$dbh = mysql::getInstance();
    		$sqlPseudo = "SELECT count(*) FROM account WHERE pseudo='$pseudo'";
    		$pseudoExist = $dbh->prepare($sqlPseudo);
    		$pseudoExist->execute();
     
    		if (isset($_POST['pseudo']) and isset($_POST['password']) && $pseudoExist->fetchColumn()) {
    			#Si le pseudo existe
    			if ($pseudoExist->fetchColumn()) {
                                    echo 'ok';
    				return true;
    			}	
    		}
    	}
     
    	public function verifPassword($pseudo, $password) {
    		$dbh = mysql::getInstance();
    		$sqlEntree = "SELECT count(*) password FROM account WHERE password='$password' and pseudo='$pseudo'";
    		$result = $dbh->prepare($sqlEntree);
            $result->execute();
            $reqEntree = $result->fetch(PDO::FETCH_ASSOC);
            $nbrEntree = $reqEntree['password'];
            echo $nbrEntree;
     
            if (login::verifPseudo($pseudo) == true) {
            	echo 'ok';
            }
            else {
            	echo 'error'; 
            }
     
     
     
    	}
     
    }

    et donc quand je vérifie si verifPseudo($pseudo), revoir true ou false, je constate que sa renvoie toujours, false.

    Je ne comprends pas....
    Pourtant sa affiche bien OK...

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu fais deux fois $pseudoExist->fetchColumn(), la deuxieme il vaut FALSE puisqu'il n'y avait qu'une seule ligne a lire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    J'ai fait une erreur en recopiant le code.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    class login extends mysql {
    	public $E;
    	public $S;
     
    	public function __construct() {}
     
    	public function verifPseudo($pseudo) {
    		$dbh = mysql::getInstance();
    		$sqlPseudo = "SELECT count(*) FROM account WHERE pseudo='$pseudo'";
    		$pseudoExist = $dbh->prepare($sqlPseudo);
    		$pseudoExist->execute();
     
    		if (isset($_POST['pseudo']) and isset($_POST['password'])) {
    			#Si le pseudo existe
    			if ($pseudoExist->fetchColumn()) {
                                    echo 'ok';
    				return true;
    			}	
    		}
    	}
     
    	public function verifPassword($pseudo, $password) {
    		$dbh = mysql::getInstance();
    		$sqlEntree = "SELECT count(*) password FROM account WHERE password='$password' and pseudo='$pseudo'";
    		$result = $dbh->prepare($sqlEntree);
            $result->execute();
            $reqEntree = $result->fetch(PDO::FETCH_ASSOC);
            $nbrEntree = $reqEntree['password'];
            echo $nbrEntree;
     
            if (login::verifPseudo($pseudo) == true) {
            	echo 'ok';
            }
            else {
            	echo 'error'; 
            }
     
     
     
    	}
     
    }
    Voila, cetre sa posait probleme, mais ce n'est pas le probleme dans mon cas, car sa ne marche pas meme en l'enlevant.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ou est défini $pseudo ?

    Pour largement simplifier ton fonctionnement tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT password FROM account WHERE and pseudo='$pseudo'";
    S'il n'y a aucun résultat, le login n'existe pas.
    S'il y a un résultat, il suffit de le comparer à $password.

    Au passage, pourquoi utiliser une requête préparé si tu ne met pas des variables en argument ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Oula j'ai pas compris.

    Déjà pour mon select, on va le laisser comme j'ai fait, je reviendrai après.

    Pour les requete preparer, je laisse sa comme sa.

    Je prefere d'abord regler mon probleme en priorité.


    Pour $login et $password, ils sont defini dans mon formulaire.

    Je repete encore.

    Je comprends pas pourquoi sa me renvoie pas true la fonction verifPseudo()

    Parce que une fois rentrer les info dans le formulaire (pseudo et password), j'ai bien ok qui s'affiche.

    Donc logiquement sa devrai etre bon et donc la fonction verifPassword($pseudo, $password), devrai être aussi bonne et renvoyé ok, mais rien ne se passe.

    bizarre, premiere fois que je rencontre un tel cas.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pour $login et $password, ils sont defini dans mon formulaire.
    Justement dans le code tu utilises parfois $pseudo et parfois $_POST['pseudo'] ca laisse supposer que ce n'est pas clairement ficelé.
    Que donne le echo $nbrEntree; ?

    j'ai bien ok qui s'affiche.
    Tu as verifié sur quelle fonction tu obtenais le "ok" ?

    Je prefere d'abord regler mon probleme en priorité.
    Ton premier problème c'est quand même que ton code est pour moi bizarrement organisé ; il faudrait mieux le repenser plutot que de lui coller des rustines.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Double quote qui viennent de nulle part
    Par mioux dans le forum Coldfusion
    Réponses: 4
    Dernier message: 26/04/2007, 14h42
  2. Erreur de segmentation venue de nulle part
    Par o00gourou00o dans le forum C
    Réponses: 8
    Dernier message: 21/07/2006, 10h32
  3. Une erreur venant de nullle part
    Par elaum dans le forum C
    Réponses: 4
    Dernier message: 18/09/2005, 00h02
  4. erreur de valaur nulle..qui ne l'est pas :-(
    Par bachilbouzouk dans le forum ASP
    Réponses: 7
    Dernier message: 20/04/2005, 09h52
  5. [CR10] Pquoi absence du message d'erreur sur les Nulls ?
    Par speed034 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 30/11/2004, 16h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo