Page de connexion

Eléphant du PHP | 424 Messages

11 août 2006, 16:18

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
Modifié en dernier par Dom! le 11 août 2006, 16:53, modifié 2 fois.
Youpi Youpi Yo !

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

11 août 2006, 16:23

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é ?
Modifié en dernier par ouckileou le 11 août 2006, 16:25, modifié 1 fois.

Eléphant du PHP | 184 Messages

11 août 2006, 16:24

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?
Image

Eléphant du PHP | 424 Messages

11 août 2006, 16:26

Oui la table est correcte...

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

Merci pour vos réponses
Youpi Youpi Yo !

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

11 août 2006, 16:31

Il n'est pas interdit de tenir des comptes des remarques et d'éditer son message en conséquence... :P

Eléphant du PHP | 424 Messages

11 août 2006, 16:34

Ok c'est fait ! Incroyable qu'a mon age je ne sache pas écrire connexion...

Merci :D
Youpi Youpi Yo !

Eléphant du PHP | 184 Messages

11 août 2006, 16:35

Ta condition if($utilisateur) me parait un peu louche :wink:
Image

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

11 août 2006, 16:39

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
Modifié en dernier par ouckileou le 11 août 2006, 16:43, modifié 1 fois.

Eléphant du PHP | 424 Messages

11 août 2006, 16:41

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
Youpi Youpi Yo !

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

11 août 2006, 16:44

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)

Eléphant du PHP | 424 Messages

11 août 2006, 16:55

Bien vu je n'y avais pas pensé... :roll:

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

Petit nouveau ! | 4 Messages

12 août 2006, 22:28

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 
        } 
} 


Eléphant du PHP | 424 Messages

14 août 2006, 15:20

Ca marche paaaas !!! :?
Youpi Youpi Yo !

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 août 2006, 15:21

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 ?