session: utilisateur vs admin (merci TRUC :) )

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : session: utilisateur vs admin (merci TRUC :) )

par Truc » 17 oct. 2007, 00:11

Au plaisir :wink:

Tu n'as pas besoin d'éditer ton 1er message juste cliquer sur le bouton Image en haut à gauche de ce sujet.

par choubix » 16 oct. 2007, 22:39

ca marche au poil :)

vraiment merci de passer du temps a repondre a ces questions qui doivent sembler vraiment tres simple avec un peu d'experience derriere soi...

j'ai rajoute un switch apres pour differencier le cas 0 ou 1. ca marche pas mal

je me derouille, ca revient :)

par Truc » 16 oct. 2007, 22:17

Tu ajoutes... tu peux stocker un paquet de choses en session. Tu peux donc avoir un "in" et un "level"... le nom, prénom, mail etc.

$data = mysql_fetch_assoc($result);
$_SESSION['in'] = true;
$_SESSION['level'] = $data["evel"]; // pour un champ "level" de la base de données.

par choubix » 16 oct. 2007, 21:31

hello Truc,

pour stocker le "level" en variable de session puis faire mon test ("if" je suppose): je dois repasser par un SELECT dans ma table? ou je remplace mon SESSION['in'] par SESSION['level'] ??

merci

Re: session: utilisateur vs admin

par Truc » 16 oct. 2007, 21:11

Piur la redirection tu l'as dis toi même :
si level = 0 => index.php si level = 1 => admin/index.php
Donc a prendre en compte dans le header()

Pour vérifier si un membre essaie d'accéder à une page non autorisée tu peux ajouter un simple test en debut de fichier:
if( $_SESSION['level'] != 1)
  header('Location: index.php');

session: utilisateur vs admin (merci TRUC :) )

par choubix » 16 oct. 2007, 20:51

hello,

bon, grace a vous j'avanace a la vitesse du cheval au trot (le gallop ca sera pour plus tard ;) )

j'en suis au sessions. j'ai des utilisateurs et un admin pour le site (normal jusque la)
je souhaiterais que les utilisateurs, apres s'etre logges voient une certaine page (index.php) et que l'admin soit redirige vers une zone d'admin (index.php dans un autre repertoire) et que les utilsateurs n'aient pas acces a cette zone

j'ai ce code qui marche pour l'identification mais qui ne prends pas en compte le champs "level":

Code : Tout sélectionner

<?php // we must never forget to start the session session_start(); $errorMessage = ''; if (isset($_POST['email']) && isset($_POST['password'])) { include 'includes/config.php'; $email = $_POST['email']; $password = $_POST['password']; // check if the user id and password combination exist in database $query = "SELECT * FROM clients WHERE email = '$email' AND password = md5('$password')"; $result = mysql_query($query) or die('Query failed. ' . mysql_error()); if (mysql_num_rows($result) == 1) { // the user id and password match, // set the session $_SESSION['in'] = true; // after login we move to the main page header('Location: index.php'); exit; } else { $errorMessage = 'Sorry, wrong user id / password'; print "$errorMessage"; } mysql_close(); } ?>
comment faire pour que le champs "level" soit discriminant et renvoit vers une page differente si level = 0 => index.php si level = 1 => admin/index.php (que que cette page ne soit pas accessible aux utilisateurs donc)

merci :)