Phpmysql, variable
Résolu/Fermé
cinderela
Messages postés
52
Date d'inscription
mardi 31 juillet 2007
Statut
Membre
Dernière intervention
20 février 2008
-
15 août 2007 à 17:47
cinderela Messages postés 52 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 20 février 2008 - 16 août 2007 à 16:29
cinderela Messages postés 52 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 20 février 2008 - 16 août 2007 à 16:29
3 réponses
absurdsystem
Messages postés
117
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
28 août 2008
50
16 août 2007 à 00:56
16 août 2007 à 00:56
slt !
je recapitule !
On s'identifie grace a la page index.php.
un fois le formulaire validé, cette page appelle la page veriflogin.php chargé de faire les differents verifiacations ainsi que de selectionner les donnees de l'utilisateur dans la base de données.
Le probleme est qu'ensuite tu cherche a reutiliser les données entrées dans le formulaire de ton index mais ellles n'existent plus ( on va dire ça comme ça...)
par contre tu les a enregistrées garce a la variable superglobale $_SESSION, que tu peu reutiiliser a tout moment.
ton probleme est donc ta requete :
$query = "SELECT role_utilisateur FROM tblemploye WHERE username = '".$_POST['username']."' AND password ='".$_POST['mpass']."' ";
$_POST['username'] et $_POST['mpass'] ne sont plus la mais tu peu les remplacer par $_SESSION['nom'] et $_SESSION['mpass'] ( cette variable est a redefinir dans ta page veriflogin.php en mettant $_SESSION['mpass'] = $mpass; )
Voila en principe ça devrai fonctionner.
J'ai developpé le meme genre d'application et j'ai été confronté à ce genre d'erreur donc je m'y connais...enfin je pense ;-)
je recapitule !
On s'identifie grace a la page index.php.
un fois le formulaire validé, cette page appelle la page veriflogin.php chargé de faire les differents verifiacations ainsi que de selectionner les donnees de l'utilisateur dans la base de données.
Le probleme est qu'ensuite tu cherche a reutiliser les données entrées dans le formulaire de ton index mais ellles n'existent plus ( on va dire ça comme ça...)
par contre tu les a enregistrées garce a la variable superglobale $_SESSION, que tu peu reutiiliser a tout moment.
ton probleme est donc ta requete :
$query = "SELECT role_utilisateur FROM tblemploye WHERE username = '".$_POST['username']."' AND password ='".$_POST['mpass']."' ";
$_POST['username'] et $_POST['mpass'] ne sont plus la mais tu peu les remplacer par $_SESSION['nom'] et $_SESSION['mpass'] ( cette variable est a redefinir dans ta page veriflogin.php en mettant $_SESSION['mpass'] = $mpass; )
Voila en principe ça devrai fonctionner.
J'ai developpé le meme genre d'application et j'ai été confronté à ce genre d'erreur donc je m'y connais...enfin je pense ;-)
absurdsystem
Messages postés
117
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
28 août 2008
50
16 août 2007 à 16:03
16 août 2007 à 16:03
j'ai trouvé l'erreur !!
c'est dans ta page lien.php
la tu fai ton if ($_SESSION['role'] = 'admin')
eh bien il manque un "="
ce qui nous donne : if ($_SESSION['role'] == 'admin')
le = tout seul est une affectation et le == est une comparaison
c'est dans ta page lien.php
la tu fai ton if ($_SESSION['role'] = 'admin')
eh bien il manque un "="
ce qui nous donne : if ($_SESSION['role'] == 'admin')
le = tout seul est une affectation et le == est une comparaison
cinderela
Messages postés
52
Date d'inscription
mardi 31 juillet 2007
Statut
Membre
Dernière intervention
20 février 2008
16 août 2007 à 16:29
16 août 2007 à 16:29
ah oui, c'est vrai :-) pourquoi je suis si négligée . merci bcp
absurdsystem
Messages postés
117
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
28 août 2008
50
16 août 2007 à 11:19
16 août 2007 à 11:19
oui c'est ça que je voulais dire...
Content d'avoir été utile
sinon pour les liens le code est ecrit correctement dans tes deux messages alors je voi pas !
Verifie que tu n'a pas oublié un " ou ' quelquepart ou alors renvoie tout le code de ta page ...
Content d'avoir été utile
sinon pour les liens le code est ecrit correctement dans tes deux messages alors je voi pas !
Verifie que tu n'a pas oublié un " ou ' quelquepart ou alors renvoie tout le code de ta page ...
cinderela
Messages postés
52
Date d'inscription
mardi 31 juillet 2007
Statut
Membre
Dernière intervention
20 février 2008
16 août 2007 à 14:44
16 août 2007 à 14:44
Salut,
c'est bon pour le lien. Il faut just que je mets <TABLE> </TABLE> dans le tag php.
et puis une autre chose. Je voulais qu'il affiche dans chaque page un lien qui est aussi avoir un accès restreint comme celui d'avance.
J'ai fait:
lien.php
Le souci est qu'il ne connait pas $_SESSION['mpass']. Tu as une idée? J'ai enlevé le bôucle While et ça marche pas non plus.
Note: dans chaque page j'ai mis : include('lien.php')
Merci :-)
c'est bon pour le lien. Il faut just que je mets <TABLE> </TABLE> dans le tag php.
et puis une autre chose. Je voulais qu'il affiche dans chaque page un lien qui est aussi avoir un accès restreint comme celui d'avance.
J'ai fait:
lien.php
<?php $connexion = mysql_connect("localhost", "root", "") or die ("connexion au serveur impossible."); mysql_select_db('gestion_stock', $connexion); $query = "SELECT role_utilisateur FROM tblemploye WHERE password = '".$_SESSION['mpass']."' "; $resultat = mysql_query($query) or die ('Erreur. La requête ne peut pas être effectuée. L\'erreur retournée est : '.mysql_error()); while ($data = mysql_fetch_row($resultat)){ if ($_SESSION['role'] = 'admin') { echo'<a href="accueil.php">Acceuil</a> <a href="users.php">page users</a> <a href="control.php">page control</a> <a href="fournisseur.php">page fournisseurs</a>'; } else{ if ($_SESSION['role'] == 'user') { echo ' <a href="priori.php">Priorité</a> <a href="control.php">Contôles</a> <a href="fournisseur.php">Fournisseurs</a>'; } } } ?>
Le souci est qu'il ne connait pas $_SESSION['mpass']. Tu as une idée? J'ai enlevé le bôucle While et ça marche pas non plus.
Note: dans chaque page j'ai mis : include('lien.php')
Merci :-)
absurdsystem
Messages postés
117
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
28 août 2008
50
>
cinderela
Messages postés
52
Date d'inscription
mardi 31 juillet 2007
Statut
Membre
Dernière intervention
20 février 2008
16 août 2007 à 15:10
16 août 2007 à 15:10
en principe tu n'a pas besoin de re-executer ta requete
tu as juste besoin d'ecrire dans ta page lien.php le if :
et dans les autres pages tu fait juste ton "include('lien.php') " a l'endroit voulu
tu as juste besoin d'ecrire dans ta page lien.php le if :
if ($_SESSION['role'] = 'admin') { echo'<a href="accueil.php">Acceuil</a> <a href="users.php">page users</a> <a href="control.php">page control</a> <a href="fournisseur.php">page fournisseurs</a>'; } else{ if ($_SESSION['role'] == 'user') { echo ' <a href="priori.php">Priorité</a> <a href="control.php">Contôles</a> <a href="fournisseur.php">Fournisseurs</a>'; } } }
et dans les autres pages tu fait juste ton "include('lien.php') " a l'endroit voulu
cinderela
Messages postés
52
Date d'inscription
mardi 31 juillet 2007
Statut
Membre
Dernière intervention
20 février 2008
>
absurdsystem
Messages postés
117
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
28 août 2008
16 août 2007 à 15:17
16 août 2007 à 15:17
Salut,
oui, je l'ai fait comme t'as dit à tout à l'heure puis il me donne les liens pour l' admin même si je me loge avec le compt user
A+
cinderela
oui, je l'ai fait comme t'as dit à tout à l'heure puis il me donne les liens pour l' admin même si je me loge avec le compt user
A+
cinderela
absurdsystem
Messages postés
117
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
28 août 2008
50
>
cinderela
Messages postés
52
Date d'inscription
mardi 31 juillet 2007
Statut
Membre
Dernière intervention
20 février 2008
16 août 2007 à 15:29
16 août 2007 à 15:29
Oups desolé je vien de me rendre compte d'un truc enorme que j'ai oublié !!!!
pour pouvoir utiliser les variables $_SESSION , il faut que dans chaque page qui les utilisent tu fasse un session_start();
cela signifie que tu indique au script que tu souhaite recuperer les variables de session.
Donc par exemple la premiere ligne de ta page accueil.php doit etre <?php session_start();
?>
pour pouvoir utiliser les variables $_SESSION , il faut que dans chaque page qui les utilisent tu fasse un session_start();
cela signifie que tu indique au script que tu souhaite recuperer les variables de session.
Donc par exemple la premiere ligne de ta page accueil.php doit etre <?php session_start();
?>
cinderela
Messages postés
52
Date d'inscription
mardi 31 juillet 2007
Statut
Membre
Dernière intervention
20 février 2008
>
absurdsystem
Messages postés
117
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
28 août 2008
16 août 2007 à 15:38
16 août 2007 à 15:38
Salut,
en fait, chaque page que je voulais include le lien.php j'ai déjà mis include (session.php) avant et je t'avais pas dit, désolée pour ça!
en fait, chaque page que je voulais include le lien.php j'ai déjà mis include (session.php) avant et je t'avais pas dit, désolée pour ça!
16 août 2007 à 08:44
Merci beaucoup! c'est fonctionné!
voilà il faut just mettre comme tu disais redéfinir $_SSESION['mpass'] = $mpass dans veriflogin.php.
puis j'ai essayé de changé
à
En tout cas, comme ça , ça marche. Est-ce que c'est cela que tu voulais me dire? d'autrement je vois pas.
Sinon, i l y a une autre problème que l'affichage du page accueil.php pour :
<TR><TD><a href="users.php">Users</a></TD></TR>
et
<TR><TD><a href="stock_bas.php">Priorité</a></TD></TR>
n'est pas comme un lien. sais pas pourquoi!
A+
Cinderela