2011-04-20 1 views
2

Je développe une application qui effectue une connexion à distance, entre autres, via cURL.PHP & proxy cURL - comment faire un pot de cookie multi-utilisateur?

Le site distant distribue un cookie de session que je peux stocker dans mon cookie-jar.

Je souhaite que chaque utilisateur sur mon site dispose d'une session unique sur le site distant. Mon application fonctionne bien avec un seul utilisateur (moi), mais je ne suis pas sûr de savoir comment le rendre multi-utilisateur.

Mon premier réflexe est de définir une variable de session pour les utilisateurs de mon application, puis d'utiliser cette variable comme nom du cookie jar, mais cela semble moche.

Y a-t-il une fonctionnalité PHP/cURL intégrée qui transmettra la session unique du serveur distant à mes utilisateurs?

Un grand merci pour toute aide.

Jack

Répondre

3

Votre question a tous les éléments d'une solution, à savoir jarre à biscuits et des sessions.

Lorsque vous fournissez le fichier cookie jar pour CURL simplement donner un nom en fonction de votre utilisateur, par exemple:

$protected_cookie_dir='/cookies/'; 
$uid=getUser()->id; // get the user id 
curl_set_opt($ch,CURLOPT_COOKIEFILE,$protected_cookie_dir.'file_'.$uid.'.data'); 
curl_set_opt($ch,CURLOPT_COOKIEJAR,$protected_cookie_dir.'jar_'.$uid.'.data'); 

Important: Assurez-vous de cacher ce dossier (peut-être le stocker en dehors de votre racine du document).

+0

Merci pour la réponse. Je pense que ma question pourrait être un peu ambiguë - quand je dis 'multi-utilisateur' je veux dire 'plusieurs utilisateurs simultanés' plutôt que réellement 'géré par l'utilisateur'. Ce que je retiens de votre réponse, c'est que stocker le cookie de session à distance dans un jar défini par quelque chose d'unique à la session PHP en cours - par exemple session_id() est la bonne façon de faire les choses. Merci d'avoir éclairci ça pour moi. –

+0

De rien! Mais soyez averti qu'il existe un paramètre CURL que vous devez utiliser pour réinitialiser les cookies entre chaque appel, sinon les cookies volatils peuvent fuir entre les sessions. Regardez ceci ici pour plus de détails: http://www.php.net/manual/fr/function.curl-setopt.php – Christian

+0

Merci pour cette information, CURL crée-t-il automatiquement ces fichiers cookie lorsque vous les référencez? Ou doivent-ils être créés dans le même script? –