Condition if + requête SQL

M0nk36
Invité n'ayant pas de compte PHPfrance

04 août 2011, 16:01

Bonjour à tous,

Je suis débutant en développement web et j'ai un petit soucis avec une condition IF.
Mon besoin :

Identification correcte, Si UT_Admin = 1 alors redirection vers admin_accueil.php sinon redirection vers accueil.php
Identification incorrecte, redirection vers la page en cours avec message d'erreur.

Code : Tout sélectionner

<?php session_start(); include("fonction.php"); connect(); $nom = addslashes($_POST['nom']); $mdp = addslashes($_POST['mdp']); $r = mysql_query("Select UT_Nom, UT_MotDePasse, UT_Admin from utilisateur where UT_Nom ='$nom' and UT_MotDePasse ='$mdp'"); if (mysql_num_rows($r)==1) { if(($UT_Admin)==1){ $_SESSION['login']=1; header("location:admin_accueil.php"); } else { $_SESSION['login']=1; header("location:accueil.php"); } } else { $_SESSION['login']=2; header("location:index.php"); } ?>
Identification incorrecte, ça fonctionne, mais identification correcte, il me redirige toujours vers accueil.php même avec des identifiants de connexion ou admin=1.

Merci par avance.

ViPHP
ViPHP | 2577 Messages

04 août 2011, 16:14

Bonjour,

Il faut lire les données, cf mysql_fetch_assoc().

Eléphanteau du PHP | 15 Messages

05 août 2011, 09:33

Bonjour,
j'ai regardé : mysql_fetch_assoc() mais ça me semble complexe, j'aimerais savoir si quelqu'un pouvais adapter cette fonction avec mon code pour que je puisse la comprendre et pouvoir la remettre en application par la suite ?

Merci beaucoup.

ViPHP
xTG
ViPHP | 7331 Messages

05 août 2011, 10:12

Bonjour,
j'ai regardé : mysql_fetch_assoc() mais ça me semble complexe, j'aimerais savoir si quelqu'un pouvais adapter cette fonction avec mon code pour que je puisse la comprendre et pouvoir la remettre en application par la suite ?

Merci beaucoup.
Cas typique d'une personne n'ayant pas lu les exemples de la documentation...
On est pas là pour faire vos applications à votre place mais vous dépanner. :non:
Si la documentation te semble complexe dans ses exemples c'est que ton actuel code te le semble aussi... Auquel cas il serait plus intéressant de comprendre avant tout ce code ci.
Modifié en dernier par xTG le 05 août 2011, 10:14, modifié 1 fois.

Eléphant du PHP | 73 Messages

05 août 2011, 10:14

essaye ça :
$r = mysql_query("Select UT_Nom, UT_MotDePasse, UT_Admin from utilisateur where UT_Nom ='$nom' and UT_MotDePasse ='$mdp'");
while ($data = mysql_fetch_assoc($r)) {

   if ($data['UT_Admin'] == "1") {
	// redirection page admin
    } else {
	// redirection page classique
    }

}

ViPHP
ViPHP | 2577 Messages

05 août 2011, 11:25

Bonjour,
if (mysql_num_rows($r)==1) {
   $data = mysql_fetch_assoc($r);
   if(($data['UT_Admin'])==1){
1 ligne ajoutée et 1 ligne modifiée

Sauf erreur de ma part, ca doit marcher.

Eléphanteau du PHP | 15 Messages

08 août 2011, 09:46

Bonjour,
Merci a vous, olivierg, ton code a fonctionné et j'ai compris comment fonctionnait la fonction.

Merci.
Topic Résolu.