Session en php
deb
-
deb -
deb -
salut,
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 !
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 !
A voir également:
- Session en php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
- Teamviewer code de session expiré ✓ - Forum logiciel systeme
- Session invalide ou obsolète ✓ - Forum finances
52 réponses
a la page de connexion, tu commences par: session_start();
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.
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.
en fait j'ai fait ça:
<?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 .
<?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 .
Remplace :
...
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
}
...
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
}
merci...
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'];
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 question
Copie d'abord mon script... Comme le dit wiwimagique, il vaut mieux utiliser $_SESSION["user"]. M'enfin...
Il manque un point virgule en fin de ligne ---> $ligne = mysql_fetch_array($result); <--- ICI
Il manque un point virgule en fin de ligne ---> $ligne = mysql_fetch_array($result); <--- ICI
au lieu de:
$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)
$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)
A partir du moment où il y a un HEADER(), la suite du code ne sera pas interprété. Cependant, par sécurité, il est recommandé de faire une : exit(); juste après un header()...
qu'est ce que tu me conseille alors pour avoir l'affichage s'il n'y a rien qui est saisis et si le login ou le pws ne sont pas pareil ??
S'il n'y a rien qui est saisi, tu peux afficher ce que tu veux puisque tu ne feras pas de redirection avec header.
j'ai une question .... (je sais encore!!) ma page page_adming.php ne peut etre vue que par l'administrateur, donc pas besoin de de mettre ça :
<?php
session_start();
if ($_SESSION['compte'] == 'admin')
{
// Action pour un Admin
}
else
{
// Action pour un client
}
<?php
session_start();
if ($_SESSION['compte'] == 'admin')
{
// Action pour un Admin
}
else
{
// Action pour un client
}
il faut mettre ca:
<?php
session_start();
if ($_SESSION['compte'] != 'admin')
die("Acces refuse");
//Suite du programme
<?php
session_start();
if ($_SESSION['compte'] != 'admin')
die("Acces refuse");
//Suite du programme
de toutes faaçons, j'arrive meme pas à faire marcher la fenetre de cnx !!!
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");
}
?>
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");
}
?>
Vérifie chaque erreur à chaque étape...
<?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");
}
?>
<?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");
}
?>