[php] session utilisateur sur un site
Résolu/Fermé
Riwalenn
Messages postés
364
Date d'inscription
jeudi 25 août 2005
Statut
Membre
Dernière intervention
16 février 2015
-
20 avril 2007 à 11:23
iutfv.ba2men Messages postés 1 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 26 août 2009 - 26 août 2009 à 18:44
iutfv.ba2men Messages postés 1 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 26 août 2009 - 26 août 2009 à 18:44
A voir également:
- [php] session utilisateur sur un site
- Site de telechargement - Accueil - Outils
- Site comme coco - Accueil - Réseaux sociaux
- Quel site remplace coco - Accueil - Réseaux sociaux
- Site pour vendre des objets d'occasion - Guide
- Site inaccessible - Guide
16 réponses
bbar
Messages postés
436
Date d'inscription
mercredi 27 septembre 2006
Statut
Membre
Dernière intervention
31 octobre 2008
140
24 avril 2007 à 14:05
24 avril 2007 à 14:05
Salut, je pense qu'il serait intéressant de savoir à quoi ressemble le contenu de la variable $user avant de l'injecter dans ta requête mysql.
En reprenant le code suivant : ('%$user%'), tu mets n'importes quels caractères en nombre indéfini, puis le contenu de la variable $user, puis à nouveau un nombre indéfini de caractères. Or dans le cas où ta variable $user vaut '', une chaine vide, ça veut dire que tu prends tous les champs pour les quels user = n'importes quels caractères en nombre indéfini, cad la totalité de ta table.
D'autre part, il peut intéressant également de créer une variable $requete, par exemple dans laquelle tu vas coller ta requete puis tu en fait un écho pour voir les valeurs qui sont utilisées.
Voiloù, tiens moi au jus
En reprenant le code suivant : ('%$user%'), tu mets n'importes quels caractères en nombre indéfini, puis le contenu de la variable $user, puis à nouveau un nombre indéfini de caractères. Or dans le cas où ta variable $user vaut '', une chaine vide, ça veut dire que tu prends tous les champs pour les quels user = n'importes quels caractères en nombre indéfini, cad la totalité de ta table.
D'autre part, il peut intéressant également de créer une variable $requete, par exemple dans laquelle tu vas coller ta requete puis tu en fait un écho pour voir les valeurs qui sont utilisées.
Voiloù, tiens moi au jus
bbar
Messages postés
436
Date d'inscription
mercredi 27 septembre 2006
Statut
Membre
Dernière intervention
31 octobre 2008
140
24 avril 2007 à 17:39
24 avril 2007 à 17:39
en fait, c'est pas ta requete en elle même qui est mauvaise, encore que je pense que mettre les % ne va pas : il te suffit d'avoir 2 noms très proches (à une ou deux lettres près) et tu te retrouves avec plusieurs user possibles.
Ce que je ferai :
comme ça, ça te permet de gérer de manière simple le cas où t'as qq'un qui essaye d'arriver sur la page sans être passé au préalable par la case départ, à savoir la fenêtre de log.
Dans ce cas, si tu veux le rediriger vers la page de login :
dans ce cas, attention : majuscule à respecter strictement à "Location", d'autre part, au moment où php exécutera la fonction header(), il NE doit SURTOUT PAS y avoir eu d'affichage au préalable (genre message d'erreur, code html, ...) sinon il ne va rien faire que de te bouser dans les bottes.
Voiloù.@+
Ce que je ferai :
if (isset ($_POST['user']) { // là tu met en ta requete mysql et l'affichage des données correspondantes } else { // la variable $_POST['user'] n'existe pas, à toi de voir ce que tu veux faire dans ce cas : retour sur la fenêtre de log, pas d'affichage de nom tout simplement, ... }
comme ça, ça te permet de gérer de manière simple le cas où t'as qq'un qui essaye d'arriver sur la page sans être passé au préalable par la case départ, à savoir la fenêtre de log.
Dans ce cas, si tu veux le rediriger vers la page de login :
header("Location:adresse-de-ta-page.php");
dans ce cas, attention : majuscule à respecter strictement à "Location", d'autre part, au moment où php exécutera la fonction header(), il NE doit SURTOUT PAS y avoir eu d'affichage au préalable (genre message d'erreur, code html, ...) sinon il ne va rien faire que de te bouser dans les bottes.
Voiloù.@+
bbar
Messages postés
436
Date d'inscription
mercredi 27 septembre 2006
Statut
Membre
Dernière intervention
31 octobre 2008
140
16 mai 2007 à 18:51
16 mai 2007 à 18:51
Salut, je ne savais pas du tout ce que tu avais fait de ton côté puisque je ne partait que de quelques fragments de codes. En effet, ce que je t'ai mis ressemble à ce que tu as sur ta page de vérification. Dans ce cas, garde ce que tu as fait.
Ensuite, quand tu me dit que tu as l'affichage même si t'est pas loggé, c'est sur quelle(s) page(s) ? as-tu pensé, par exemple à supprimer ton cookie si la personne quitte sa session ou si elle ferme la fenêtre ?
Pour ta dernière demande, il va me falloir un peu plus d'infos pour pouvoir te répondre correctement.
shüss
Ensuite, quand tu me dit que tu as l'affichage même si t'est pas loggé, c'est sur quelle(s) page(s) ? as-tu pensé, par exemple à supprimer ton cookie si la personne quitte sa session ou si elle ferme la fenêtre ?
Pour ta dernière demande, il va me falloir un peu plus d'infos pour pouvoir te répondre correctement.
shüss
iutfv.ba2men
Messages postés
1
Date d'inscription
vendredi 24 juillet 2009
Statut
Membre
Dernière intervention
26 août 2009
1
26 août 2009 à 18:44
26 août 2009 à 18:44
Comment créer une page de connexion avec plusieurs niveaux d'accès, par exemple avec plusieurs utilisateurs:
Niveau 1 Administrateur(effectue toutes opérations sur la base)
Niveau 2 opérateur de saisie(enregistre les données sans les supprimer)
Niveau3 Visiteur(ne peut que consulter)
Niveau 1 Administrateur(effectue toutes opérations sur la base)
Niveau 2 opérateur de saisie(enregistre les données sans les supprimer)
Niveau3 Visiteur(ne peut que consulter)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bbar
Messages postés
436
Date d'inscription
mercredi 27 septembre 2006
Statut
Membre
Dernière intervention
31 octobre 2008
140
20 avril 2007 à 11:54
20 avril 2007 à 11:54
Salut,
tout est là : il te faut définir un script de vérification dans ta table des données de l'utilisateur avant de le rediriger vers l'index, si les infos données son bonnes, vers la fenêtre de login le cas échéant.
en gros il faut que tu le réécrives de cette manière :
et ton fichier verification.php en pseudo code vas ressembler à ça :
récupération du login et du mdp
vérification du log et du mdp dans la base de donnée
si c'est ok
-> aller sur la page index.php
sinon
-> retour sur la page de login
<form action="candidats\index.php" method="post" name="login" id="log2">
tout est là : il te faut définir un script de vérification dans ta table des données de l'utilisateur avant de le rediriger vers l'index, si les infos données son bonnes, vers la fenêtre de login le cas échéant.
en gros il faut que tu le réécrives de cette manière :
<form action="candidats\verification.php" method="post" name="login" id="log2">
et ton fichier verification.php en pseudo code vas ressembler à ça :
récupération du login et du mdp
vérification du log et du mdp dans la base de donnée
si c'est ok
-> aller sur la page index.php
sinon
-> retour sur la page de login
Riwalenn
Messages postés
364
Date d'inscription
jeudi 25 août 2005
Statut
Membre
Dernière intervention
16 février 2015
101
20 avril 2007 à 17:07
20 avril 2007 à 17:07
je te remercie je vais commencer par ça
Riwalenn
Messages postés
364
Date d'inscription
jeudi 25 août 2005
Statut
Membre
Dernière intervention
16 février 2015
101
23 avril 2007 à 16:17
23 avril 2007 à 16:17
bon alors j'ai réussi à faire la vérification du login et du mot de passe par rapport à la base de données. (même le cookie fonctionne)...
cependant, je voudrais récuperé le login en question pour pouvoir inscrire le nom sur ma page...
j'ai le code suivant sur ma page avant le code html :
puis code dans ma page :
enfin le code après html :
avec ce code je récupère bien le nom mais ça me créé un tableau avec TOUT les noms lol... j'ai l'impression que c'est le while(list qui ne va pas...
merci par avance pour vos réponses
cependant, je voudrais récuperé le login en question pour pouvoir inscrire le nom sur ma page...
j'ai le code suivant sur ma page avant le code html :
<?php include 'connexion.php'?> <?php $user = isset($_POST['user']) ? $_POST['user'] : ''; $sqlrequest = mysql_query("select user from login where user LIKE ('%$user%');") or die (mysql_error()); ?>
puis code dans ma page :
<?php while(list($user)=mysql_fetch_array($sqlrequest)){ ?> <td height="109"> <p class="boitecandidats">Bienvenue dans votre espace (<?php echo $user ; ?>).<br>
enfin le code après html :
<?php } mysql_close(); ?>
avec ce code je récupère bien le nom mais ça me créé un tableau avec TOUT les noms lol... j'ai l'impression que c'est le while(list qui ne va pas...
merci par avance pour vos réponses
Riwalenn
Messages postés
364
Date d'inscription
jeudi 25 août 2005
Statut
Membre
Dernière intervention
16 février 2015
101
24 avril 2007 à 17:23
24 avril 2007 à 17:23
je comprends ce que tu veux dire ma fonction avec 'user' et %user% n'est pas bonne... mais comment je dois faire alors ?
excuse je suis newbie en php et mysql...
excuse je suis newbie en php et mysql...
Riwalenn
Messages postés
364
Date d'inscription
jeudi 25 août 2005
Statut
Membre
Dernière intervention
16 février 2015
101
16 mai 2007 à 09:46
16 mai 2007 à 09:46
je comprends pas trop... j'ai l'impression que le code que tu me donnes est le même que celui que j'ai sur ma page de vérification :
ça va pas devenir compliqué si je mets 2 fois le même code ?...
moi ce que je veux c'est pouvoir afficher le nom de l'utilisateur sur ma page finale (sa page de de profil par ex)... j'suis un peu perdue là je dois avouer...
<?php include "connexion.php"; //cryptage MD5 du mot de passe pour comparer avec celui dans la base de donnée $mdp=md5($_POST['mdp']); $sqlrequest="select * from login where user='".$_POST['user']."' and pwd='".$mdp."';"; $results= mysql_query($sqlrequest); $nbr_rp=mysql_num_rows($results); $reponse=mysql_fetch_array($results); if($nbr_rp!=0) { if($reponse['level']==1) { if(isset($_POST['cookie'])) { setCookie("cookie_user",$_POST['user'].';'.$mdp,NULL,NULL,NULL,FALSE); } header("Location: bravo.php"); } if($reponse['level']==2) { if(isset($_POST['cookie'])) { setCookie("cookie_user",$_POST['user'].';'.$mdp,NULL,NULL,NULL,FALSE); } header("Location: candidats/index.php"); } if($reponse['level']==3) { if(isset($_POST['cookie'])) { setCookie("cookie_user",$_POST['user'].';'.$mdp,NULL,NULL,NULL,FALSE); } header("Location: entreprises/index.php"); } } else { header("Location: index.php"); } ?>
ça va pas devenir compliqué si je mets 2 fois le même code ?...
moi ce que je veux c'est pouvoir afficher le nom de l'utilisateur sur ma page finale (sa page de de profil par ex)... j'suis un peu perdue là je dois avouer...
Riwalenn
Messages postés
364
Date d'inscription
jeudi 25 août 2005
Statut
Membre
Dernière intervention
16 février 2015
101
16 mai 2007 à 11:35
16 mai 2007 à 11:35
je viens de m'aperçevoir que, que je sois connectée ou pas avec le login j'ai ma page qui affiche quand même l'ensemble de mes utilisateurs... donc il est clair que je ne comprends pas du tout ton code. Je suppose qu'il consiste à récupérer le login....
Riwalenn
Messages postés
364
Date d'inscription
jeudi 25 août 2005
Statut
Membre
Dernière intervention
16 février 2015
101
28 mai 2007 à 16:26
28 mai 2007 à 16:26
alors j'ai fait un fichier login à part pour m'y retrouver :
et donc j'ai bien le nom de l'utilisateur sur ma page d'entrée de l'utilisateur sans avoir ce tableau avec tous les logins :
seulement, si je navigue sur d'autres page et que je reviens sur ma page candidats, à ce moment-là j'ai de nouveau l'erreur, c'est-à-dire un tableau qui se répète avec tous les utilisateurs dedans...
En gros ça fonctionne sans ma page de vérification, donc pas bon lol
<html> <head> <title>login</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javaScript" src="effacer.js"> </script> <link href="includes/styleglobal.css" rel="stylesheet" type="text/css"> </head> <body> <div id="global_form_nav_espace"> <form action="candidats\index.php" method="post" name="login" onsubmit="return control();" > <fieldset> <legend class="global_invisible">Votre identification</legend> <label for="global_form_nav_login"><input type="text" name="user" value="Code d'accès" class="text" onfocus="efface('connect','login','password1','Code d\'accès','******')" title="code d'accès" onmouseover="window.status='Code d\'accès'" onmousedown="window.status='Code d\'accès'" onkeydown="window.status='Code d\'accès'" /> <label for="global_form_nav_pass"><input type="password" name="mdp" value="******" onfocus="efface('connect','password1','login','******','Code d\'accès')" title="Mot de Passe" onmouseover="window.status='Mot de Passe'" onmousedown="window.status='Mot de Passe'" onkeydown="window.status='Mot de Passe'" /> <INPUT TYPE=checkbox name="cookie" value="1"> <input type="submit" name="Submit" value="Ok" id="global_form_nav_submit"> </fieldset> </form> </div> </body> </html>
et donc j'ai bien le nom de l'utilisateur sur ma page d'entrée de l'utilisateur sans avoir ce tableau avec tous les logins :
<?php while(list($user)=mysql_fetch_array($sql)){ ?> <td height="109"> <p class="boitecandidats">Bienvenue dans votre espace (<?php echo $user ; ?>).
seulement, si je navigue sur d'autres page et que je reviens sur ma page candidats, à ce moment-là j'ai de nouveau l'erreur, c'est-à-dire un tableau qui se répète avec tous les utilisateurs dedans...
En gros ça fonctionne sans ma page de vérification, donc pas bon lol
bbar
Messages postés
436
Date d'inscription
mercredi 27 septembre 2006
Statut
Membre
Dernière intervention
31 octobre 2008
140
21 juin 2007 à 21:13
21 juin 2007 à 21:13
Salut,
Désolé du retard de ma réponse (presque un mois, toutes mes confuses)
ta page candidat est-elle celle de login ? auquel cas, reviens-tu bien sur ta page de login à part ?
Désolé du retard de ma réponse (presque un mois, toutes mes confuses)
ta page candidat est-elle celle de login ? auquel cas, reviens-tu bien sur ta page de login à part ?
Riwalenn
Messages postés
364
Date d'inscription
jeudi 25 août 2005
Statut
Membre
Dernière intervention
16 février 2015
101
22 juin 2007 à 10:46
22 juin 2007 à 10:46
lol j'ai pas vu que j'avais encore ce message.. en fait je m'étais pris la tête pour rien, y'avait trop de trucs dans mon formulaire.. en tout cas le problème est résolu ;)
Comment créer une page de connexion avec plusieurs niveaux d'accès, par exepmle avec plusieurs utilisateurs:
Niveau 1 Administrateur(effectue toutes opérations sur la base)
Niveau 2 opérateur de saisie(Ne peux enregistrer les données mais ne peut pas les supprimer)
Niveau3 Visiteur(ne peut que consulter)
Niveau 1 Administrateur(effectue toutes opérations sur la base)
Niveau 2 opérateur de saisie(Ne peux enregistrer les données mais ne peut pas les supprimer)
Niveau3 Visiteur(ne peut que consulter)
Salut les mec , donc j'ai un petit bug !! pour mon site persO !! j'ai mi le script suivant sur mon site perso ( c'est un code d'indentificatiopn avec mots de passe ) mais le probleme c'est que je l'ai mis sur ma page d'aceuil mais on peut quand meme visister les autre sous page sans s'identifié !! blème NON ?? aider moi svp merci davance !!
oups j'ai oublier de mettre le script !! : <html>
<head>
<title>login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javaScript" src="effacer.js">
</script>
<link href="includes/styleglobal.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="global_form_nav_espace">
<form action="candidats\index.php" method="post" name="login" onsubmit="return control();" >
<fieldset>
<legend class="global_invisible">Votre identification</legend>
<label for="global_form_nav_login"><input type="text" name="user" value="Code d'accès" class="text" onfocus="efface('connect','login','password1','Code d\'accès','******')" title="code d'accès" onmouseover="window.status='Code d\'accès'" onmousedown="window.status='Code d\'accès'" onkeydown="window.status='Code d\'accès'" />
<label for="global_form_nav_pass"><input type="password" name="mdp" value="******" onfocus="efface('connect','password1','login','******','Code d\'accès')" title="Mot de Passe" onmouseover="window.status='Mot de Passe'" onmousedown="window.status='Mot de Passe'" onkeydown="window.status='Mot de Passe'" />
<INPUT TYPE=checkbox name="cookie" value="1">
<input type="submit" name="Submit" value="Ok" id="global_form_nav_submit">
</fieldset>
</form>
</div>
</body>
</html>
<head>
<title>login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javaScript" src="effacer.js">
</script>
<link href="includes/styleglobal.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="global_form_nav_espace">
<form action="candidats\index.php" method="post" name="login" onsubmit="return control();" >
<fieldset>
<legend class="global_invisible">Votre identification</legend>
<label for="global_form_nav_login"><input type="text" name="user" value="Code d'accès" class="text" onfocus="efface('connect','login','password1','Code d\'accès','******')" title="code d'accès" onmouseover="window.status='Code d\'accès'" onmousedown="window.status='Code d\'accès'" onkeydown="window.status='Code d\'accès'" />
<label for="global_form_nav_pass"><input type="password" name="mdp" value="******" onfocus="efface('connect','password1','login','******','Code d\'accès')" title="Mot de Passe" onmouseover="window.status='Mot de Passe'" onmousedown="window.status='Mot de Passe'" onkeydown="window.status='Mot de Passe'" />
<INPUT TYPE=checkbox name="cookie" value="1">
<input type="submit" name="Submit" value="Ok" id="global_form_nav_submit">
</fieldset>
</form>
</div>
</body>
</html>
Salut les mec , donc j'ai un petit bug !! pour mon site persO !! j'ai mi le script suivant sur mon site perso ( c'est un code d'indentificatiopn avec mots de passe ) mais le probleme c'est que je l'ai mis sur ma page d'aceuil mais on peut quand meme visister les autre sous page sans s'identifié !! blème NON ?? aider moi svp merci davance !!