Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2007, 13h24   #1
Invité régulier
 
Inscription : septembre 2004
Messages : 43
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 43
Points : 6
Points : 6
Par défaut [cURL] Session de connexion ?

Bonjour,

J'ai un petit souci avec Curl.

En gros je dois me connecter via un formulaire, puis rejoindre plusieurs autres pages qui sont sous sessions.

La connexion au formulaire fonctionne bien, mais dès que j'essaie de rejoindre les autres pages c'est problématique. J'ai systématiquement un message comme quoi je ne suis pas logué.

Alors je souhaiterais savoir comment faire pour que dès que je me connecte via mon formulaire, Curl conserve la session afin de pouvoir naviguer dans les autres pages tranquillement ?

Merci d'avance
Hacken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2007, 13h32   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Ça dépend de la configuration du serveur distant mais il faut probablement dire à cURL d'accepter et gérer les cookies :
  • Accepter les cookies lors de votre requête d'identification en jouant sur l'option CURLOPT_COOKIEJAR (et CURLOPT_COOKIESESSION ?) :
    Code :
    curl_setopt($ch, CURLOPT_COOKIEJAR, realpath('cookie.txt'));
    /!\ Le serveur web devra pouvoir créer (droit en écriture sur le répertoire parent) et/ou écrire dans le fichier indiqué (droit en écriture sur ce fichier). Ici il s'agit du répertoire courant.
  • Renvoyer ces données lors de vos autres requêtes en spécifiant l'option CURLOPT_COOKIEFILE :
    Code :
    curl_setopt($ch, CURLOPT_COOKIEFILE, realpath('cookie.txt'));
Si les sessions ne sont pas basées sur les cookies il faudra capturer cet identifiant dans le contenu de la page pour le réemettre ensuite.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2007, 14h15   #3
Invité régulier
 
Inscription : septembre 2004
Messages : 43
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 43
Points : 6
Points : 6
C'était donc cela... C'est génial ça fonctionne super !

Maintenant, j'ai juste une autre question, c'est le retour des données. Par exemple, j'ai besoin de récupérer des données d'une page.. jusque là pas de souci.

Mais lors de ma connexion au formulaire, Curl me retourne le HTML, or moi j'en ai pas besoin, peut-on lui dire de ne rien me retourner, juste de lancer la requête ?

CURLOPT_RETURNTRANSFER est à false, mais cela ne change rien, il me renvoi quand même le contenu.

Merci d'avance
Hacken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2007, 14h28   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
En mettant l'option CURLOPT_NOBODY à une valeur FALSE ? (je laisserais CURLOPT_RETURNTRANSFER, en plus, à TRUE pour être sûr que rien n'est envoyé au client)
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2007, 14h33   #5
Invité régulier
 
Inscription : septembre 2004
Messages : 43
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 43
Points : 6
Points : 6
Eh bien, encore une fois bien merci pour ton aide.

Mon problème est résolu :-) C'est super !

A+
Hacken est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h38.


 
 
 
 
Partenaires

Hébergement Web