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 :

erreur avec la fonction file_get_contents sur une ressource HTTP


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 99
    Points : 62
    Points
    62
    Par défaut erreur avec la fonction file_get_contents sur une ressource HTTP
    Bonjour a tous

    voila j'aimerai comprendre pourquoi ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $url='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
    $contenu = file_get_contents($url);
    renvoit :

    Warning: file_get_contents(http://localhost/NewFolder/new5.php) [function.file-get-contents]: failed to open stream: HTTP request failed! in C:\wamp\www\NewFolder\new5.php on line 6
    (sachant que le fichier existe bien a l'adresse en question)

    alors que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	$self = basename($_SERVER['PHP_SELF']);
    	$contenu = file_get_contents("$self");
    fonctionnera parfaitement.

    L'erreure du premier semble venir du fait que la fonction s'appelle en boucle comme si le contenu appelé etait executé.

    D'ou l'etrangeté que le deuxieme marche parfaitement.

    suite a une discussion avec onet sur le chat, on en est arrivé a supposer que ce serait par securité que php permettrait d'accéder a la source pour un appel type file_get_contents('file.php') mais qu'il executerait le code pour un appel type file_get_contents('http://url.com/file.php'). (afin de ne pas recupéré les fichiers config d'un site (dixit onet)).


    Qu'en pensez vous? Quelqu'un aurait il l'explication?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Quand tu fais file_get_contents($url);
    Tu passes par une requete HTTP, ton fichier est donc effectivement interpreté avant de t'etre transmis.

    Moi ca me donne l'erreur
    failed to open stream: HTTP request failed! in D:\xampp\htdocs\test.php on line 13
    Fatal error: Maximum execution time of 60 seconds exceeded in D:\xampp\htdocs\test.php on line 13
    Je suppose simplement que Apache/PHP a du mal a interpreté un fichier qui lui demande de s'auto-interpreté.
    Il doit attendre être en train d'attendre que le fichier soit libre je pense.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 99
    Points : 62
    Points
    62
    Par défaut
    Ok ! donc rien avoi avec une mesure de sécurité en fait

    merci sabotage!

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 08/01/2014, 13h46
  2. Réponses: 2
    Dernier message: 27/06/2011, 11h52
  3. Erreur avec : ofstream en paramètre d'une fonction
    Par droledelolo dans le forum C++
    Réponses: 4
    Dernier message: 21/08/2008, 09h04
  4. erreur avec la fonction putfile() sur connexion FTP
    Par stefane1981 dans le forum C++
    Réponses: 2
    Dernier message: 23/09/2005, 09h13
  5. pb avec la fonction boolean sur eclipse
    Par mcay dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 31/05/2004, 09h37

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