Session, mysql, class, PEAR [Résolu] - PHP - Programmation
Marsh Posté le 29-04-2005 à 21:49:49
Allé, un éffort ! Je suis sur que cette class pourra resservir à quelqu'uns...
J'oublie de préciser qu'en fesant
Code :
|
j'obtient une insertion dans la table qui contient l'id de séssion.
Voici d'ailleur la table en question :
Code :
|
Marsh Posté le 30-04-2005 à 13:06:02
Marsh Posté le 30-04-2005 à 21:32:26
Mon dieu ! Mais que ce passe-t-il ? bientôt 36h écoulées et toujours pas de réponse ! Même pas une petite insulte
Marsh Posté le 30-04-2005 à 23:31:59
Ben disons que l'on fait rarement le "SAV". Ceci inclus egalement les codes obscures que l'on peut trouver dans les bouquins.
C'est d'ailleurs ce que je reproche a certains bouquins. Des fois ils donnent trops d'explication sur le code, et des fois aucune explication...
Personellement j'ai deja une classe qui s'occupe de metre mes sessions dans une table. Faudrait que je prenne le temps un jour de la netoyer et refaire un peu...
Pour en revenir a ta classe, perso je l'aime pas trop. PEAR sont des extensions pour php, et il me semble que tous les hebergeurs ne les ont pas forcement, c'est pour cela que je prefere ne pas les utiliser. Comme ca cela m'evite de mauvaises surprises ...
Sinon, le fait que tu n'ai pas beacoup de succes, et je pense, egalement la faute de PEAR. En effet, pour "debugger" ta classe, il faudrait voir les fichiers PEAR.php ainsi que DB.php. Tout le monde n'as pas forcement envie de passer du temps rien que pour trouver ces fichiers, etudier le code puis faire des tests ...
Alors voila, je vais voir si je trouve la motive pour me plonger dans PEAR et dans cette classe, mais c'est pas gagne ...
[edit]
Bon j'ai regarde un peu ta classe. C'est quoi le probleme en fait ? Car ta classe, si aucune erreur se produit, s'enregistre comme "session handler". Ce qui veut dire que php va deleguer la gestion des sessions a la classe.
Pour l'utiliser il suffit donc de simplement, inclure la classe et l'instancier. Ensuite tu peux utiliser les sessions comme tu fais d'habitude.
Pour le SID, pkoi veux-tu le recup ? Tu peux essayer session_id().
Pour eregistrer des variables dans la session, suffit de les mettre dans le tableau $_SESSION. Meme chose pour les recup.
Niveau secu, les sessions dans un tableau c'est mieux je trouve. Au moins tu n'as pas de probleme au niveau du hijacking des sessions par tes "voisins".
Sinon niveau perf, je pense pas que cela impacte beacoup.
Marsh Posté le 01-05-2005 à 10:36:26
cerel a écrit : Ben disons que l'on fait rarement le "SAV"(1). Ceci inclus egalement les codes obscures(2) que l'on peut trouver dans les bouquins. |
(1) A vrai dire, je n'ose pas trop envoyer de mail aux éditions O`Reilly
(2)Mais qu'a-t-il d'obscure
(3)D'accord avec toi : Cette class est une des seules à ne pas être expliqué dans le bouquin. Et evidement, elle m'interesse...
(4)A mon avi, ça en arrangerait plus d'un
(5)Pour le moment je test le site du mon server perso sur mon réseau local : donc pas de problème pour mettre PEAR. Mais à long terme, c'est sur un "vrai" serveur dedié que sera hebergé mon site qui appartient à un ami et que me laissera l'accès ROOT. Donc là non plus pas de problème pour ma part. Mais en effet, pour des hébergement mutualisés, on peut éffectivement s'attendre à quelques mauvaises surprises...
(6)A vrai dire, en repensant à ce que tu viens de dire à propos de PEAR, je me pose de sérieuses questions quand à l'utilisation de PEAR dans mon site...
(7)Je vien de me rendre compte en cherchant dans google et en regardant dans mes cookies que la valeur du sessionid était contenu dans mes cookies...
Je vais donc modifié mon php.ini avec :
Code :
|
Je verrais ce que ça donne quand j'en aurais le temps... Là, je vais aller commencer mes devoirs...
Merci encor pour l'attention portée à ce post
EDIT : Après modifications du php.ini, j'obtien bien : http://xxx.homelinux.net/page.php? [...] 1f0af18df4
Une chose qui me ferais vraiment plaisir :
Un lien vers une explication sur les sessions enregistrés dans une db mysql... Avec des exemples, etc... Que je comprenne au moins. Car j'ai beau cherché dans google, je tombe sur des forums où l'on parle de sécurité avec les sessions, mysql, etc... Mais je n'ai pas trouvé d'exemple concret avec des explications...
EDIT 2 : Sinon, les sessions fonctionnent bien mais elles ne sont pas enregistrées dans la bd mysql
Marsh Posté le 03-05-2005 à 17:51:46
Marsh Posté le 03-05-2005 à 20:37:54
Tu peux essayer ADODB, qui est un "layer". En gros c'est une classe qui fait un peu pres la meme chose que le DB.php de pear.
Adodb contient deja une classe qui s'occupe de stocker les sessions dans une table. Moi c'est ca que j'utilise.
Bon en fait j'ai une classe session qui s'occupe de creer la session qui s'occupe d'inclure la classe d'adodb concernant les sessions dans une table, puis je cree un session.
Enfin j'initialise quelques variables de session.
Marsh Posté le 03-05-2005 à 21:48:41
Merci pour la réponse,
Je suppose que tu parles de http://adodb.sourceforge.net/. Je ne le connaissais pas encor mais avec le long week-end qui s'annonce, je vais tester un peux ça.
Merci encor pour la réponse
Marsh Posté le 05-05-2005 à 10:58:22
J'ai fouillé un peu sur le site et j'ai trouvé la doccorrespondant aux sessions avec adodb.
Mais bon, il faut que je sois réaliste, le site en question n'a pas vraiment besoin d'une sécurité acrue. En effet, aucuns numéros de cartes bancaires ne circuleront... Et surtout, je serais sur un server dédié, donc pas trop de problèmes pour les vols de sessions dans /tmp
EDIT : Je vien de comprendre la classe en lisant ceci, c'est à peu près la même chose mais dans un fichier.
EDIT2 : Un exemple quand même :
index.php
Code :
|
page.php
Code :
|
Un inconvénient tout de même, lorsque que les cookies sont bloqués, cela ne fonctionne plus...
Merci encor pour l'aide que vous m'avez apporté.
Marsh Posté le 29-04-2005 à 14:31:58
Bonjour à tous,
J'ai acheté le livre "PHP en action"(php cook) et il y figure une recette permettant de stocker les sessions dans une table à la place de les stocker dans /tmp. Le problème est que cette recete n'a pas d'explication quand à sont utilisation. J'ai beau avoir avoir éssayé de multiples combinaisons pour l'utiliser, mais en vain...
Je me suis alors tourné vers google qui ma retourné 5 résultat dont un script qui utilise cette recette(En réalité, le script inclut juste la classe mais ne se sert pas des sessions...).
Bref, je suis paumé et je m'en remets à vous
Le class.pcdbsession.php :
Le fichier de test :
Un print_r($s); me retourne :
Pour en venir aux questions suivantes :
- Comment utiliser correctement cette classe ?
- Comment récupérer le SID ? En ajoutant un constructeur qui me récupère l'id ?
- Comment insérer des valeurs dans $_SESSION en utilisant cette classe ?
- Comment récupérer des valeurs dans $_SESSION en utilisant cette classe ?
- Avez vous un liens vers de la doc à propos de cette classe ?
- Niveau sécurité, est-ce mieux que de simples sessions dans /tmp ?
- Est-ce que ça "consomme" beaucoup ?
En vous remerciant par avance..
Message édité par yoyo354 le 05-05-2005 à 11:44:23
---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47, 2 users, load average: 0.07, 0.03, 0.00