Module de connexion

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Module de connexion

Re: Module de connexion

par xTG » 29 nov. 2010, 18:15

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.

Re: Module de connexion

par Titiii » 29 nov. 2010, 16:44

Je comprend pas !
ça marque :

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

Re: Module de connexion

par Invité » 29 nov. 2010, 16:17

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

par Titiii » 29 nov. 2010, 15:47

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

par devlop78 » 29 nov. 2010, 15:07

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

par xTG » 29 nov. 2010, 14:50

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.

Module de connexion

par Titiii » 29 nov. 2010, 14:28

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.