Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/05/2006, 14h09   #1
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 72
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 72
Points : 25
Points : 25
Par défaut [Sécurité] Session avec Ajax

Bonjour tout le monde

Je débute actuellement avec AJAX, pour se faire j'utilise un petit framework XHRConnection qui est très simple d'utilisation. Après que petites réalisations, je suis confronté à un petit soucis concernant les varialbes de session.

J'ai la page principale qui contient ma balise <div> où est affiché les infos retournées. J'envoie des données via l'objet XmlHttpRequest vers une page PHP dans la quelle je réalise des différents traitements.

Ma page principale contient une session, j'arrive à récupérer ses valeurs par l'intermédiaire $toto= $_SESSION['toto'] malheuresement je n'arrive pas mettre à jour ma variable de session de la page de traitement vers la page principale.

De plus dans la page principale je fais un require('operation.php) qui contient de nombreuses fonctions et dans ma page de traitement je suis obligé de refaire le require('operation.php) pour pouvoir les utiliser.

Donc en gros je voudrais savoir comment vous procéderiez pour contournez ce problème? Je vous remercie.
Florent08800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2006, 14h19   #2
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
Salut !

alors... il y a plusieurs choses....

déjà, n'oublie pas que quand tu utilises AJAX, c'est une NOUVELLE requête qui est envoyé un serveur, donc un NOUVEAU script qui est lancé, sans aucun lien avec le précédent, toutes les variables ou fonctions qui ont pu exisiter dans le script qui a générer la page web qui utilise AJAX ont normalement été détruites depuis "longtemps" (au minimum plusieurs secondes je pense)

donc il te faudra refaire les includes, connection à la BDD etc... c'est une nouvelle page que tu génère, le fait qu'elle soit appeller par AJAX n'y changera rien...

ensuite, au sujet plus précisément des sessions, il est possible que le SID ne soit pas transmis, dans ce cas, assure toi de le transmettre manuellement, en ajoutant
Code :
session_name().'='.session_id()
(en PHP) en variables d'URL de la page appellée par AJAX
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2006, 14h28   #3
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 72
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 72
Points : 25
Points : 25
Merci du conseil Swoög

En gros le travail que j'ai à réaliser c'est de créer un déroulement en ajax, de 4 pages php pour améliorer la fluidité de cette exécution et d'utiliser le fait qu'ajax nerecharge qu'une partie de la page. On m'a demandé de le réaliser en Ajax, donc voilà le pourquoi du comment.

Sinon comment je devrai effectuer le travail demandé?
Florent08800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2006, 14h43   #4
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
ta technique est bonne, mais tu as simplement commis quelques erreurs en utilisant AJAX
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 16h00   #5
Invité régulier
 
Inscription : juin 2003
Messages : 9
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 9
Points : 5
Points : 5
Envoyer un message via MSN à raytaller
Bonjour,

J'ai le même problème, et l'id de session ne semble pas permettre à mon script distant de la récupérer.

Ma fonction d'appel ressemble à ça :
Code :
1
2
3
4
5
 
                var XHR = new XHRConnection();  
                XHR.setRefreshArea('magalerie-photos');
                XHR.sendAndLoad('mapage.php?<?php echo session_name().'='.session_id(); ?>&tid="+rid+"', "GET");
                return true;
tid est un paramètre dont je me sers dedans.

Et donc, mon script est bien appelé, mais quand je fais :
=> rien



Code :
1
2
session_start();
print_r($_SESSION);
=> "Array ()"



Code :
1
2
3
 
session_start();
print_r($_REQUEST);
=> Array (
[SN44f1945725361] => 0bd98ec9e903a0fb1f630e5e49b63710
[tid] => ycmxqupuannivxxz
[MODxLoggingCookie] => 1262700097
[PHPSESSID] => 5b2c76cd414bc6be5a4b5cf688b4d1aa
)

Sachant que j'utilise le CMS MODx, j'imagine que MODxLoggingCookie vient de lui. Sinon, mon id de session est bien transmis.. je pige pas pourquoi session_start() récupère pas tout.
Ah oui, je n'ai aucune idée de ce à quoi la clé SN44f1945725361 correspond.


Vous savez dans quels cas le session_start peut ne pas récupérer les variables quand PHPSESSID est transmis ?
Merci !
raytaller est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 16h32   #6
Invité régulier
 
Inscription : juin 2003
Messages : 9
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 9
Points : 5
Points : 5
Envoyer un message via MSN à raytaller
Je n'ai toujours pas résolu mon problème, mais je pense que le paramètre inconnu est en fait le cookie d'un autre cms/appli (type phpMyAdmin) que j'utilise, puisque je travaille sur mon domaine de dev qui est commun à tous mes développements.
Mais sinon, mon problème est toujours là !
raytaller est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 17h37   #7
Invité régulier
 
Inscription : juin 2003
Messages : 9
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 9
Points : 5
Points : 5
Envoyer un message via MSN à raytaller
Par défaut Résolu !

Bon, en fait, j'ai fini par trouver...
C'est simplement que mon CMS a un nom de session propre, et que ma requête Ajax ne passait pas par le CMS, d'où perte de la session.

J'ai donc résolu ça avec un simple session_name au début de mon script distant.
Voilà
raytaller est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h52.


 
 
 
 
Partenaires

Hébergement Web