| Bon, pour l instant j ai fait ca dans la page du formulaire, bien sur la session est ouverte en debut de page et on n accede a cette page que si on est dans une sessuiin utilisateur:
xhr_object.open("POST", "ajax.php?PHPSESSID=<?php echo $_COOKIE['PHPSESSID']; ?>", false);
donc je recupère l identifiant session....
et dans le fichier ajax.php je fais ca:
<?php
session_start();
if (isset($_SESSION['login']))
{
}
?>
et ca marche....
donc on peut a priori sur ma configuration (wamp 2.0) utiliser dans une URL une session qui a été crée sur un cookie.... c est pour moi une grosse faille de sécurité du PHP, mais ca m arrange bien ;)
doncm si vous faites de l ecoute reseau sur qqcn qui est connecté snas connection securisé (meme si le mot de passe a été passé en mode sécurisé), alors vous pouvez lui piquer l identifiant de sa session avec wireshark par exemple, et l ajouter dans l URL du site.... et hop, vous squattez sa session....
si vous avez une meilleur solution pour faire passer la sessionm notement ecrire des parametres aditionels dans l entete de la requete envoyée par ajax, je suis preneur!!! je préfererai envoyer la session par les entetes.... Répondre à Nabla's | Bonjour,
Bizarre,
je n'ai jamais eu ce soucis: les variables de SESSION du serveur correspondaient bien --> mes cookie étaient bien transmis...
essaie après ton open:
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
:)
et autre chose:
xhr_object.open("POST", "ajax.php?PHPSESSID=<?php echo $_COOKIE['PHPSESSID']; ?>", false);
pourquoi pas true? : en asynchrone c'est bien plus pratique pour le client: il peut naviguer en attendant la réponse du serveur.
une derniére chose :p
Tu peux te créer une variable
var data= "PHPSESSID=<?php echo $_COOKIE['PHPSESSID']?>& etc... ;
et faire
xhr_object.open("POST", "ajax.php",false);
xhr_object.send(data);
je ne my connait pas plus que ça, ca revient surement au même.
~• Coin Coin •~
replay.homeunix.com Répondre à [o.o]REplay | Merci de ta reponse.
alors pour le mode synchrone / asynchrone, il faut que je refase un essai, mais au debut ou je m en servais, j arrivais pas a le faire marcher en asynchrone, donc je suis passé a autre chose comme ca marchait en synchrone.... mais je croi savoir d ouvenait mon pb ;)
le xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
en fait je suis trop bete, j avais pas vue que j utilisait dans une autre page.... mais je te remercie de me l avori redonné
en revanche, pour le
var data= "PHPSESSID=<?php echo $_COOKIE['PHPSESSID']?>& etc... ;
xhr_object.open("POST", "ajax.php",false);
xhr_object.send(data);
ca ne peux pas marcher. la session doit etre passée en GET ou en cookie, pas en POST (enfin, j en ai jamais entendu parler, et j ai rien vu s y raportant dans la doc de php). et j envoie d autres choses en post, ét vu que je fais un peu mon traitement a la bourin, il faudrai que je fasse gaffe a ce parametter ...
D autant plus que si PHP ne le gère pas en natif (le cookie de session passé en post), ca me sert a rien de le recevoir! il faudrai que je le traite a la main, il faudrai réecrir le session_open(), donc nonm pas la bonne solition.
bonne solution:
xhr_object.setRequestHeader("Cookie", "<?php echo $_COOKIE['PHPSESSID']?>");
voila.. si qqcn a un probleme de session avec ses cookies ... Répondre à Nabla's | Tu peux aussi bien passer les variables en POST qu'en GET avec l'objet xmlHTTPRequest. Il suffit juste de savoir s'en servir.
Pour le mode asynchrone, la réception des données est différente. Je n'ai pas de code sous la main, mais tu peux toruver des tuto en français assez facilement. Sinon je te file ca demain.
Et pour ce qui est des cookies, je n'ai jamais eu à faire ce que tu as fais:
Ma page php appelée me retrouvait bien mon identifiant et mon password par exemple dans mes variables SESSION.
Il doit y avoir un soucis quelque part :S faudrai tout ton code.......mais j'imagine que c'est assez long.
Bonne soirée.
~• Coin Coin •~
replay.homeunix.com Répondre à [o.o]REplay | Oui oui, je sais bien qu on peux passer du post et du GET, je fais les 2 en meme temps ... Répondre à Nabla's | Et sur ta page ajax.php par défaut, si tu fais un echo $_SESSION['login'] il te dit que la variable n'existe pas?
Je trouve ça étrange, car de mon côté, si je lance ma requête XmlHttpRequest depuis une page ou je suis logé, sur la page php appellée mes variables de SESSION sont bien définies :S C'est pourquoi je te dis que ça doit venir de ton header-> Si tu utilises le requestheader que je t'ai conseillé ça ne marche pas?
( xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); )
++
~• Coin Coin •~
replay.homeunix.com Répondre à [o.o]REplay | Bon, visiblement les sessions marchent normalement maintenant...
je sais pas ce qu il c est pasé.. l essentiel c est que ca marche!
et je suis passé en mode asynchrone et ca marche aussi. ca par contre je pense savoir d ou ca vient:
au debut, je voulais faire ca:
function traitement(){mon traitement ici}
function ajax(){
setInterval("Ajax()", 2000 ); //next reload of the page
xhr_object.open("POST", "Ajax.php", false);
xhr_object.send(null);
xhr_object.onreadystatechange = Actualise();
}
mais visiblement on a pas le droit de passer un nom de fontion existant... Répondre à Nabla's |
|
|
|
|
|
|