[PHP] Appeler un fichier

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par nonel, 15 Décembre 2008.

  1. nonel
    nonel WRInaute discret
    Inscrit:
    5 Mai 2005
    Messages:
    243
    J'aime reçus:
    0
    Bonjour,

    Je désespère d'avoir une nouvelle de mon hébergeur ... pour savoir si il a modifié des paramètres récemment sur ma machine. Avant, tout marché bien.

    Donc, je viens vers vous pour vos avis d'expert.


    J'ai un fichier qui appelle un fichier à télécharger. Il lance le téléchargement et implémente de +1 un fichier texte (compteur).

    Je suis pas un pro en php, et je n'arrive pas à bidouiller ma fonction et surtout à comprendre le message d'erreur.

    Voici mon fichier download.php3
    Code:
    <?
    $tel_file = "$file".".txt";
    // --------------------------------
    $fp = fopen("$tel_file","r+");
    $nbtel = fgets($fp,255);
    $nbtel++;
    fseek($fp,0);
    fputs($fp,$nbtel);
    fclose($fp);
    // --------------------------------
    header("Location: $file".".zip");  //On redirige vers le fichier à télécharger (toujours au format ZIP!)
    ?>

    Et voici l'erreur que me retourne le serveur.
    Code:
    Warning: fopen(.txt) [function.fopen]: failed to open stream: No such file or directory in /home/paysage1/domains/paysage-en-herbe.com/public_html/telechargements/textures/download.php3 on line 4
    
    Warning: fgets(): supplied argument is not a valid stream resource in /home/paysage1/domains/paysage-en-herbe.com/public_html/telechargements/textures/download.php3 on line 5
    
    Warning: fseek(): supplied argument is not a valid stream resource in /home/paysage1/domains/paysage-en-herbe.com/public_html/telechargements/textures/download.php3 on line 7
    
    Warning: fputs(): supplied argument is not a valid stream resource in /home/paysage1/domains/paysage-en-herbe.com/public_html/telechargements/textures/download.php3 on line 8
    
    Warning: fclose(): supplied argument is not a valid stream resource in /home/paysage1/domains/paysage-en-herbe.com/public_html/telechargements/textures/download.php3 on line 9
    
    Warning: Cannot modify header information - headers already sent by (output started at /home/paysage1/domains/paysage-en-herbe.com/public_html/telechargements/textures/download.php3:4) in /home/paysage1/domains/paysage-en-herbe.com/public_html/telechargements/textures/download.php3 on line 11

    Le fichier texte est belle et bien présent sur le serveur.

    Merci d'avance pour votre aide.
     
  2. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    >> No such file or directory

    probleme de répertoire à priori. dans quel repertoire est download.php et dans quel repertoire est le txt ?
     
  3. nonel
    nonel WRInaute discret
    Inscrit:
    5 Mai 2005
    Messages:
    243
    J'aime reçus:
    0
    Le fichier php et txt sont dans le même dossier.
     
  4. bozoleclown
    bozoleclown WRInaute impliqué
    Inscrit:
    24 Novembre 2005
    Messages:
    693
    J'aime reçus:
    0
    Comment est initialisé la valeur $tel ?

    peux tu faire un

    echo $tel;
    echo ";".$tel_file;

    au début de ton script pour afficher la valeur de ces 2 variables

    car à mon sens, ici la valeur $tel n'est pas initialisé...
    c'est une valeur que tu récupères via l'url via un formulaire ?
     
  5. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    rah la la j'avais pas vu ...

    Warning: fopen(.txt)

    ton fichier n'a pas de nom
     
  6. nonel
    nonel WRInaute discret
    Inscrit:
    5 Mai 2005
    Messages:
    243
    J'aime reçus:
    0
    Oui, la valeur est via mon URL.
    Exemple : *http://...../download.php3?file=nom-du-fichier

    Ben si.
    Dans le fichier php, j'ai : $tel_file = "$file".".txt";
    Non ? c'est pas ca le nom du fichier. Il le récupère via l'URL.

    Le nom du fichier à télécharger et le nom du fichier texte doivent porter le même nom.
     
  7. bozoleclown
    bozoleclown WRInaute impliqué
    Inscrit:
    24 Novembre 2005
    Messages:
    693
    J'aime reçus:
    0
    remplace $file par $_GET[file]
     
  8. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    ah, ton hébergeur a fait une modif oui, il a sécurisé ton serveur :) tu ne peux plus appeler une variable par $sonnom si c est une variable get, post, cookoie, ou session maintenant, tu dois utiliser les bonnes variables.
     
  9. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 979
    J'aime reçus:
    121
    Et teste-le au préalable, ce sera déjà plus propre.

    Code:
    if (isset($_GET['file']))
    {
        $file = $_GET['file'];
        //ici ton code qui nécessite  d'avoir un fichier en paramètre
    }
    
     
  10. nonel
    nonel WRInaute discret
    Inscrit:
    5 Mai 2005
    Messages:
    243
    J'aime reçus:
    0
    roooo ... ca marche !!!!

    T'es un chef UsagiYojimbo

    Mon code est devenu

    Code:
    <?
    if (isset($_GET['file']))
    {
        $file = $_GET['file'];
    }
    $tel_file = "$file".".txt";
    // --------------------------------
    $fp = fopen("$tel_file","r+");
    $nbtel = fgets($fp,255);
    $nbtel++;
    fseek($fp,0);
    fputs($fp,$nbtel);
    fclose($fp);
    // --------------------------------
    header("Location: $file".".zip");  //On redirige vers le fichier à télécharger (toujours au format ZIP!)
    ?>
    Et effectivement toi aussi tu as raison.
    C'est la source du probleme ... avant le server était en registerGlobal ON
    Et forcement pour plus sécurité il on mis en off.

    Vous êtes tous des chefs ... merci de votre aide et de votre dévouement à tous les 3.
     
  11. bozoleclown
    bozoleclown WRInaute impliqué
    Inscrit:
    24 Novembre 2005
    Messages:
    693
    J'aime reçus:
    0
    En fait dans ton code, le if ne sert à rien
    car s'il manque le paramètre dans l'url, le code va planter comme avant

    donc soit tu enlèves le if comme tu avais avant (le $_GET en plus)
    soit tu fais comme ça pour être encore plus propre


    Code:
    <?
    if (isset($_GET['file']))
    {
        $file = $_GET['file'];
        $tel_file = "$file".".txt";
        // --------------------------------
        $fp = fopen("$tel_file","r+");
        $nbtel = fgets($fp,255);
        $nbtel++;
        fseek($fp,0);
        fputs($fp,$nbtel); 
        fclose($fp);
        // --------------------------------
        header("Location: $file".".zip");  //On redirige vers le fichier à télécharger (toujours au format ZIP!)
    }
    else{
        echo "il manque le paramètre file";
    }
    ?>
     
  12. nonel
    nonel WRInaute discret
    Inscrit:
    5 Mai 2005
    Messages:
    243
    J'aime reçus:
    0
    Oui effectivement, si je met pas de ELSE, mon IF sert a rien. Comme ca si y a un bug, je peux gérer un message d'erreur.

    Tout fonctionne nickel.

    Merci encore.
     
  13. nonel
    nonel WRInaute discret
    Inscrit:
    5 Mai 2005
    Messages:
    243
    J'aime reçus:
    0
    Bonjour,

    Je dépoussière un peu mon topic puisque une fois de plus mon hébergeur m'a changé de machine et que je n'ai aucune réponse de sa part sur les changements qu'il aurait pu faire sur celle-ci.

    Mon script précédemment cité et que je recopie ci-dessous, ne fonctionne à nouveau plus.
    Lorsque je clique sur le lien pour lancer le téléchargement le fichier, il m'affiche le contenu de mon fichier PHP. Le téléchargement n'est donc pas lancé.

    Code:
    <?
    if (isset($_GET['file']))
    {
        $file = $_GET['file'];
        $tel_file = "$file".".txt";
        $fp = fopen("$tel_file","r+");
        $nbtel = fgets($fp,255);
        $nbtel++;
        fseek($fp,0);
        fputs($fp,$nbtel);
        fclose($fp);
        header("Location: $file".".zip");
    }
    else{
        echo "Desole, une erreur est survenue. Merci de nous contacter pour nous informer de ce probleme, que nous corrigerons dans les meilleurs delais.";
    }
    ?>
    Avez vous une solution ?
    Merci d'avance.
     
  14. bozoleclown
    bozoleclown WRInaute impliqué
    Inscrit:
    24 Novembre 2005
    Messages:
    693
    J'aime reçus:
    0
    quelle est l'extension du fichier ?

    toujours download.php3 ?

    peut-etre que ton hébergeur ne supporte plus les extensions .php3 ?
    du coup essaie de passer en .php
     
  15. nonel
    nonel WRInaute discret
    Inscrit:
    5 Mai 2005
    Messages:
    243
    J'aime reçus:
    0
    lol ... c'est ca.
    Je suis tout honteux de ne pas y avoir pensé.

    Merci beaucoup.
     
