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

Langage PHP Discussion :

cURL | file_get_contents ne fonctionne pas sur un site distant


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    IT Operator
    Inscrit en
    Mars 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : IT Operator
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 43
    Points : 44
    Points
    44
    Par défaut cURL | file_get_contents ne fonctionne pas sur un site distant
    Bonjour tout le monde !

    Alors voilà, j'utilise à la base le _simple_html_dom.php (disponible ici http://simplehtmldom.sourceforge.net/) pour pouvoir parser des pages web sur un site spécifique (jeuxvideo.com pour pouvoir récupérer des noms de jaquette etc).

    J'ai testé sur XAMPP en local, et ça fonctionne parfaitement. J'ai basculé sur mon serveur et là je galère depuis plusieurs jours a tout essayé mais rien ne marche. Alors quand je teste ça sur mon serveur j'obtiens une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2017/08/29 21:05:45 [error] 18934#0: *1 FastCGI sent in stderr: "PHP message: PHP Warning:  file_get_contents(http://www.jeuxvideo.com/jeux/switch/jeu-593932/): failed to open stream: HTTP request failed!  in /var/www/XXX/test.php on line 2" while reading response header from upstream, client: 80.214.116.52, server: www.MYHOSTNAME.com, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "www.MYHOSTNAME.com"
    Après j'me suis dit bon ok je fais en cURL, puis là bah ça fait rien -> page blanche alors que si je met un autre site je récupère bien la page en cURL. En ligne de commande ça donne "curl: (52) Empty reply from server" . Je me suis dis ok c'est surement des headers qui manque alors du coup je met ça comme option (en PHP):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    curl_setopt ($ch, CURLOPT_URL, $baseurl);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com'); 
    curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt ($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    toujours une page blanche en retour

    Donc je me tourne vers vous en dernier recours : Pouvez-vous tester de votre côté voir si ce n'est pas que moi, ou si j'ai peut-être oublié un header ou autre chose qui ferait que je sois "bloqué" à partir de mon serveur mais pas bloqué à partir de XAMPP en local sur mon pc ? (c'est surtout cette partie qui me dérange, file_get_contents qui fonctionne sur XAMPP mais pas via mon serveur...Si le site distant faisant des verifs de headers ou quoi ce serait justement pire avec XAMPP puisque niveau header y'a encore moins par défaut... bref je sais pas )

    Merci d'avance !

  2. #2
    Membre du Club
    Homme Profil pro
    IT Operator
    Inscrit en
    Mars 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : IT Operator
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 43
    Points : 44
    Points
    44
    Par défaut
    Bon, j'ai deux servers chez deux hébergeurs différents.

    curl -v http://www.jeuxvideo.com ça marche pas sur le serveur #1 (empty reply from server)

    curl -v http://www.jeuxvideo.com ça marche sur le serveur #1

    ... Je comprend pas trop pourquoi ça marche pas sur le serveur #1, peut-être un firewall ou quoi entre le serveur #1 et le site distant qui fait ça

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/03/2017, 21h52
  2. Réponses: 1
    Dernier message: 10/12/2009, 11h23
  3. Réponses: 7
    Dernier message: 20/11/2008, 10h27
  4. video ne fonctionne pas sur le site
    Par marssupilamis1 dans le forum Débuter
    Réponses: 13
    Dernier message: 18/10/2008, 16h26
  5. file_get_contents ne marche pas sur un site en aspx?
    Par popogendarme dans le forum Langage
    Réponses: 1
    Dernier message: 13/04/2007, 13h25

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