UN TITIT TUTO SUR LES SESSIONS

cs_plopman Messages postés 67 Date d'inscription dimanche 29 février 2004 Statut Membre Dernière intervention 13 septembre 2006 - 12 juin 2004 à 14:43
 didi - 18 avril 2017 à 15:11
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23628-un-titit-tuto-sur-les-sessions

c'est ce que je cherche, merci beacoup
Gta3soluce Messages postés 8 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 6 décembre 2007
28 févr. 2010 à 18:48
Excellente source !
nono171 Messages postés 1 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 6 juillet 2008
6 juil. 2008 à 22:24
J'ai vraiment trouvé ça instructif, merci beaucoup !
dededede4 Messages postés 235 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 11 septembre 2009
12 mai 2008 à 16:11
--'
Jsuis con :D
J'ai pas regarder le scriipt conplétement, ne lit pas les connerie que j'ai a propo de sql x)
dededede4 Messages postés 235 Date d'inscription jeudi 23 juin 2005 Statut Membre Dernière intervention 11 septembre 2009
12 mai 2008 à 14:33
pas mal...

Dommage, tu aurait tu faire quelque petit détail qui facilite la vie,
genre la conecte a cql, et une liste des persone inscrite avec leur date...

Simple, sa m'auré évité de copier coller des truk :D
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
4 déc. 2007 à 07:21
Salut!
Nulle part ;-)

D'ailleurs, la description n'en parle pas:
on
Ben voila, c'est un petit tuto sur les sessions...
Je vous explique comment:
* démarrer / détruire une session
* enregistrer / supprimer des variables de sessions
* un petit exemple de zone membre
* un autre exemple: comment détecter si le visiteur accepte les cookies et qu'est ce qu'il faut faire si ce n'est pas le cas

Raf
tibob135 Messages postés 34 Date d'inscription mercredi 15 août 2007 Statut Membre Dernière intervention 5 février 2008
4 déc. 2007 à 01:46
EllE est où la table?

merci
Matt 261 Messages postés 1173 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 10 septembre 2011 3
21 juil. 2006 à 15:09
Ok d'accord, je t'envoie un MP tout de suite. Merci beaucoup :D .

@+
Matt
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
21 juil. 2006 à 14:54
Salut!
Contacte moi par MP, si tu veux... Tu peux me filer ton MSN, aussi, :)

@++

R@f
Matt 261 Messages postés 1173 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 10 septembre 2011 3
20 juil. 2006 à 16:51
Merci pour ta réponse (ultra) rapide -! C'est sympa. - qui m'éclaire un peu. Si ce n'est pas trops demander, est-ce que tu pourrais eventuellement me faire un exemple car je viens de me plonger dans le php il y a juste quelques jour, me rendant compte en faisant mon site web que le php serait indisponible. Merci d'avance ! :D
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
20 juil. 2006 à 16:45
Salut!
Il faut remplacer la partie:
/*
Vérification des données
Notez qu'il est possible de vérifier ces valeurs
dans une base de données pour gérer plusieurs utilisateurs
*/
if($password 'pass' && $pseudo 'toto')
{
$_SESSION['pseudo'] = 'toto'; // création d'une variable de session
header("location: index.php"); // redirection
exit;
}
// si le pseudo est faux
else if($pseudo != 'toto')
{
header("location: index.php?erreur=1");
exit;
}
// le mot de passe est faux
else
{
header("location: index.php?erreur=2");
exit;
}

Par les requêtes MySQL et les tests:
- on fait un select selon le nom ( on récupère le mot de passe ):
si on a 0 retours --> pseudo n'existe pas
- on compare le passe de la bdd avec celui donné:
si c'est différent, password incorrect...

Voilà, en espérant que ça t'aide...

@++

R@f
Matt 261 Messages postés 1173 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 10 septembre 2011 3
20 juil. 2006 à 16:26
Excellent ce tuto ! Travail remarquable bravo. Une petite question tout de même : comment adapter ce tuto pour que l'on aille chercher les membres dans un base de donnée?
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
28 nov. 2004 à 01:03
Salut!
Tu fais un truc genre:
SELECT pass FROM tbl_membres WHERE pseudo='$pseudo'

Si tu as 0 retours --> le gars s'est planté de pseudo
Sinon: tu compares les pass

@++

R@f
cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009
27 nov. 2004 à 19:59
Bonjour, super code mais je n'arrive pas à le faire par mysql .
Je m'explique :

J'ai plusieur user et donc j'ai une table Internaute et je ne sais pas comment faire pour faire les vérifications à partir de ma table.

SI quelqun peut m'aider SVP
cs_apz Messages postés 281 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 11 avril 2013
25 oct. 2004 à 00:00
Meme avis que plopman,

Citation:

Plopman a dit :

