IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[cURL] Non prise en compte des cookies avec librairie curl


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 73
    Points : 54
    Points
    54
    Par défaut [cURL] Non prise en compte des cookies avec librairie curl
    Bonjour.

    Je récupère des pages web avec la librairie curl.

    Certaines necessitent la prise en compte de cookies pour avoir un affichage des côtes au format décimal..

    Voici une partie de mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $fp = fopen($localfile, "w");
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    // curl_setopt($ch, CURLOPT_COOKIEFILE, $file);
    // curl_setopt($ch, CURLOPT_COOKIEJAR, $file);
    // curl_setopt($ch, CURLOPT_REFERER, $domaine);
    curl_exec($ch);
    curl_close($ch);
    fclose($fp);
    J'active ou nom les lignes commentées selon les pages à récupérer.

    J'ai malheureusement un problème avec cette page :
    http://www.ladbrokes.com/lbr_sports?...SPORTS&hc1=144

    Malgrés la présence de $file qui contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    .ladbrokes.com	TRUE	/	FALSE	32504284790	FLAGS	en|en|uk|default|DECIMAL|0|EUR
    www.ladbrokes.com	FALSE	/	FALSE	1198933277	flash_version	6
    www.ladbrokes.com	FALSE	/	FALSE	1227912807	SYS_SOURCE	OBS_WEB
    www.ladbrokes.com	FALSE	/	FALSE	1577836800	CP	null*
    www.ladbrokes.com	FALSE	/	FALSE	32504284793	LANG	en
    la page récupérée affiche les côtes au format FRACTION et non DECIMAL (spécifié dans le cooky).

    Merci à la personne qui pourra me donner la solution ou simplement la commande qu'il me manque.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Après avoir copier/coller le contenu du cookie donné plus haut dans un fichier cookie.txt au même niveau que le script suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $ch = curl_init('http://www.ladbrokes.com/lbr_sports?action=go_generic_link&level=TYPE&key=110000914&category=SPORTS&hc1=144');
    curl_setopt($ch, CURLOPT_COOKIEFILE, realpath('cookie.txt'));
    curl_exec($ch);
    curl_close($ch);
    J'obtiens :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sunday 2nd of December, 2007  	
      New Jersey Devils vs Atlanta Thrashers
    1.95 		New Jersey Devils 	4.20 		Draw 	3.10 		Atlanta Thrashers 	  	22:00
    (ceci n'étant qu'un extrait)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 73
    Points : 54
    Points
    54
    Par défaut
    Merci julp, grâce à toi j'ai compris mon erreur.

    En fait je n'utilisais pas realpath() mais je spécifiais $path . $file pour le cookie.
    Or ce fameux $path a changé entre temps.
    Défini auparavant sur c:\toto, il est passé à c:\loulou (exemple).

    'CURLOPT_COOKIEFILE' ne trouvait donc pas le bon fichier.

    Par contre, les lignes suivantes fonctionnait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    curl_setopt($ch, CURLOPT_COOKIEJAR, $localpath . $cookiefile . '.txt');
    curl_exec($ch);
    alors que $localpath n'existait pas !
    Comment curl_setopt() peut-elle créer un fichier dans un chemin qui n'existe pas ???

    Moralité, toujours utiliser realpath() plutôt que de spécifier le chemin en dur.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. non prise en compte des changements de form.design
    Par rosana23 dans le forum Windows Forms
    Réponses: 24
    Dernier message: 01/01/2010, 12h35
  2. Non prise en compte des custom error
    Par Neikeur dans le forum ASP.NET
    Réponses: 0
    Dernier message: 07/04/2009, 17h03
  3. Non prise en compte des modifications de l'IHM
    Par specialka dans le forum MFC
    Réponses: 16
    Dernier message: 17/10/2008, 17h55
  4. SQL Loader - Non prise en compte des titres
    Par zizou771 dans le forum SQL*Loader
    Réponses: 2
    Dernier message: 16/07/2008, 16h30
  5. EXCEL : non prise en compte des lignes >51
    Par h_mag_14 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/11/2006, 23h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo