Connexion Utilisateurs

Eléphant du PHP | 70 Messages

23 févr. 2009, 09:58

Bonjour a tous,
Je suis un p'ti nouveau sur ce site qui m'a été conseiller par un ami donc j'ai toute confiance en vous pour essayer de comprendre et de résoudre mon problème.
Mon problème est la suivant :

Je dois développer une application pour le service d'une entreprise (je passe vite sur les détails). Cette application sera utilise par divers utilisateurs n'ayant pas tous les mêmes fonctionnalités, aussi je suis donc obliger de réaliser un système de connexion via leur n° d'employé. C'est la que les choses ce compliquent . Mon code qui pourtant me semble logique jusqu'à présent, bloque à un endroit et je n'arrive pas a comprendre pourquoi. Il n'arrive pas a rentré dans la boucle ci-dessous, je compte sur vous pour m'aider et me dire pourquoi. MERCI !!
<?php 
        include ("connexion.php"); // Ouverture de la base de donnees 
        if(!empty($_POST['num_employe'])) //Si la zone de texte n'est pas vide 
        {         
            echo 'toto1'; 
            $num_employe=$_POST['num_employe'];  
            $sql = "select level_employe from employer where NumEmploye='$num_employe'"; //Requete permettant de savoir si la valeur est dans la base de donnees 
            $req = mysql_query($sql) or die('Erreur SQL! '.$sql.''.mysql_error()); // en cas d'erreure 
            $data = mysql_fetch_assoc($req); //les resultats de la requete est dans une variable  
            if($data['level_employe']==null) // Si la requete ne retourne rien 
            { 
                $valide=5; // La variable valide prend la valeur 5 
            } 
            elseif ($data['level_employe']== 1) //Si la requete retourne "admin" 
            { 
                $valide=1; // La variable valide prend la valeur 1    
                $_SESSION['num_employe'] = $num_employe; // La valeur est sauvegarder dans une variable de session 
            } 
            elseif ($data['level_employe']== 2) //Si la requete retourne "admin" 
            { 
                $valide=2; // La variable valide prend la valeur 2     
                $_SESSION['num_employe'] = $num_employe; // La valeur est sauvegarder dans une variable de session 
            } 
            elseif ($data['level_employe']== 3) //Si la requete retourne "admin" 
            { 
                $valide=3; // La variable valide prend la valeur 3     
                $_SESSION['num_employe'] = $num_employe; // La valeur est sauvegarder dans une variable de session 
            } 
            elseif ($data['level_employe']== 4) //Si la requete retourne "admin" 
            { 
                $valide=4; // La variable valide prend la valeur 4    
                $_SESSION['num_employe'] = $num_employe; // La valeur est sauvegarder dans une variable de session 
            } 
            mysql_close();  //fermeture de la base de donnees 
        } 
        ?> 

ps:Le echo 'toto1'; n'est la que pour mes test ^^



voici ma solution
if($_POST['num_employe'] != "")

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 févr. 2009, 10:55

Modération :
Arkonara, bienvenue :)
mais le multipostage est interdit sur le forum.

Merci de prendre le temps de lire les règlements.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
AB
ViPHP | 5818 Messages

23 févr. 2009, 22:52

C'est auto résolu alors :wink:

Juste pour dire que ton code est l'exemple typique où l'usage d'un switch rendrait l'écriture plus lisible que la suite de elseif
switch ($data['level_employe']) {
	case 1: $valide=1;$_SESSION['num_employe'] = $num_employe;break;
	case 2: $valide=2;$_SESSION['num_employe'] = $num_employe;break;
	case 3: $valide=3;$_SESSION['num_employe'] = $num_employe;break;
	case 4: $valide=4;$_SESSION['num_employe'] = $num_employe;break;
    default: $valide=5;
	}
D'un autre côté tu pourrais peut-être écrire plus simplement
if (!empty($data['level_employe'])) 
 {
 $valide = $data['level_employe']; 
 SESSION['num_employe'] = $num_employe;
 } 
else $valide=5;