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] Créer un fichier distant


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Par défaut [cURL] Créer un fichier distant
    bonjour a tous,

    j'ai un probleme qu'il me faudrait resoudre avant septembre...

    explicitement, j'ai un site web dans lequel j'utilisais en local la fonction fopen pour creer un fichier...mais lors du passage sur serveur, cette fonction etait bloquee d'ou ---> passage a libcurl

    en fait voilà le message d'erreur que je n'arrive pas a resoudre:
    Warning: curl_error(): 6 is not a valid cURL handle resource in /home/httpd/vhosts/www.garage-botton-villard.com/web/ajout_ok.php on line 348 Erreur CURL : - voir http://curl.haxx.se/libcurl/c/libcurl-errors.html
    pour préciser,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ligne 348 = die("Erreur CURL : " . curl_error($ch) . " - voir http://curl.haxx.se/libcurl/c/libcurl-errors.html");
    en attendant votre aide précieuse...d'avance merci bcp

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Ça veut sans doute dire que l'appel de curl_init() n'a rien retourné.

    Essaye un simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo (int) curl_init();

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Par défaut
    j'ai mis ce que vous m'avez dit et je n'obtiens rien de plus qu'avant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    7 Warning: curl_error(): 6 is not a valid cURL handle resource in /home/httpd/vhosts/www.garage-botton-villard.com/web/ajout_ok.php on line 349 Erreur CURL : - voir http://curl.haxx.se/libcurl/c/libcurl-errors.html

    comme vous le voyez j'ai juste un 7 qui s'ajoute devant le Warning...

    si vous pouvez m'aider....???

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Difficile à dire comme ça. Ton curl_init() semble bien retourner un identifiant de ressource. Essaye ce petit script de test:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    error_reporting(E_ALL);
    function CurlFileGetContents($adresse, $timeout = 10){
      $ch = curl_init($adresse);
      curl_setopt($ch, CURLOPT_HEADER, 1);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_USERAGENT, "PHP script");
      curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
      $page    = curl_exec($ch);
      $CurlErr = curl_error($ch);
      curl_close($ch);
      if ($CurlErr){
        echo "<h4>Erreur Curl</h4>$CurlErr";
        return false;
      }else{
        return $page;
      }
    }
     
     
    echo CurlFileGetContents('http://www.developpez.net/forums/');

  5. #5
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Par défaut
    voilà j'obtiens ça :



    HTTP/1.1 200 OK Date: Fri, 18 Aug 2006 19:02:58 GMT Server: Apache/2.2.3 (Unix) PHP/4.4.3 X-Powered-By: PHP/4.4.3 Set-Cookie: bbsessionhash=e2ac5560d2eadc796fea9adcdc823b5b; path=/; domain=.developpez.net Set-Cookie: bblastvisit=1155927778; expires=Sat, 18 Aug 2007 19:02:58 GMT; path=/; domain=.developpez.net Set-Cookie: bblastactivity=0; expires=Sat, 18 Aug 2007 19:02:58 GMT; path=/; domain=.developpez.net Cache-Control: private Pragma: private Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=ISO-8859-1

    + tout le site web de developpez.com (sans les icones)

    --->voir le lien : http://www.garage-botton-villard.com/test.php

    ou sinon allez sur ladresse de base puis cliquez sur le lien : "Notre situation géo..."

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    C'est tout bon, dans le sens où curl est bien installé et fonctionne. Le problème est donc dans ton script. D'après ce que tu postes plus haut comme erreur, la référence vers la ressource s'est perdue. Tu n'aurais pas un curl_close() involontaire quelque part?

    Sinon, si le code n'est pas trop long, poste-le.

  7. #7
    Membre expérimenté

    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
    Par défaut
    Avez-vous accès aux fonctions FTP sur votre serveur ? Si oui, tentez de les utiliser pour établir une connexion vers ce même serveur FTP que dans votre script utilisant Curl.


    Julp.

  8. #8
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Par défaut
    et bien c la mon probleme les fonctions FTP me sont ouvertes mais pas la fonction fopen,.....d'ou ma necessite de libcurl!

    mais c'est peut etre pas de cela dont vous me parlez?aurais je mal compris?

  9. #9
    Membre expérimenté

    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
    Par défaut
    Le protocole FTP pose peut être problème puisque nous avions déjà fait le test avec succès avec HTTP (le protocole FTP est quelque peu plus complexe). C'est pourquoi, je vous proposais de tester les fonctions FTP, qui par ailleurs vous offre les mêmes possibilités pour le script que vous deviez faire.


    Julp.

  10. #10
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Par défaut
    ah d'accord c'est plus clair pour moi...

    encore une fois inculte, que faut il donc faire car cela reste flou pour l'instant a mes yeux...???

  11. #11
    Membre expérimenté

    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
    Par défaut
    Ceci (non testé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <?php
    error_reporting(E_ALL);
    $leNewIdAnnonce = uniqid();
    $tmpname = tempnam('/home/httpd/vhosts/www.garage-botton-villard.com/tmp/', 'tmp_');
    if ($tmpname === FALSE) {
    	die('Impossible de créer un fichier temporaire');
    }
    $fp = fopen($tmpname, 'w');
    if (!$fp) {
    	die("Impossible d'ouvrir le fichier '$tmpname' en écriture");
    }
    fputs($fp, "Votre très longue chaîne");
    fclose($fp);
    $ftpid = ftp_connect('serveur', 21, 20) or die("Impossible de se connecter au serveur FTP");
    ftp_login($ftpid, 'login', 'password') or die("Echec lors de l'authentification");
    ftp_pasv($ftpid, TRUE); // A éventuellement supprimer
    if (ftp_put($ftpid, "/web/fich_tech/$leNewIdAnnonce.html", $tmpname, FTP_ASCII)) {
        echo "Fichier uploadé<br/>";
    } else {
        echo "Problème lors de l'upload<br/>";
    }
    ftp_close($ftpid);
    unlink($tmpname);
    ?>

    Julp.

  12. #12
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Par défaut
    excusez moi julp je mets cela dans un fichier seul de test ou bien je linclus qq part dans mon code???

    encore merci pour vos minutes precieuses passees a me repondre...

  13. #13
    Membre expérimenté

    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
    Par défaut
    Un nouveau ça ira très bien pour le moment !



    Julp.

  14. #14
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 98
    Par défaut
    Warning: uniqid() expects at least 1 parameter, 0 given in /home/httpd/vhosts/www.garage-botton-villard.com/web/test.php on line 3 Warning: ftp_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/httpd/vhosts/www.garage-botton-villard.com/web/test.php on line 14 Impossible de se connecter au serveur FTP

    voila ce que me rend votre code de test JULP...
    (au passage je suis passer chez le FAI Free au lieu de Wanadoo et on m'a parler de certains verrouillages du P2P et peut etre du FTP mais je suis pas sur...enfin juste en precision si cela pouvait vous et m'aider a trouver enfin la solution a mon probleme...)

    encore davance merci

Discussions similaires

  1. [PHP 4] [PHP 4.4.1] probleme pour lire un fichier distant avec CURL
    Par seben dans le forum Langage
    Réponses: 6
    Dernier message: 27/11/2009, 08h38
  2. [Fichier]suppression d'un fichier distant
    Par HurtMarley dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 18/06/2008, 15h17
  3. [FTP] Comment tester un fichier distant ?
    Par Shrieker dans le forum Langage
    Réponses: 4
    Dernier message: 28/11/2005, 14h44
  4. include fichier distant
    Par noarno dans le forum ASP
    Réponses: 2
    Dernier message: 05/04/2004, 16h47
  5. MapPath et fichier distant
    Par arno_ dans le forum ASP
    Réponses: 8
    Dernier message: 16/09/2003, 16h06

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