2009-12-07 18 views
1

Est-ce possible qu'avec cURL, chaque utilisateur n'utilise pas le même cookie?Gestion des cookies Curl

Parce que c'est cool que je stocke le cookie que je reçois, mais ce cookie sera utilisé par tout le monde, et il devrait l'être, car il s'agit d'un cookie de connexion.

Charlie

+0

Veuillez fournir un contexte à votre problème. –

+0

Mon problème est qu'avec cURL le cookie n'est pas pour le navigateur, c'est pour tout le monde, et ce n'est pas cool avec une chose de connexion. Est-ce que quelqu'un sait quelque chose qui gère mieux les cookies que cURL? – Charlie

+0

Notez que curl est un outil de ligne de commande et il existe des liaisons libcurl pour à peu près tous les langages imaginables de la planète. Ainsi, "utiliser curl" peut être l'un des nombreux moyens différents. Êtes-vous en quelque sorte en référence à l'utilisation de l'une de ces façons particulières ou en général? –

Répondre

2

Votre question est peu claire, que vous voulez tous les utilisateurs d'utiliser le même cookie ou non? Qu'est-ce qu'un utilisateur dans votre cas, un visiteur sur votre site?

Dans tous les cas, vous pouvez définir quel fichier curl va utiliser pour enregistrer/charger ses cookies en utilisant curl_setopt et les constantes CURLOPT_COOKIE *.

+0

Donc, je me connecte sur un ordinateur (via une API), le curl stocke bien le cookie, MAIS sur un autre ordinateur je n'ai pas besoin de me connecter, car il utilise le même cookie, et je ne le veux pas. – Charlie

+2

Ensuite, créez un identifiant pour savoir de quel ordinateur provient la requête, puis utilisez cet identifiant dans le nom de fichier que vous donnez à CURLOPT_COOKIEFILE et CURLOPT_COOKIEJAR. De cette façon, le fichier cookie va changer pour chaque 'ordinateur'. – Lepidosteus

3

Voici un aperçu vraiment de base de la façon dont les cookies fonctionnent

  1. client (navigateur) fait la demande

  2. serveur voit la demande et demande "hey, est-ce client me envoyer un cookie?"

  3. Server ne voit pas un cookie, il fait des choses, et renvoie alors une réponse, avec un cookie

  4. client (navigateur) voit la réponse et dit: « Hé, regardez, un cookie pour moi, je ferais mieux de sauver ce «

  5. la prochaine fois que le client fait une demande de ce même serveur, il envoie le long de ce même cookie

  6. serveur voit la requête et demande » hey, est-ce client me envoyer un biscuit?"

  7. serveur voit le cookie cette fois, et fait un peu de choses différentes à cause de ce qui est dans le cookie, et renvoie alors une réponse, avec un cookie

  8. client (navigateur) voit la réponse et dit « hey regardez, un cookie pour moi, permet de mettre à jour celui que j'ai »

Il semble que le problème que vous utilisez en est que vous avez plusieurs demandes curl en cours d'exécution de la même machine, mais vous voulez chacun à utiliser un fichier cookie différent.

Vous devriez être en mesure d'atteindre cet objectif en utilisant les deux options papillotes

CURLOPT_COOKIEJAR //tells curl which file to save the cookie from the server in 
CURLOPT_COOKIEFILE //tells curl which file to look in and send as the request cookie 

Si vous configurez un système pour que chaque autre demande de boucle est de définir une valeur de chemin différent pour ces deux options suivantes, vous devriez être ensemble.