Page 1 sur 1

Module de connexion

Posté : 29 nov. 2010, 14:28
par Titiii
Bonjour à tous,
J'essaye de faire un module de connexion pour mon site. Rien à faire, ça ne marche pas.
Aucune erreur d'affichées, mais quand je clique sur envoyer, ça me met la page de connexion comme si j'avais cliqué sur connexion.php

Code : Tout sélectionner

<span>Connexion</span><br /> <?php if ($_POST['pseudo'] == 1) { $verifPseudo = htmlspecialchars($_POST['pseudo']); $verifPass = htmlspecialchars($_POST['pass']); include('connexion_bdd.php'); $result = mysql_query("SELECT * FROM membres WHERE pseudo='$verifPseudo'"); if($result == 0) { echo'Erreur, le pseudo est incorrect.'; } else if($result != 0) { if($verifPass != $result['pass']) { echo'Erreur, le mot de passe est incorrect'; } else if($verifPass == $result['pass']) { $_SESSION['pseudo'] = $result['pseudo']; $_SESSION['rang'] = $result['rang']; $_SESSION['connecter'] = 1; echo'Vous êtes bien connecté, merci :) <br /> Vous allez être redirigé vers la page d\'accueil.'; print ("<script language = \"JavaScript\">"); print ("location.href = 'accueil.php';"); print ("</script>"); } else { echo'Erreur, veuillez recommencer.'; } } else { echo'Erreur, vueillez recommencer.'; } mysql_close(); } else { ?> <em>Entrez vos identifiants</em> <br /><br /> <form method="post" action="connexion.php"> <p> <label name="labPseudo" for="pseudo"> Pseudo </label> <input type="text" name="pseudo" id="pseudo" maxlength="50" /> </p> <p> <label name="labPass" for="pass"> Mot de passe </label> <input type="password" name="pass" id="pass" maxlength="50" /><br /> </p> <p> <input type="submit" name="Envoyer !"/> <input type="reset" name="Remettre à zéro"/><br /> </p> <?php } ?>
Session_start est bien mis au début du code.

Merci d'avance pour votre aide.

Re: Module de connexion

Posté : 29 nov. 2010, 14:50
par xTG
Cela provient de ta première condition.
$_POST['pseudo'] == 1
Le pseudo est-il le chiffre 1 ?
Si c'est une vérification que le pseudo a été transmis il faut utiliser :
if( !empty($_POST['pseudo']) )
=> Vérification que la variable existe et qu'elle n'est pas vide.

Re: Module de connexion

Posté : 29 nov. 2010, 15:07
par devlop78
Je rajoute aussi que les données $_POST sont toujours des chaines de caractères ou tableaux (sauf éventuellement rares cas). == '1' serait plus approprié.

Re: Module de connexion

Posté : 29 nov. 2010, 15:47
par Titiii
J'ai modifié, mais maintenant, n'importe ce que je marque, ça me "connecte"...

Code : Tout sélectionner

<?php if(!empty($_POST['pseudo'])) { $verifPseudo = htmlspecialchars($_POST['pseudo']); $verifPass = htmlspecialchars($_POST['pass']); include('connexion_bdd.php'); $result = mysql_query("SELECT * FROM membres WHERE pseudo='".$verifPseudo."' && pass='".$verifPass."'"); if($result != 0) { $_SESSION['pseudo'] = $result['pseudo']; $_SESSION['rang'] = $result['rang']; $_SESSION['connecter'] = 1; $_SESSION['points'] = $result['points']; $_SESSION['histoire'] = $result['histoire']; echo'Vous êtes bien connecté, merci :) <br /> Vous allez être redirigé vers la page d\'accueil.'; print ("<script language = \"JavaScript\">"); print ("location.href = 'index.php';"); print ("</script>"); } else if($result == 0) { echo'Erreur, le pseudo ou le mot de passe est incorrect.'; } else { echo'Erreur, vueillez recommencer.'; } mysql_close(); } else { ?>

Re: Module de connexion

Posté : 29 nov. 2010, 16:17
par Invité
salut

fais un var_dump ou print_r de ton $_POST pour verifier les valeurs récuperées.
fais un ' die' pour ton query dans result pour voir si ta connexion se passe bien...

enfin
fais un var_dump de ton result et un print_r de $_SESSION , tu y verras ton erreur ( en gros faut que tu boucles ton result : fetch_array, object, row au choix ou voir num_rows.... )
ici dans ton exemple $result ne sera jamais==0

http://www.phpdebutant.org/article66.php
a++ :)

Re: Module de connexion

Posté : 29 nov. 2010, 16:44
par Titiii
Je comprend pas !
ça marque :

resource(5) of type (mysql result)
Array ( [pseudo] => [rang] => [connecter] => 1 [points] => [histoire] => )

Re: Module de connexion

Posté : 29 nov. 2010, 18:15
par xTG
mysql_query() te renvoie une ressource et non un élément pouvant t'indiquer si tu as récupéré ce que tu voulais.
Relis (lis ?) l'article donné précédemment et tu comprendras ce qu'il faut utiliser.