Page 1 sur 1

Page de connexion

Posté : 11 août 2006, 16:18
par Dom!
Bonjour,

J'ai réalisé une page pour se connecter à mon site mais cela ne fonctionne pas, j'ai toujours le même message : "Echec d'authentification !!! > login ou mot de passe incorrect", malgrés que les données soit bonnes...
<?php require_once('Connections/SAGIP.php');
session_start(); // début de session
if (isset($_POST['pseudo'])){ // execution apres envoi du formulaire
		$pseudo = $_POST['pseudo']; // mise en variable du nom d'utilisateur
		$passe = md5($_POST['passe']); // mise en variable du mot de passe crypté
		// requete sur la table administrateurs (on récupère les infos de la personne)
		mysql_select_db($database_SAGIP, $SAGIP);
		$verif_query=sprintf("SELECT pseudo, passe FROM clients WHERE pseudo='$pseudo' AND passe='$passe'"); // requête sur la base administrateurs
		$verif = mysql_query($verif_query, $SAGIP) or die(mysql_error());
		$row_verif = mysql_fetch_assoc($verif);
		$utilisateur = mysql_num_rows($verif);
		if ($utilisateur) {    // On test s'il y a un utilisateur correspondant
				session_register("authentification"); // enregistrement de la session    
				// déclaration des variables de session
				$_SESSION['statut'] = $row_verif['statut']; // le privilège de l'utilisateur (permet de définir des niveaux d'utilisateur)
				$_SESSION['pseudo'] = $row_verif['pseudo']; // Son nom
				header("Location:accueil_membre.php"); // redirection si OK
		} else {
				header("Location:connection.php?erreur=login"); // redirection si utilisateur non reconnu
		}
}
// GESTION DE LA Déconnexion
if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){ // Test sur les paramètres d'URL qui permettront d'identifier un "contexte" de déconnexion
		$pseudo = $_SESSION['pseudo']; // On garde le prénom en variable pour dire au revoir (soyons polis Smile
		session_unset("authentification");
		header("Location:connection.php?erreur=delog");
}
?>
Pourriez vous vérifier si tout est ok ? Merci d'avance

Posté : 11 août 2006, 16:23
par ouckileou
Tout n'est pas ok, en français on écrit :

conneXion :axe:

Peut-être pourrais-tu aussi indenter ton code, ce qui faciliterait grandement la lecture.

As-tu testé la récupération des variables ? Mis des echos de contrôle ? Affiché le SQL généré ?

Posté : 11 août 2006, 16:24
par graphistnet
Je me pose deux questions :

1. l'appel se fait-il dans la bonne table? le commentaire évoque la table administrateurs hors la requete se fait dans la table clients

2. les mots de passe sont-ils cryptés dans la BDD?

Posté : 11 août 2006, 16:26
par Dom!
Oui la table est correcte...

Et dans ma table les mots de passes sont codés.

Merci pour vos réponses

Posté : 11 août 2006, 16:31
par ouckileou
Il n'est pas interdit de tenir des comptes des remarques et d'éditer son message en conséquence... :P

Posté : 11 août 2006, 16:34
par Dom!
Ok c'est fait ! Incroyable qu'a mon age je ne sache pas écrire connexion...

Merci :D

Posté : 11 août 2006, 16:35
par graphistnet
Ta condition if($utilisateur) me parait un peu louche :wink:

Posté : 11 août 2006, 16:39
par ouckileou
Edit : j'ai dit une bêtise, lu trop vite

Met des echos de contrôle :
- pour savoir si tu rentres bien dans le premier if()
- affiche tes variables
- affiche ta requête SQL et exécute la directement sur la base
- affiche le résultat du mysql_num_rows
- regarde si tu rentres dans le deuxième if

le if($utilisateur) devrait marcher mais ce serait plus clair comme ça :
if ($nb_utilisateurs == 1)
Là quand tu repasseras tu sauras vraiment ce que ça teste

Posté : 11 août 2006, 16:41
par Dom!
Non je ne vois pas ou je test deux fois la meme chose...

La premiere fois je test et ensuite j'enregistre la session, pourrais tu me dire ou tu vois cela ?
:shock:
Merci

Posté : 11 août 2006, 16:44
par ouckileou
Non je ne vois pas ou je test deux fois la meme chose...

La premiere fois je test et ensuite j'enregistre la session, pourrais tu me dire ou tu vois cela ?
:shock:
Merci
Nulle part, je me suis trompé. :)

P.S : c'est toi qui voit, mais moi à ta place je virerais mon @ email du code :) (celui posté ici je veux dire)

Posté : 11 août 2006, 16:55
par Dom!
Bien vu je n'y avais pas pensé... :roll:

Effectivement quand je mets des echo rien ne s'affiche....

Posté : 12 août 2006, 22:28
par sheed
Bonjour,

essaye de faire ces modifications :
 mysql_select_db($database_SAGIP, $SAGIP); 
        $verif_query=sprintf("SELECT pseudo, passe, statut FROM clients WHERE pseudo='$pseudo' AND passe='$passe'"); // requête sur la base administrateurs 

$verif = mysql_query($verif_query, $SAGIP) or die(mysql_error()); 
         
        $utilisateur = mysql_fetch_array($verif); 
        if (!empty($utilisateur['pseudo'])) {    // On test s'il y a un utilisateur correspondant 
                session_register("authentification"); // enregistrement de la session     
                // déclaration des variables de session 
                $_SESSION['statut'] = $utilisateur['statut']; // le privilège de l'utilisateur (permet de définir des niveaux d'utilisateur) 
                $_SESSION['pseudo'] = $utilisateur['pseudo']; // Son nom 
                header("Location:accueil_membre.php"); // redirection si OK 
        } else { 
                header("Location:connection.php?erreur=login"); // redirection si utilisateur non reconnu 
        } 
} 


Posté : 14 août 2006, 15:20
par Dom!
Ca marche paaaas !!! :?

Posté : 14 août 2006, 15:21
par ouckileou
Ca marche paaaas !!! :?
Ce genre de message ne nous est pas très utile...

Qu'est-ce que tu as changé depuis toutes les remarques ? Qu'est-ce qui ne fonctionne pas ? Est-ce que tu as des erreurs ?