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 :

[Librairies] Problème avec gzopen()


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre confirmé Avatar de Lordsephiroth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 199
    Points : 494
    Points
    494
    Par défaut [Librairies] Problème avec gzopen()
    Bonjour à tous,

    Voici mon script, il me paraît tout simple :

    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
    26
    27
    28
    <?php
     
    $message = "Un string de la mort qui tue, comme d\'hab un truc sans intérêt.";
     
    if(file_exists("alliance.gz")){//suppression du fichier
    unlink("alliance.gz");
    }
     
    $test = touch("alliance.gz");//Création du fichier gz
    if(test){
    echo "nice \n";
    }
    else{
    echo "failed \n";
    }
    $filepointer = gzopen("alliance.gz", "W"); //ouverture en écriture du fichier
     
    echo "file pointer done\n";
     
    $compressedmessage = gzdeflate($message);//compression
     
    echo "compressed message \n";
     
    gzwrite($filepointer, $compressedmessage);//écriture sur le fichier
     
    echo "writing done !\n";
     
    ?>
    J'aimerais enregistrer un string compressé dans un fichier .gz. Le problème vient à l'exécution :

    nice
    Warning: gzopen(alliance.gz): failed to open stream: No such file or directory in /xxxpathxxx/testcgi/testgz.php on line 19
    file pointer done compressed message
    Warning: gzwrite(): supplied argument is not a valid stream resource in /xxxpathxxx/testcgi/testgz.php on line 29
    writing done !
    Pour une raison que je comprend pas, le fichier est bien créé mais la fonction gzopen() n'arrive pas à y accéder. Le mod du fichier est 664 sur le FTP et mon hébergeur interdit de changer le mod d'un fichier (mais les dossiers c'est bon...)

    Qui a une idée de la provenance de l'erreur?

    Merci beaucoup d'avance...
    Always code as if the guy maintaining your application is a violent psychopath!
    Site personnel sur la saga Final Fantasy : http://www.final-fantasy.ch

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Remplace
    par

    Tu es sous windows ?

  3. #3
    Membre confirmé Avatar de Lordsephiroth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 199
    Points : 494
    Points
    494
    Par défaut
    Je suis sous windows xp, effectivement, mais mon hébergeur tourne sur unix...

    Merci pour la petite erreur, mais comme je le pensais ça n'a rien changé.

    J'avais vérifié que le fichier .gz était bien créé sur le FTP.

    J'ai modifié mon script pour faire un 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
    $message = "Un string de la mort qui tue, comme d\'hab un truc sans intérêt.";
    if(file_exists("./alliance.txt")){//suppression du fichier
       unlink("./alliance.txt");
    }
    $test = touch("./alliance.txt");//Création du fichier
    if($test){
       echo "nice \n";
    }
    else{
       echo "failed \n";
    }
    $filepointer = fopen("./alliance.txt", "W"); //ouverture en écriture du fichier
    echo "file pointer done\n";
    fwrite($filepointer, $message);//écriture sur le fichier
    echo "writing done !\n";
    et même avec une fonction fopen et fwrite classique ça marche pas, le message d'erreur reste le même. Le fichier est créé sur le FTP mais il n'est pas ouvert correctement... Je capte rien du tout !
    Always code as if the guy maintaining your application is a violent psychopath!
    Site personnel sur la saga Final Fantasy : http://www.final-fantasy.ch

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    quel est le résultat du script que tu viens de poster ?

  5. #5
    Membre confirmé Avatar de Lordsephiroth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 199
    Points : 494
    Points
    494
    Par défaut
    nice
    Warning: fopen(./alliance.txt): failed to open stream: No such file or directory in /xxxxxxxxxxxxxx/testcgi/testgz.php on line 14
    file pointer done
    Warning: fwrite(): supplied argument is not a valid stream resource in /xxxxxxxxxxxxxxxxx/testcgi/testgz.php on line 16
    writing done !
    J'ai vérifié, le dossier dans lequel je suis (testcgi) est en 777 comme mod.
    Always code as if the guy maintaining your application is a violent psychopath!
    Site personnel sur la saga Final Fantasy : http://www.final-fantasy.ch

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Remplace ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $filepointer = fopen("./alliance.txt", "W"); //ouverture en écriture du fichier
    par ceci et dis-nous ce que ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    clearstatcache();
    var_dump(file_exists("./alliance.txt"));
    $filepointer = fopen("./alliance.txt", "W"); //ouverture en écriture du fichier

  7. #7
    Membre confirmé Avatar de Lordsephiroth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 199
    Points : 494
    Points
    494
    Par défaut
    la réponse du serveur n'est pas très encourageante :

    nice bool(true)
    Warning: fopen(./alliance.txt): failed to open stream: No such file or directory in /xxxxxxxxxxxxx/testcgi/testgz.php on line 16
    file pointer done
    Warning: fwrite(): supplied argument is not a valid stream resource in /xxxxxxxxxxxxxxxxxxx/testcgi/testgz.php on line 19
    writing done !
    Le pire c'est que des fonctions comme image_jpeg() ou image_png() arrivent parfaitement à créer des images sur mon FTP. C'est mon dossier qui est maudit? Je dois dancer nu sous un arbre enrobé de jambon? (le mail d'insulte à mon hébergeur serait également une idée...)
    Always code as if the guy maintaining your application is a violent psychopath!
    Site personnel sur la saga Final Fantasy : http://www.final-fantasy.ch

  8. #8
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    autre solution :
    $filepointer = fopen(dirname(__FILE__)."/alliance.txt", "w");

  9. #9
    Membre confirmé Avatar de Lordsephiroth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 199
    Points : 494
    Points
    494
    Par défaut
    Ta solution ne marche pas non plus, pour une raison que je comprend pas le serveur refuse tout accès en écriture sur le FTP avec fopen() ou gzopen() (alors qu' image_jpeg() marche par exemple).

    En fait, j'ai pensé à un truc qui me permettrait d'avoir en même temps accès à bzopen() et à l'accès en écriture (bien que ce soit pas vraiment bien d'éviter la résolution de mon problème) : mettre un script qui fait la conversion bz to gz sur un hébergement free puis faire l'appel au fichier gz depuis mon hébergement. J'ai évité les deux problèmes à la fois, le problème d'écriture et le problème de bzopen()...

    Par contre, petite question : comment faire en php qui est une programmation de scripts pour avoir un lancement automatique d'un script à une heure précise? Je doute fortement qu'il y ait des moyens comme des timers pour le faire. Est-ce qu'il y a un moyen d'avoir un truc du genre?

    merci d'avance
    Always code as if the guy maintaining your application is a violent psychopath!
    Site personnel sur la saga Final Fantasy : http://www.final-fantasy.ch

  10. #10
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/06/2010, 11h06
  2. [subversion/trac] Probl. de permission avec authz dans svnserve.conf
    Par mcdeffice dans le forum Administration système
    Réponses: 0
    Dernier message: 23/07/2009, 16h21
  3. Réponses: 7
    Dernier message: 07/07/2009, 11h14
  4. Réponses: 2
    Dernier message: 10/11/2006, 08h24
  5. Réponses: 3
    Dernier message: 21/06/2006, 14h31

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