Tar06
Messages postés120Date d'inscriptionvendredi 27 mars 2015StatutMembreDernière intervention 5 juillet 2023
-
Modifié par Tar06 le 27/04/2015 à 20:47
jordane45
Messages postés38106Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention26 mars 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 ;
<?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 )
Tar06
Messages postés120Date d'inscriptionvendredi 27 mars 2015StatutMembreDerniè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
jordane45
Messages postés38106Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention26 mars 2024344 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;
}
28 avril 2015 à 13:33
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