Gestion_des utilsateurs

Tar06 Messages postés 120 Date d'inscription vendredi 27 mars 2015 Statut Membre Dernière intervention 5 juillet 2023 - Modifié par Tar06 le 27/04/2015 à 20:47
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 28 avril 2015 à 13:51
Bonjour,
Je me connecte a une base de donnee , j'ai une table personnel ou il y a les personnes qui ont le privilege de se conneter comme administrateur ou user , mais j'arrive pas a gerer cela a partir de la base de donnee
table personne
CREATE TABLE IF NOT EXISTS `personnel` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(155) NOT NULL,
`prenom` varchar(120) NOT NULL,
`login` varchar(110) NOT NULL,
`password` int(11) NOT NULL,
`profil` varchar(144) NOT NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `password` (`password`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

Voici le code de la connection :
 <?php
if(isset($_POST['connexion']) && $_POST['connexion']=='Connexion'){
$idcon=mysql_connect("localhost","root","");
mysql_select_db("GESTIONPERSONNEL",$idcon);

$login=$_POST['login'];
$password=$_POST['password'];
$reqet=("select * from personnel where Login='$login' and Password='$password'");
$reqet1=mysql_query($reqet)or die("".mysql_error());
$resul=0;
$dep="";
while($res=mysql_fetch_row($reqet1)){
$resul++;
$dep=$res['1'];
}
if($resul>0){
if('log='.$login.'&pass='.$password.'&dep='.$dep) {
header('Location:Menu.php');

}
//header('Location:Menu1.php');
}
else { echo "<script>alert('le mot de pass ou le password est incrrect');</script>"; }

}
?>

Comment peut-on évoluer le code pour qu'il me permet de gérer les utilisateurs a partir de la base?
Merci d'avance

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
27 avril 2015 à 21:20
Bonjour,

Tu persistes à vouloir utiliser l'extension Mysql_* .... as tu lu le lien que je t'ai déjà donné à de multiples reprises ?
A savoir :
http://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top


Ensuite... à quoi sert cette ligne de code ci-dessous :
 if('log='.$login.'&pass='.$password.'&dep='.$dep) {

Ca ne signifie rien en PHP .... que souhaites tu faire avec ça ??



A mon avis tu voulais faire ça :

1 - Mettre le code de connexion à ta BDD dans un fichier à part que tu inclus uniquement quand tu en as besoin
<?php
// Fichier : cnx_bdd.php
 $idcon=mysql_connect("localhost","root","");
  mysql_select_db("GESTIONPERSONNEL",$idcon); 

?>


2 - Et dans ton script :
<?php
// On inclus le fichier de connexion à la BDD cnx_bdd.php
require_once 'cnx_bdd.php';

//récupération des variables :
$login=isset($_POST['login'])?$_POST['login']:NULL;
$password=isset($_POST['password'])?$_POST['password']:NULL;

// Traitement du Submit :
if(isset($_POST['connexion']) && $_POST['connexion']=='Connexion'){
      
 $sql= "SELECT * from personnel WHERE login='$login' and password='$password'";
 $reqet1 = mysql_query($sql)or die("".mysql_error());
 
  $resul = mysql_num_rows($reqet1);
  if($resul>0){
          header('Location:Menu.php');
  } else { 
    echo "<script type='text/javascript'>
               alert('le mot de pass ou le password est incorrect');
             </script>";    
 }                
  
}// Fin IF $_POST
?>



NB : La comparaison en PHP se fait avec == ou === ... mais pas avec un seul '=' !
Nb² : Pour connaitre le nombre de résultats il suffit d'utiliser la fonction mysql_num_rows... pas besoin de faire de boucle !
NB3 : Dans les requêtes .. respecte les minuscules et les majuscules !!!

NB4 : A quoi devrait correspondre le $dep selon toi ?
Sachant que tu n'as aucun champ portant comme nom 1 ... et que pour faire appel à un indice (numérique) dans un array.. il ne faut pas utiliser de quote :
$dep=$res['1']; // Récupère le contenu de la colonne nommée '1'
$dep=$res[1]; // récupère le deuxième élément du tableau ( un array commençant à 0 )




0
Tar06 Messages postés 120 Date d'inscription vendredi 27 mars 2015 Statut Membre Dernière intervention 5 juillet 2023
28 avril 2015 à 13:33
Merci frere jordane45 de votre réponse mais sa manque , par exemple j'ai un groupe d'utilisateur et n'ont pas la même privilège , seule l'administrateur qui peut ajouter ,modifier ou supprimer un employer par exemple , et si on est connecté comme un user on n'a pas le droit d'ajouter un personnel ni un employer ou le modifier ou le supprimer .
Le champs profil qui est dans la table personnel a partir de lui qu'on doit gérer les personnels(Exemple si profil=1 tu es administrateur,2 user).
Merci d'Avance
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
28 avril 2015 à 13:51
Et pour "stoker" dans quel profil l'utilisateur est lorsqu'il navigue sur ton site... j'utiliserai les variables de session...

  $_SESSION['profil'] = $profil;


Ce qui donne dans ton code actuel :
<?php
// Ne pas oublier le SESSION_START au début de ta page!
if(session_id() == '') {
 session_start();
}
    

// On inclus le fichier de connexion à la BDD cnx_bdd.php
require_once 'cnx_bdd.php';

//récupération des variables :
$login=isset($_POST['login'])?$_POST['login']:NULL;
$password=isset($_POST['password'])?$_POST['password']:NULL;

// Traitement du Submit :
if(isset($_POST['connexion']) && $_POST['connexion']=='Connexion'){
   


 $sql= "SELECT * from personnel WHERE login='$login' and password='$password'";
 $reqet1 = mysql_query($sql)or die("".mysql_error());
 $row = mysql_fetch_row($reqet1);
 $resul = mysql_num_rows($reqet1);

  $_SESSION['profil'] = $row['profil'];
  if($resul>0){
       header('Location:Menu.php');
  } else { 
    echo "<script type='text/javascript'>
               alert('le mot de pass ou le password est incorrect');
             </script>";    
 }                
  

}// Fin IF $_POST
?>



Ensuite... sur chaque page.. tu pourras regarder quel profil as ton user... et faire les actions en conséquences...
$profil = isset( $_SESSION['profil'])? $_SESSION['profil']:NULL;

// soit avec un IF .....

if($profil == 1){
  echo "<br> Je suis Admin !!";
}

// Soit avec un Switch
      switch($profil){
        
         case "1" :
            //tu es admin
           // ici tu places le code pour les admin
          break;
         case "2" :
            //tu es user
           // ici tu places le code pour les user
          break;   
         default :
            //profil inconnu
           // ici tu places le code dans le cas ou le profil n'est pas défini dans la BDD
          break;  
      }  
0
Rejoignez-nous