[CREATION] Système personalisé de session (PHP >= 4)

Système personalisé de session (PHP >= 4) [CREATION] - PHP - Programmation

Marsh Posté le 01-07-2006 à 16:34:01    

Pourquoi créer un système personnalisé de sessions ?
 
- Parce que c'est intéressant et que j'aime bien ce qui est inutile.
- Parce que j'ai envie qu'on puisse pirater mon site facilement.
 
Bon les vraies raisons maintenant :
 
- Parce que ça permet de faire des scripts encore plus portables sachant que certains hébergeurs puent de la gueule et imposent leur propre système/dossier/etc...
- Parce que ce genre de truc :
 

Code :
  1. ini_set('arg_separator.output', '&');
  2. ini_set('session.use_trans_sid', false);
  3. ini_set('session.use_only_cookies', true);


 
... ne marchent pas partout, et que ça fait chier de voir gueuler le validateur. :o
 
- Parce que j'aime bien réinventer la roue. :o
 
 
Où télécharger ce système de session ?
 
ici : http://tousleschats.free.fr/hermes/sessions.zip
 

Comment on s'en sert ?

 
Voici un copier coller du fichier d'exemple :
 

Code :
  1. <?php
  2. // **************************
  3. // * Inclusion des sessions *
  4. // **************************
  5. define("ADR", "" );
  6. define("NOM_COOKIE", "cms2" );
  7. include(ADR."sessions/fonctions-sessions.php" );
  8. // *************************************************
  9. // *                                               *
  10. // * Démarrer la session                           *
  11. // *                                               *
  12. // * $id_session est l'identifiant de session créé *
  13. // *                                               *
  14. // *************************************************
  15. /*
  16. $id_session = session('start');
  17. */
  18. // ***************************************************************
  19. // *                                                             *
  20. // * Détruire la session en cours                                *
  21. // *                                                             *
  22. // * Il faut obligatoirement fournir l'identifiant de la session *
  23. // *                                                             *
  24. // ***************************************************************
  25. /*
  26. session('stop', $id_session);
  27. */
  28. // ****************************************************************************  
  29. // *                                                                          *
  30. // * Initialiser des variables de sessions et leur attribuer une valeur       *
  31. // *                                                                          *
  32. // * Soit un tableau $tbl_variables                                           *
  33. // * syntaxe : $tbl_variables['nom_de_la_variable_de_session'] = "sa valeur"; *
  34. // *                                                                          *
  35. // * session('set', $tbl_variables, $id_session);                             *
  36. // *                                                                          *
  37. // * Note : le 3° paramètre est facultatif et sert si on veut passer          *
  38. // *        l'identifiant de session par l'adresse et non par les cookies     *
  39. // *                                                                          *
  40. // ****************************************************************************
  41. /*
  42. $tbl_variables = array();
  43. $tbl_variables['var_x'] = 12;
  44. $tbl_variables['var_y'] = "une chaine";
  45. $tbl_variables['var_z'] = "";
  46. session('set', $tbl_variables, $id_session);
  47. */
  48. // ****************************************************************************
  49. // *                                                                          *
  50. // * Lire les variables de session                                            *
  51. // *                                                                          *
  52. // * Syntaxe : $tbl_variables = session('read', $id_session);                 *
  53. // *                                                                          *
  54. // * Cela renvoie un tableau dont on affiche les valeurs comme ceci :         *
  55. // *                                                                          *
  56. // * echo $tbl_variables['nom_de_la_variable_de_session_a_afficher'];         *
  57. // *                                                                          *
  58. // * Note : le 2° paramètre est facultatif et sert si on veut passer          *
  59. // *        l'identifiant de session par l'adresse et non par les cookies     *
  60. // *                                                                          *
  61. // ****************************************************************************
  62. /*
  63. $test = session('read');
  64. print_r($test);
  65. */
  66. // ****************************************************************************
  67. // * Detruire des variables de session                                        *
  68. // *                                                                          *
  69. // * Syntaxe : soit le tableau $tbl_variables.                                *
  70. // *           On renseigne les noms des variables à détruire comme ceci :    *
  71. // *           $tbl_variables[0] = 'nom_de_la_variable_a_detruire';           *
  72. // *                                                                          *
  73. // * session('unset', $tbl_variables, $id_session);                           *
  74. // *                                                                          *
  75. // * Note : le 3° paramètre est facultatif et sert si on veut passer          *
  76. // *        l'identifiant de session par l'adresse et non par les cookies     *
  77. // *                                                                          *
  78. // ****************************************************************************
  79. /*
  80. $tbl_variables = array();
  81. $tbl_variables[0] = 'var_y';
  82. $tbl_variables[1] = 'var_z';
  83. session('unset', $tbl_variables, $id_session);
  84. */
  85. ?>


 

Questions (je prend les devants) :

 
- Puis-je passer par la barre d'adresse en plus des cookies si jamais le client a désactivé le cookie.

 
Oui.  

- Comment je change les droits des fichiers de sessions ?

 
Dans le fichiers fonctions-sessions.php, la constante DROITS_SESSIONS est là pour ça ligne 7.
 
- Comment je rêgle le temps au delà duquel les sessions doivent être détruites si l'utilisateur laisse son ordi en plan ?
 
A la ligne 8 du fichier fonctions-sessions.php, la constante SESSIONS_EXPIRE permet de rêgler cela (elle s'exprime en secondes). 86400 = 24 heures.
 
 
Voilà, si certains ont des questions ou sont intéressés par mon script, ce topic est là pour ça. [:spamafote]


Message édité par Hermes le Messager le 01-07-2006 à 16:36:58
Reply

Marsh Posté le 01-07-2006 à 16:34:01   

Reply

Marsh Posté le 01-07-2006 à 17:09:21    

J'attends de voir les commentaires sur le tiens avant de présenter celui qu'on a developpé avec un pote :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 01-07-2006 à 17:19:20    

Il est pourri ton script....
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
...il fait pas le café :D


Message édité par gatsu35 le 01-07-2006 à 17:19:40
Reply

Marsh Posté le 02-07-2006 à 14:38:26    

pas le temps de regarder ca pour l instant.
 
Feedback pour bientot ;)

Reply

Marsh Posté le 10-07-2006 à 22:22:07    

supermofo a écrit :

pas le temps de regarder ca pour l instant.
 
Feedback pour bientot ;)


 
 
Alors j'ai lu ce système de gestion de sessions et voila le rapport:
 
- Personnalisation du temps d'expiration => +1
- Verification pré-traitement de session => +1
- Rapidite d execution et securite => à voir
 
Le système me parait solide en général par contre je ne vois pas ou tu gères l'équivalent se session_regenerate_id() .
 
Note: 16/20 ( en restant sévère )
 
 
Bon courage

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed