Session en php
deb -
je voudrais inclure les sesions dans mon site mais j'ai encore un peut de mal.
en fait, qd une personne entrera sur mon site, il devra remplir une fenetre de connexion ( il sera soit admin soit client)
il sera redirigé vers sa page en fonction de son statut.... là j'arrive à voir, mais c'est aores, comment on fait pour savoir sur les autres pages si c'est un client ou un administrateur ???
merci !
- Session en php
- Expert php - Télécharger - Langages
- Mail.yahoo.fr ouverture session - Guide
- Gmail.mail ouverture de session - Guide
- Easy php - Télécharger - Divers Web & Internet
- Veuillez ouvrir une session avec les privilèges du gestionnaire ✓ - Forum Jeux vidéo
52 réponses
- 1
- 2
- 3
Gestion des sessions PHP et de la redirection selon le rôle (admin ou client) après connexion, afin d'envoyer l'utilisateur vers la page adaptée à son statut. Une solution clé consiste à stocker le droit dans une variable de session après session_start(), puis rediriger selon sa valeur avec header('Location: page_admin.php') ou header('Location: page_client.php'). Des erreurs telles que headers already sent surviennent si des sorties sont émises avant les en-têtes; la solution consiste à ne pas faire d'echo/print avant les header ou à organiser le débogage autrement. Plusieurs astuces pratiques incluent le débogage ciblé des valeurs via echo ou var_dump et la vérification que les branches admin et client couvrent bien tous les cas possibles sans laisser apparaître une page neutre.
ensuite, tu assignes une variable de session, par ex $_SESSION["user"] = "admin";
Ensuite, sur les autres pages, tu commences aussi par un session_start();
et tu verifies la valeur de $_SESSION["user"] pour savoir si c un admin ou un client.
<?php
// connexion à la base mySQL
mysql_connect("localhost", "root", "");
mysql_select_db("courrier");
// requête qui permet de resortir le niveau de l'utilisateur enregistré
$query = "select * from utilisateurs where loginuti = '$login' and passworduti = '$pass'";
$result = mysql_query($query);
//on compte le nb de lignes de résultat
//si 1 : valide si 0 : aucun login ne correspond
$exist = mysql_numrows($result);
if ($exist<1){
echo'<center>Veuillez vérifier vos données ! </center>';
include ("page_cnx.htm");
}
else {
$ligne = mysql_fetch_array($result)
$compte = $ligne["droituti"];
session_start();
session_register('compte');
if ($compte == 'admin')
{
header("location:page_adming.php");
}
else
{
header("location:page_clientg.php");
}
}
?>
mais je n'ai pas mis de variable $_SESSION["user"]
dans ma bd, j'ai une table utilisateur (loginuti, password, droituti) et droituti peut prendre les valeurs : client ou admin .
...
else {
$ligne = mysql_fetch_array($result)
session_start();
$_SESSION['compte'] = $ligne["droituti"];
if ($_SESSION['compte'] == 'admin')
{
header("Location: page_adming.php");
}
else
{
header("Location: page_clientg.php");
}
}
Puis dans tes autres pages (page_adming.php et page_clientg.php) fais :
<?php
session_start();
if ($_SESSION['compte'] == 'admin')
{
// Action pour un Admin
}
else
{
// Action pour un client
}
j'ai fait le script mais ya une erreur et je ne vois pas pourquoi
<?php
// connexion à la base mySQL
mysql_connect("localhost", "root", "");
mysql_select_db("courrier");
// requête qui permet de resortir le niveau de l'utilisateur enregistré
$query = "select * from utilisateurs where loginuti = '$login' and passworduti = '$pass'";
$result = mysql_query($query);
//on compte le nb de lignes de résultat
//si 1 : valide si 0 : aucun login ne correspond
$exist = mysql_numrows($result);
if ($exist>1)
{
$ligne = mysql_fetch_array($result)
$compte = $ligne['droituti'];
session_start();
session_register('compte');
if ($compte == 'admin')
{
header("location:page_adming.php");
}
else
{
header("location:page_clientg.php");
}
}
else {
echo'<center>Veuillez vérifier vos données ! </center>';
include ("page_cnx.htm");
}
?>
ligne 16 ça là qu'est l'erreur .... $compte = $ligne['droituti'];
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionIl manque un point virgule en fin de ligne ---> $ligne = mysql_fetch_array($result); <--- ICI
$compte = $ligne['droituti'];
session_start();
session_register('compte');
if ($compte == 'admin') {}
utilise:
session_start();
$_SESSION["compte"] = $ligne['droituti'];
if ($_SESSION["compte"] == 'admin') {}
comme ca, je ne pourrais plus aller sur ta page avec cet url: page_admin.php?compte=admin :o)
<?php
session_start();
if ($_SESSION['compte'] == 'admin')
{
// Action pour un Admin
}
else
{
// Action pour un client
}
<?php
session_start();
if ($_SESSION['compte'] != 'admin')
die("Acces refuse");
//Suite du programme
j'ai changé le code et c'est ça maintenant :
<?php
// connexion à la base mySQL
mysql_connect("localhost", "root", "");
mysql_select_db("courrier");
// requête qui permet de resortir le niveau de l'utilisateur enregistré
$query = "select * from utilisateurs where loginuti = '$login' and passworduti = '$pass'";
$result = mysql_query($query);
//on compte le nb de lignes de résultat
//si 1 : valide si 0 : aucun login ne correspond
$exist = mysql_numrows($result);
if ($exist==1)
{
$ligne = mysql_fetch_array($result);
session_start();
$_SESSION['compte'] = $ligne["droituti"];
if ($_SESSION['compte'] == 'admin')
{
header("location:page_adming.php");
}
else
{
header("location:page_clientg.php");
}
}
else
{
echo'<center>Login ou Mot-de-passe incorrects ! </center>';
include ("page_cnx.htm");
}
?>
<?php
// connexion à la base mySQL
mysql_connect("localhost", "root", "") or die("Erreur connexion : ".mysql_error());
mysql_select_db("courrier") or die("Erreur select DB : ".mysql_error());
// requête qui permet de resortir le niveau de l'utilisateur enregistré
$query = "SELECT * FROM utilisateurs WHERE loginuti = '$login' AND passworduti = '$pass'";
//print $query; // Au cas où tu voudrais verifier ta requete.
$result = mysql_query($query) or die("Erreur Query : ".mysql_error());
//on compte le nb de lignes de résultat
//si 1 : valide si 0 : aucun login ne correspond
$exist = mysql_num_rows($result); <----- ERREUR: t'utilisais une mauvaise fonction
if ($exist==1)
{
$ligne = mysql_fetch_array($result);
session_start();
$_SESSION['compte'] = $ligne["droituti"];
if ($_SESSION['compte'] == 'admin')
{
header("location:page_adming.php");
}
else
{
header("location:page_clientg.php");
}
}
else
{
echo'<center>Login ou Mot-de-passe incorrects ! </center>';
include ("page_cnx.htm");
}
?>
- 1
- 2
- 3