2010-03-10 8 views
0

En utilisant Snoopy I faire une demande, mais il semble qu'une SESSION différente est utilisée pour le POST? Lorsque je répercute les résultats de la requête, la SESSION est définie mais après avoir cliqué sur un lien, la page retourne à un état non SESSION-set.PHP - Demande POST Snoopy + maintien de la SESSION?

Actuellement, je suis en utilisant ce code pour en faire la demande

$dashboard = new Snoopy; 

$dashboard->referer = "URL"; 
$dashboard->httpmethod = "POST"; 
$dashboard->submit("URL", $_POST); 

echo $dashboard->results; 

Je n'ai pas la possibilité d'utiliser cURL comme j'ai aucun contrôle sur le serveur.

J'ai l'impression que c'est dû à Snoopy de créer un nouveau SESSION_ID pour le POST HTTP? J'ai vu des bits mais rien de concret sur la façon de maintenir SESSION entre ces demandes?

Répondre

0

Si vous ne passez pas SESSIONID à la page que vous appelez avec Snoopy (ce serait vrai pour toute autre façon de faire cette demande HTTP), puis, lors de la génération cette page, PHP:

  • essayez de démarrer une session
  • comme aucun identifiant de session a été reçue, une nouvelle session sera lancé
  • qui sera distinct de celui utilisé dans votre premier script.


Si vous voulez que les deux scripts pour partager la même session, vous aurez au moins passer l'ID de session au second script - qui est généralement fait en utilisant un cookie (voir les cookies que vous avez pour votre site, dans votre navigateur).

Fondamentalement: le script appelé via Snoopy doit recevoir l'identifiant de session, de la même manière que le script appelé par votre navigateur le reçoit.

+0

Comment ferais-je cela? pourriez-vous donner un exemple? ce truc PHP m'évite :) – Mig

+0

Je ne sais pas vraiment, avec Snoopy - mais en regardant son code, il semble qu'il y ait une propriété '$ cookies'; vous pouvez l'utiliser pour définir un cookie appelé 'PHPSESSID' * (ou le nom requis sur votre système - voir http://fr.php.net/manual/fr/session.configuration.php#ini.session.name) *, qui a la même valeur que votre actuel '$ _COOKIE ['PHPSESSID']' –

0

Vous devez appeler la fonction session_start en soumettant le fichier URL. Ainsi, la session peut être maintenue comme vous le souhaitez.