2010-05-21 12 views
1

J'ai une question. Cela peut sembler ridicule, mais laissez-moi vous expliquer ce que je veux accomplir. En ce moment j'essaie d'intégrer le forum open source par site et je veux laisser le forum et les bases de données de mon site séparées. Lorsque les utilisateurs de mon site se connectent, je veux qu'ils soient automatiquement connectés au système de forum. Pour cela, je veux me connecter dans mon code PHP après avoir reçu le nom d'utilisateur et le mot de passe en post, mais je ne sais pas comment je peux obtenir seulement des cookies en réponse. J'ai découvert que je peux utiliser la fonction curl_init(), curl_exec(), curl_close(), mais la réponse de curl_exec renvoie une réponse complète (contenu de la page, cookies, en-têtes). Est-il possible de recevoir uniquement des cookies?Publication dans PHP et réception de seulement cookie

P.S. - Si ma conception est totalement fausse s'il vous plaît donner un conseil comment je peux intégrer cette fonctionnalité! Je serais très reconnaissant!

Répondre

2

Oui, vous pouvez effectuer une requête HEAD. Dans ce cas, le serveur n'enverra que les en-têtes (ceci inclut d'autres choses que le cookie, mais vous devrez vivre avec cela).

Pour boucle, utilisez l'option boucle CURLOPT_NOBODY:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_NOBODY, TRUE); 

Je suppose que vous alors « en avant » les cookies pour le client - la façon dont je le vois, votre approche peut ou peut ne pas fonctionner, selon plusieurs facteurs. Vous devriez voir les implémentations à connexion unique telles que CAS et OpenID.

+1

Son approche peut nécessiter un POST du nom d'utilisateur/mot de passe à la page de connexion du forum afin de recevoir le cookie de session. – webbiedave

+1

Vous avez raison, cela ne fonctionnera probablement pas à moins que l'authentification sur le forum soit faite avec HTTP (basic/digest) et puis repose sur des cookies (serait très inhabituel) ou par GET (qui serait une violation de spécification). – Artefacto

+0

Oui, il faut POST pour cela. J'ai déjà fait ce que je voulais thnx les gars :) – faya

0

La plupart des réponses d'authentification sont redirigées, de sorte qu'il n'y a aucun corps. Dans le cas où quelqu'un utilise Javascript pour rediriger, le corps est très petit, il suffit de l'ignorer.

HEAD ne fonctionne pas dans la plupart des cas. Presque tous les serveurs d'authentification nécessitent un POST pour des raisons de sécurité.