[PHP] Cookies : une partie disparait inexplicablement -> Plante Apache

Cookies : une partie disparait inexplicablement -> Plante Apache [PHP] - PHP - Programmation

Marsh Posté le 21-03-2010 à 20:51:34    

Je suis confronté à un problème que je n'avais encore jamais vu sur de la programmation Web. J'ai un système de session qui selon le type de session (admin ou simple visiteur) a accès un système d'édition de documents. Les informations permettant de créer ces documents sont stockées dans des cookies qui utilise cette structure : (quand ils sont enregistré, c'est dans la base de données)
 
-> $_COOKIE["nom_cookie"]["INFO"]["mon_champ"]
ici, je mets des informations générales qui me serviront par la suite à générer un ensemble de pages, l'initialisation se fait sur une première page
(nombre de page du document, le titre, l'auteur, ...)
 
-> $_COOKIE["nom_cookie"][1]["mon_champ"] / $_COOKIE["nom_cookie"][2]["mon_champ"] / $_COOKIE["nom_cookie"][3]["mon_champ"] ...
ici je mets des informations qui me serviront pour générer des pages, le chiffre dans le nom du cookie défini le numéro de la page, l'initialisation se fait sur une deuxième page et une seul page à la fois peut être ajouté ou édité
(le texte et les images de la page)
 
Les admin ont accès au système d'édition des documents et à leurs générations en PDF alors que les simples visiteurs n'ont accès qu'à la génération des PDF.
 
Toutes les informations sont renseignées par des formulaires.
Je n'ai aucun echo ou affichage de texte avant mes setcookie()
 
J'arrive sans problème à créer 4 pages d'un document, je peux les supprimer et en recréer tend que je ne dépasse pas les 5 pages. Je peux aussi générer le PDF. Par contre, quand j'ajoute une 5ème page, ca bug, je perds ma session, une partie des informations stockées dans le cookie INFO alors que je garde le contenu de mes pages (vérifié avec un print_r). Bien sur, sans les informations du cookie INFO, le système d'édition des documents devient inutilisable.  
 
Et pour couronner le tous, je ne peux pas recréer de session ni executer de code PHP tend que je n'ai pas redémarré le serveur Apache et MySQL. J'ai aussi testé avec différente version de PHP et ca ne change rien.
 
Ma grande question : Pourquoi je ne peux pas ajouter une 5ème page alors que les 4 première marche très bien ?
 
[EDIT]
 
Bon, ca ne marche toujours pas mais j'ai trouvé une solution pour au moins garder le contenu de mon cookie INFO, je récupère le contenu du cookie avant de faire l'ajout de la nouveau page. J'ai par contre toujours la perte de la session et cette fois, au lieu que ce soit dans le cookie INFO que j'ai des pertes de champs, c'est dans ceux des pages (le champs perdu est aléatoire)


Message édité par Wedge63 le 21-03-2010 à 22:31:46
Reply

Marsh Posté le 21-03-2010 à 20:51:34   

Reply

Marsh Posté le 21-03-2010 à 21:24:16    

Quand tu dis que tu perds ta session, tu ne parles pas du contenu de $_COOKIE, rassure-moi?[:autobot]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 21-03-2010 à 22:05:28    

non non, c'est bien de la session en elle-même. J'ai un menu qui s'affiche sur toutes les pages seulement si on est loggué sur le site, il y a donc eu création de session.
Mais là, après l'ajout de la 5ème page, le menu ne s'affiche plus, la session s'est terminé. Pourtant, j'ai bien des session_start() en haut de chaque page.
 
Et puis, je sais quand même un minimum de quoi je parle en ce qui concerne la programmation Web pour avoir programmés plusieurs sites internet ^^

Reply

Marsh Posté le 22-03-2010 à 14:50:25    

Par hasard, t'aurais pas fait une gestion perso des sessions dans une base de données MySQL?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 23-03-2010 à 18:25:39    

Utilises-tu de l'ajax pour faire appel à un script PHP qui sette ton cookie ?
 
Si oui, assures-toi de faire un appel synchrone (asynchronous : false). Tu es peux-être victime du bug des "race conditions". J'ai rencontré ce problème en essayant de setter une variable SESSION, puis de la lire alors que l'appel AJAX n'était pas encore revenu : résultat : une session vide en print_r()... c'est balot !


---------------
Directeur Technique (CTO)
Reply

Sujets relatifs:

Leave a Replay

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