J'essaye de faire ma page de connexion PHP en essayant de gérer deux droits :
-administrateur (moi)
-membres
Je n'ai pas d'erreur mais quand je me connecte avec un compte administrateur ou un compte membre, il me met toujours :
Vous êtes authentifié. Merci, vous allez être redirigé dans 5 secondes cher membre.
Voici le code PHP :
// Sélectionnement de l'utilisateur désiré dans la base de données
$query_connexion_generale=mysql_query("SELECT user_pseudo FROM user WHERE user_pseudo = '$identifiant_connexion' AND user_mdp = '$password_connexion_sha1'") or die('Erreur lors de la connexion générale'.mysql_error()); // Envoie une requête à un serveur MySQL
$query_connexion_administrateur=mysql_query("SELECT user_pseudo FROM user WHERE user_pseudo = '$identifiant_connexion' AND user_mdp = '$password_connexion_sha1' AND `user_acces` = '1'") or die('Erreur lors de la connexion de l\'administrateur'.mysql_error()); // Envoie une requête à un serveur MySQL
// Test si l'utilisateur est inscrit - réponse positive
if(mysql_num_rows($query_connexion_generale) == 1) { // mysql_num_rows retourne le nombre de lignes d'un résultat MySQL
if(mysql_num_rows($query_connexion_administrateur) == 1) { // mysql_num_rows retourne le nombre de lignes d'un résultat MySQL
$_SESSION['statut_connexion'] == Administrateurs;
echo "<center>Vous êtes authentifié. Merci, vous allez être redirigé dans 5 secondes cher admin.</center>";
echo '<meta http-equiv="refresh" content="5;URL=adresse.php">'; // Pour effectuer la redirection après 5 secondes - marche avec Google Chrome et Opera pas avec Mozilla Firefox
}
else
echo "<center>Vous êtes authentifié. Merci, vous allez être redirigé dans 5 secondes cher membre.</center>";
echo '<meta http-equiv="refresh" content="5;URL=/adresse.php">'; // Pour effectuer la redirection après 5 secondes - marche avec Google Chrome et Opera pas avec Mozilla Firefox
$_SESSION['statut_connexion'] == Membres;
}
J'explique mon raisonnement : je commence dans le cas général (
$query_connexion_generale
) pour savoir si le pseudo de l'utilisateur est dans la base de données. Après, j'essaie de lui dire (c'est là que je n'arrive pas) : si le pseudo saisi est égal au pseudo de l'administrateur dans la base de données (
) sinon tu ne fais pas le if imbriqué. Par contre si le pseudo saisi ne rentre pas dans les deux tests if alors ça veux dire qu'il n'est pas dans la base de données et donc pas inscrit, tu ne fait pas les deux tests et tu passes directement dans
else
echo "<center>Vous n'êtes pas inscrit. Merci de vous inscrire.</center>";}
. Ce test est tout en bas.
Pour information, voici le CREATE TABLE de la table "user" :
CREATE TABLE IF NOT EXISTS `user` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`user_comptesactives` decimal(10,0) NOT NULL,
`user_pseudo` varchar(255) CHARACTER SET utf8 NOT NULL,
`user_mdp` varchar(255) CHARACTER SET utf8 NOT NULL,
`user_inscription` datetime NOT NULL,
`user_naissance` date NOT NULL,
`user_email` varchar(255) CHARACTER SET utf8 NOT NULL,
`user_localisation` varchar(255) CHARACTER SET utf8 NOT NULL,
`user_profession` varchar(255) CHARACTER SET utf8 NOT NULL,
`user_avatars` varchar(255) CHARACTER SET utf8 NOT NULL,
`user_derniere_visite` datetime NOT NULL,
`user_bannis` int(11) NOT NULL,
`user_acces` int(1) unsigned NOT NULL DEFAULT '2',
PRIMARY KEY (`user_id`),
UNIQUE KEY `user_pseudo` (`user_pseudo`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=88 ;
Est-ce que mon raisonnement est logique ? Qu'est-ce qu'il ne va pas ?
En attendant vos réponses, je continue mes recherches...
Cordialement
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 21 févr. 2013 à 12:34
Dans le code retranscrit tu as des erreurs de crochet.
Quant au raisonnement je suis pas sûr de l'avoir compris, en tout cas ce qu'il faut faire c'est requêter suivant usr/mdp et changer l'affichage suivant la valeur de user_acces (qui semble être ton discriminant pour l'admin).
J'ai expliqué simplement, tu n'auras pas d'autres explications ni de code.
Bon dev.
PS : stp arrête de poster dans SQL, c'est clairement avec le PHP que t'as des problèmes à chaque fois.