Bravo, voila un bon commantaire, bien presenté et soigné :o) . Tres comprehensif pour tout le monde, encore bravo .
Moi je dis 9/10
Pour ton exemple, meme si il ne faut pas tout mélanger, tu aurais pu faire un exemple complet avec inscriptions de membres ... ( avec Bdd ou docs Text )
Bonne continuation
PLopman
------------------------------------------------------------------

Bonne continuation merci.
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
15 sept. 2004 à 10:51
Bon, ca va etre dur de continuer comme ca... Si tu veux, files moi tom adresse MSN par message privé et on voit...

@++

R@f
kimmelf2 Messages postés 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 novembre 2005
14 sept. 2004 à 23:18
tiens mon 2e post n'est pas passe ...

a l'origine, je cherchais des conseils pour mettre au point la gestion d'acces a mon site. je me suis rendu compte que je m'etais complique le truc pour rien. et j'ai donne le principe de ce que je vais mettre en place au cas ou ca interresserai quelqu'un. c'est peut etre pas la meilleure soluce mais bon .....

sinon y'a un truc que je comprend pas trop : en regardant plusieurs sources de groupwares, beaucoup lient leur gestion de session a une BDD. est ce que c'est vraiment utile ???

je ne parle pas de sauvegarder les donnees stockees dans la session vers la BDD, si on donne la possibilite a un utilisateur de parametrer son espace de travail par exemple, c'est normal de le sauvegarder pour le ressortir la fois suivante.

je parle en fait d'une sorte d'historique des sessions.
c'est utile ?????
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
14 sept. 2004 à 17:47
Salut!
Ce que je veux dire, c'est tu attends quoi de moi? Je peux pas te faire un script, alors... ?

@++

R@f
kimmelf2 Messages postés 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 novembre 2005
13 sept. 2004 à 23:07
en fait, je me suis trop complique pour rien !!!
ce que je voulais, c'est un peu comme ici : on arrive sur un site avec divers modules : "pub & sponsors" , "pub" , "rechercher sur le site" ..... dans lesquels on ne peut rien configurer . normal :-)

par contre, lorsque l'admin se log, (je suppose) il peut choisir de voire le site + des liens d'admins pour chaques blocs.

je m'explique : le site propose sans doute des liens dans la barre de titre de chaque module. ainsi, un bloc avec le titre "pub" pourrais voire, pour l'admin, son titre devenir "pub - deplacer le bloc - modifier le bloc - supprimer le bloc" et c'est exactement ca que je veux obtenir

je pense avoir ete + clair

en fait, je cherchais trop complique, je ne sais meme pas trop ce ke je cherchais de si dur ....

c'est hyper simple :
-1- un page de log
-2- une BDD qui me stock les logins, passwords, et statut de l'utilisateur : 2=admin, 1=abonne, 0=anonyme
-3- une fonction qui affiche un text en fonction du statu du user, style
function sess_print($statut, $txt)
{
if ($_SESSION['statut'] >= statut) print $txt;
}
-4- arrivee sur le site : considere comme anonyme
-5- qd le user se log, on place dans la session une variable qui stock le statu du user en question
-6- pour gerer les liens d'admin (cas ou les blocs sont generes par des classes)
echo $this->titre;
sess_print(ADMIN , " - Modifier ce bloc - <a href=................);

ainsi : (ANONYME, "txt") affiche le texte a tout le monde
(USER, "txt") affiche le texte pour un user ou l'admin
(ADMIN, "txt") affiche le texte uniquement pour l'admin

netement + simple que ce que je prevoyais
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
13 sept. 2004 à 18:27
Salut!
Je comprends pas trop... Quel est le pb précis?

@++

R@f
kimmelf2 Messages postés 267 Date d'inscription lundi 22 septembre 2003 Statut Membre Dernière intervention 27 novembre 2005
13 sept. 2004 à 00:06
actuellement, je travail sur un groupware (eGroupWare pour etre precis). c'est un ensemble d'applis (calendrier, carnet d'adresse, editeur de site ....) regroupees pour generer le "vrai" site. c'est a dire que tu te log une fois au debut et ensuite ca te donne acces (en fonction de tes droits evidemment) a l'admin des differentes applis.

la seule page qui est accessible sans login, c'est le resultat du generateur de site, qui comme son nom l'indique sert a generer un site public... :-)

j'ai bien compris le principe dans l'ensemble : on choppe l'id se session dans le cookie, on le verifie dans la bdd, si c'est ok on accede a la page demandee, sinon on est renvoye a la page de loggin. c'est simple car tout est soumis aux sessions sauf le site genere donc il suffit de retirer dans le site genere le bout de code qui test la session.

moi, voici ce que je veux faire :

je prend un compte gratos chez www.hebergeur.com (nom generique, je ne saismeme pas si ca existe :-) ) =>
www.hebergeur.com/moncompte/

quelqu'un qi tape cette url tombe sur un site public qui va afficher par exemple des news, proposer des downloads (legaux evidemment, des projets persos surtout) etc.

