A voir également:
- Session en php
- Easy php - Télécharger - Divers Web & Internet
- Estelle vient de verrouiller sa session d'ordinateur. que peut-on dire ? ✓ - Forum Windows 7
- Veuillez ouvrir une session avec les privilèges du gestionnaire ✓ - Forum Jeux vidéo
- Estelle vient de verrouiller sa session d’ordinateur. que peut-on dire ? ✓ - Forum Windows
- Teamviewer code de session expiré ✓ - Forum Windows XP
52 réponses
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
19 févr. 2003 à 12:08
19 févr. 2003 à 12:08
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 .
Bobinours
Messages postés
2898
Date d'inscription
jeudi 26 avril 2001
Statut
Membre
Dernière intervention
21 mars 2013
504
19 févr. 2003 à 14:42
19 févr. 2003 à 14:42
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
Bobinours
Messages postés
2898
Date d'inscription
jeudi 26 avril 2001
Statut
Membre
Dernière intervention
21 mars 2013
504
19 févr. 2003 à 14:56
19 févr. 2003 à 14:56
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
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
20 févr. 2003 à 03:19
20 févr. 2003 à 03:19
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)
Bobinours
Messages postés
2898
Date d'inscription
jeudi 26 avril 2001
Statut
Membre
Dernière intervention
21 mars 2013
504
19 févr. 2003 à 16:41
19 févr. 2003 à 16:41
Quel affichage ? Où y a-t-il un affichage ?
Bobinours
Messages postés
2898
Date d'inscription
jeudi 26 avril 2001
Statut
Membre
Dernière intervention
21 mars 2013
504
19 févr. 2003 à 16:59
19 févr. 2003 à 16:59
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 ??
Bobinours
Messages postés
2898
Date d'inscription
jeudi 26 avril 2001
Statut
Membre
Dernière intervention
21 mars 2013
504
19 févr. 2003 à 17:05
19 févr. 2003 à 17:05
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
}
wiwimagique
Messages postés
481
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2006
108
20 févr. 2003 à 10:46
20 févr. 2003 à 10:46
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");
}
?>
Bobinours
Messages postés
2898
Date d'inscription
jeudi 26 avril 2001
Statut
Membre
Dernière intervention
21 mars 2013
504
20 févr. 2003 à 11:36
20 févr. 2003 à 11:36
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");
}
?>
Bobinours
Messages postés
2898
Date d'inscription
jeudi 26 avril 2001
Statut
Membre
Dernière intervention
21 mars 2013
504
20 févr. 2003 à 12:07
20 févr. 2003 à 12:07
c'est normal que ça ne marche pas, je n'ai rien corrigé.
Mais je t'ai donné des outils pour débugguer ton code.
"ça ne marche pas", est une jolie phrase, mais il faut l'agrémenter des code d'erreur que tu as.
Mais je t'ai donné des outils pour débugguer ton code.
"ça ne marche pas", est une jolie phrase, mais il faut l'agrémenter des code d'erreur que tu as.