Chargement...
Similar Threads - [PHP] Appeler fichier Forum Date
Astuce [PHP] Récolter ville, pays du visiteur Développement d'un site Web ou d'une appli mobile 9 Mars 2021
[PHP] Détecter le navigateur / bot en fonction du HTTP_USER_AGENT Développement d'un site Web ou d'une appli mobile 14 Septembre 2019
[PHP] Détecter le navigateur / bot en fonction du HTTP_USER_AGENT Développement d'un site Web ou d'une appli mobile 12 Janvier 2017
[PHP] Cookie vide dans une fonction, complet juste avant ou après Développement d'un site Web ou d'une appli mobile 25 Novembre 2014
[php] Cookie d'un domaine vers un sous-domaine Développement d'un site Web ou d'une appli mobile 29 Août 2014
[PHP]Cci mails Développement d'un site Web ou d'une appli mobile 18 Août 2014
[PHP] gethostbyname Développement d'un site Web ou d'une appli mobile 15 Février 2014
[PHP] file_get_contents retourne un "Connection timed out" Développement d'un site Web ou d'une appli mobile 14 Février 2014
[PHP] Regex Complexe Développement d'un site Web ou d'une appli mobile 29 Octobre 2013
[PHP] Formulaire dynamique Développement d'un site Web ou d'une appli mobile 2 Mai 2013
[php] error suite à code antiduplication Développement d'un site Web ou d'une appli mobile 5 Février 2013
[PHP] Condition et include Développement d'un site Web ou d'une appli mobile 31 Janvier 2013
[PHP] comprendre ce code pour pseudo-frame Développement d'un site Web ou d'une appli mobile 28 Décembre 2012
[PHP] Requête très lente Développement d'un site Web ou d'une appli mobile 22 Septembre 2012
[PHP] Question technique Regex Développement d'un site Web ou d'une appli mobile 28 Juillet 2012
[PHP] file_get_contents sur le serveur même... Développement d'un site Web ou d'une appli mobile 9 Juillet 2012
[PHP] FILTER_VALIDATE_IP et REMOTE_ADDR Développement d'un site Web ou d'une appli mobile 8 Juillet 2012
[PHP] Requête PDO à modifier Développement d'un site Web ou d'une appli mobile 13 Mai 2012
[PHP] Détecter l'OS, le navigateur et la langue [Résolu] Développement d'un site Web ou d'une appli mobile 4 Mars 2012
[Php] Vérifier la présence d'un slash en fin d'url Développement d'un site Web ou d'une appli mobile 2 Mars 2012