par contre, si je tape www.hebergeur.com/moncompte/admin/loggin.php, que je tape mon loggin/pwd, je suis renvoye sur la page d'acceuil www.hebergeur.com/moncompte qui me propose alors toutes les options d'admin des modules : un lien pour administrer les news, un lien pour administrer les downloads ....

peux tu me donner des conseils ???

merci d'avance
cs_koko Messages postés 654 Date d'inscription lundi 14 janvier 2002 Statut Membre Dernière intervention 20 février 2005
13 juin 2004 à 19:38
"Dans le genre session_register et $HTTP_SESSION_VARS ??? :D"
tout a fait ^^
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
13 juin 2004 à 17:07
"j'ai eu peur de voir des fonctions obsolètes mais c'est bon ^^"
Dans le genre session_register et $HTTP_SESSION_VARS ??? :D

P.S Comme je l'ai dis au début du tuto, je m'attarde pas sur le (X)HTML... Bien que je risque de faire un formulaire d'inscription comme l'a suggéré plopman.

@++

R@f
cs_koko Messages postés 654 Date d'inscription lundi 14 janvier 2002 Statut Membre Dernière intervention 20 février 2005
13 juin 2004 à 14:47
un autre moyen pour détruire les variables de sessions :
$_SESSION = Array();
:)

mais il y a certains trucs (bon des détails c'est vrai) comme les pour les
!
est mieux :p
a la place de
le xhtml !

j'ai eu peur de voir des fonctions obsolètes mais c'est bon ^^
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
13 juin 2004 à 11:57
Salut!
De toute facon, les sessions sont supprimées après le temps limite... Je peux pas tester pour la création de 11 fichiers car mon titi serveur est down, paix à son âme. Mais je le ferai dès que j'aurai formaté le tout, :D

Le session_unset n'est pas obligatoire, un moyen de bien enfoncer le clou, ;-)

Merci pour vox commentaires

@++

R@f
RedFo1 Messages postés 73 Date d'inscription lundi 31 mai 2004 Statut Membre Dernière intervention 23 février 2007
13 juin 2004 à 08:29
et j'ai aussi oublié : est-ce qu'il ne faudrait pas mettre des session_destroy() un peu partout où un login faux génère une erreur ? A chaque fois, la fonction session_start() génère une session si l'utilisateur n'autorise pas les cookies... ça fait vite beaucoup de fichiers sur le serveur... Par exemple, que se passe-t-il si une personne non connectée et refusant les cookies ouvre page2.php et la raffraîchit 10 fois ? Je n'ai pas essayé, mais à mon avis il crée 11 sessions sur le serveur.
pour la page2, je mettrais bien :

if(!isset($_GET['SID'])){die("Pas de session ouverte");}
session_id($_GET['SID']);
session_start();
echo 'La variable de session vaut: ' . $_SESSION['variable'];
echo '

[' . url('page3.php') . ' Page3]';

et pour membre.php :
session_start();
if(!isset($_SESSION['pseudo']))
{
header("location: index.php"); // redirection
session_destroy();
exit; // arrêt du script
}

enfin... je débute alors j'en suis pas sûr, mais en tout cas avec ce genre de précautions, mon serveur garde son dossier de sessions vide quand je vais dans un espace réservé sans cookies et sans être loggué.

@+
RedFo1 Messages postés 73 Date d'inscription lundi 31 mai 2004 Statut Membre Dernière intervention 23 février 2007
13 juin 2004 à 08:04
salut,

merci pour ce tut tout simple. J'ai remplacé les cookies par des sessions sans problème :)
Par contre, je me demande juste : dans la fonction de déconnexion, est-ce vraiment nécessaire de mettre session_unset() puis session_destroy() ? Je n'ai mis que session_destroy() et ça marche sans problème (le serveur supprime le fichier de session et on est bien déconnecté) Est-ce qu'il vaut mieux ajouter session_unset() pour des raisons de sécurité ou est-ce que ça va ?

@+
cs_Nox Messages postés 415 Date d'inscription mardi 3 avril 2001 Statut Membre Dernière intervention 26 avril 2008
12 juin 2004 à 19:06
Salut!

Merci pour ce rapide et efficace tuto!

Je n'avais jamais touché aux sessions avant, et ça m'a beauoup apporté, je commençais justement un nouveau site ;)

Merci! 9/10
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
12 juin 2004 à 14:45
Salut!
Je vais voir poure faire cet update.
Merci pour ton commentaire!

@++

R@f
cs_plopman Messages postés 67 Date d'inscription dimanche 29 février 2004 Statut Membre Dernière intervention 13 septembre 2006
12 juin 2004 à 14:43
Bravo, voila un bon commantaire, bien presenté et soigné :o) . Tres comprehensif pour tout le monde, encore bravo .
Moi je dis 9/10
Pour ton exemple, meme si il ne faut pas tout mélanger, tu aurais pu faire un exemple complet avec inscriptions de membres ... ( avec Bdd ou docs Text )
Bonne continuation
PLopman
Rejoignez-nous