begin process at 2010 02 10 04:21:02
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriaux

 > UN TITIT TUTO SUR LES SESSIONS

UN TITIT TUTO SUR LES SESSIONS


 Information sur la source

Note :
9,5 / 10 - par 12 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Tutoriaux Niveau :Débutant Date de création :12/06/2004 Date de mise à jour :12/06/2004 09:12:43 Vu / téléchargé :31 399 / 5 935

Auteur : coockiesch

Ecrire un message privé
Site perso
Commentaire sur cette source (28)
Ajouter un commentaire et/ou une note

 Description

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


 Conclusion

Voila, j'attends vos commentaires et critiques pour le mettre à  jour!

@++

R@f

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

GÉRER UN .HTPASSWD
RÉCUPÉRER L'IP DU VISITEUR
Source avec Zip Source avec une capture IMAGE ANTI-SPAM
MOTEUR DE RECHERCHE DANS BDD II
PRETTY DATE

 Sources de la même categorie

Source avec Zip EXEMPLE DE CRÉATION D'UN SCRIPT D'AUTHENTIFICATION par phpAnonyme
Source avec Zip Source avec une capture N/X API: GOOGLE MAPS DEPUIS PHP VALID W3C par GillesWebmaster
PHP EXTRAIRE DES MAILS D'UN GROS FICHIER LOCAL OU DISTANT par cosmoswarezone1
FORMULAIRE PHP + VERIFICATION + ENVOI DU MAIL par cosmoswarezone1
Source avec Zip Source avec une capture CODE BARE!!! par toutoos

Commentaires et avis

Commentaire de plopman le 12/06/2004 14:43:49

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

Commentaire de coockiesch le 12/06/2004 14:45:15

Salut!
Je vais voir poure faire cet update.
Merci pour ton commentaire!

@++

R@f

Commentaire de Nox le 12/06/2004 19:06:49

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

Commentaire de RedFo1 le 13/06/2004 08:04:29

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 ?

@+

Commentaire de RedFo1 le 13/06/2004 08:29:48

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 '<br><br><a href="' . url('page3.php') . '">Page3</a>';

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é.

@+

Commentaire de coockiesch le 13/06/2004 11:57:12

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

Commentaire de koko le 13/06/2004 14:47:11

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 <br> ! <br /> est mieux :p
<input type="text" ... /> a la place de <input type="text" ... >
le xhtml !

j'ai eu peur de voir des fonctions obsolètes mais c'est bon ^^

Commentaire de coockiesch le 13/06/2004 17:07:48

"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

Commentaire de koko le 13/06/2004 19:38:04

"Dans le genre session_register et $HTTP_SESSION_VARS ??? :D"
tout a fait ^^

Commentaire de kimmelf2 le 13/09/2004 00:06:26

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

Commentaire de coockiesch le 13/09/2004 18:27:47

Salut!
Je comprends pas trop... Quel est le pb précis?

@++

R@f

Commentaire de kimmelf2 le 13/09/2004 23:07:12

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 , " - <a href=\"modif.php?block_id=XXX\">Modifier ce bloc</a> - <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

Commentaire de coockiesch le 14/09/2004 17:47:03

Salut!
Ce que je veux dire, c'est tu attends quoi de moi? Je peux pas te faire un script, alors... ?

@++

R@f

Commentaire de kimmelf2 le 14/09/2004 23:18:57

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 ?????

Commentaire de coockiesch le 15/09/2004 10:51:00

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

Commentaire de apz le 25/10/2004 00:00:29

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.

Commentaire de Arnauti le 27/11/2004 19:59:34

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

Commentaire de coockiesch le 28/11/2004 01:03:48

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

Commentaire de Matt 261 le 20/07/2006 16:26:47

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?

Commentaire de coockiesch le 20/07/2006 16:45:19

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

Commentaire de Matt 261 le 20/07/2006 16:51:20

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

Commentaire de coockiesch le 21/07/2006 14:54:33

Salut!
Contacte moi par MP, si tu veux... Tu peux me filer ton MSN, aussi, :)

@++

R@f

Commentaire de Matt 261 le 21/07/2006 15:09:53

Ok d'accord, je t'envoie un MP tout de suite. Merci beaucoup :D .

@+
Matt

Commentaire de tibob135 le 04/12/2007 01:46:49

EllE est où la table?

merci

Commentaire de coockiesch le 04/12/2007 07:21:03

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

Commentaire de dededede4 le 12/05/2008 14:33:46 7/10

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

Commentaire de dededede4 le 12/05/2008 16:11:32

--'
Jsuis con :D
J'ai pas regarder le scriipt conplétement, ne lit pas les connerie que j'ai a propo de sql x)

Commentaire de nono171 le 06/07/2008 22:24:04 10/10

J'ai vraiment trouvé ça instructif, merci beaucoup !

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales