2009-09-02 7 views
1

Je fais un script PHP qui fonctionnerait comme une API sur site qui n'en fournit pas. J'utilise curl pour cela et le site affiche des cookies avec javascript, donc je ne peux pas les lire.Comment lire le cookie Javascript avec PHP

Existe-t-il une classe PHP ou un module PHP qui lirait javascript, stockerait le cookie et me laisserait le renvoyer avec curl sur la page mentionnée?

J'ai lu quelque part qu'il est possible de lire PHP à partir de Java, alors peut-être y a-t-il un moyen similaire pour JS/PHP?

+0

Est-ce que http://pecl.php.net/package/spidermonkey est un moyen de le faire? – Chris

+0

Quand vous dites "le site envoie des cookies avec JavaScript", que voulez-vous dire? –

+0

Je veux dire que ce site définit cookie avec la fonction javscript setCookie(). Si c'était avec PHP, je pourrais lire ça depuis la fonction crl. – Chris

Répondre

5

Votre meilleur pari est d'essayer de lire le cookie de php. Javascript ne peut pas parler à php lui-même, mais php peut saisir un cookie que javascript a créé.

http://php.net/manual/en/features.cookies.php poursuit en disant:

Les cookies envoyés par le client seront automatiquement inclus dans un _COOKIE $ array-global ...

Hope this helps !

+0

Ou vous cherchez peut-être http://www.php.net/manual/fr/function.setcookie.php – darkAsPitch

0

Il semble que votre script sera "entre" le site et le client? par exemple. le client appelle votre API, et vous vous connectez au site en prétendant être un client, puis renvoyez les résultats?

Si c'est le cas, tous les cookies que le site définit seront renvoyés dans les en-têtes de la page. Vous pouvez y accéder en appelant le

curl_setopt($handle, CURLOPT_HEADER, true); 

avant de demander la page. Lorsque vous obtenez la page retournée, elle aura les en-têtes HTTP au début de celle-ci. Vous pouvez ensuite rechercher dans l'en-tête les lignes "set-cookie" et elles contiendront les détails du cookie que le site tente d'envoyer au client.

+0

Les cookies définis par javascript sont configurés du côté client et ne seront donc pas inclus dans la réponse du serveur . – Cyclonecode

1

Vous devez vérifier la logique du javascript qui écrit le cookie et essayer de le répliquer en utilisant php. Le serveur ne pourra pas vérifier si le cookie a été défini par votre script ou le javascript car le javascript fonctionne sur le client.