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 :

fgets() expects parameter 1 to be resource, boolean


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Février 2008
    Messages
    475
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 475
    Par défaut fgets() expects parameter 1 to be resource, boolean
    Bonjour
    j'ai ce script php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $file2="/var/log/syslog";
    $linecount = 0;
    $handle = fopen($file2, "r");
    while(!feof($handle)){
      $line = fgets($handle);
      $linecount2++;
    }
    mai j'ai ce message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fgets() expects parameter 1 to be resource, boolean given in
    dans cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      $line = fgets($handle);
    merci d'avance

  2. #2
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonsoir.

    Avant de faire un fgets, tu devrais tester ce que te renvoie fopen() ... fopen peut renvoyer false dans certains cas notamment lorsque le fichier n'existe pas alors qu'on demande de l'ouvrir en lecture seule ou encore lorsque tu n'a pas les droits pour le faire par exemple.

    man fopen pour plus de détails + debugger un peu et inspecter les retour de tes fonctions devrait t'aider à voir plus claire sur ce qui se passe et sur le pourquoi de ce message d'erreur.

    Cordialement,
    Idriss

  3. #3
    Membre très actif
    Inscrit en
    Février 2008
    Messages
    475
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 475
    Par défaut
    merci pour votre réponse,
    j'ai affecté le rôle 777 pour le fichier /var/log/syslog qui existe
    mais maintenant le même message d'erreur pour la fonction feof() et fgets()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PHP Warning:  feof() expects parameter 1 to be resource, boolean give
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PHP Warning:  fgets() expects parameter 1 to be resource, boolean given
    merci d'avance

  4. #4
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonsoir.

    C'était pas forcemment nécéssaire de mettre 777 au fichier syslog.

    Après il faut savoir que pour naviguer dans l'arborescence, il faut aussi les droits sur les répertoires. L'idéale est de rajouter des groupes aux utilisateurs concernés afin de ne pas donner les permissions à tout le monde.

    que renvoie :

    Et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls -l /var/log | grep syslog
    Le script php est-il exécuté via apache (donc l'utilisateur apache, probablement www-data) ? Ou bien en mode shell script / cli ? Si oui avec quel utilisateur ?

    Le log rotate a lieu à quelle fréquence ? Ceci peut provoquer un changement de droit potentiellement ?

    As-tu inspecté ce que renvoie fopen ? Avec xdebug, avec var_dump et en activant les log pour les erreurs E_WARNING ... as-tu quelque chose dans le error.log qui va bien ? Voir dans le php.ini si ces logs sont activés et pour quel type d'erreur...

    Bref, il faut bouger un peu et pas se contenter du message d'erreur peu précis

    Cordialement,
    Idriss

Discussions similaires

  1. [MySQL] Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in
    Par Sarah sh dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 08/12/2013, 18h12
  2. [MySQL] Message d'erreur: Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean
    Par gennievre dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/03/2012, 03h51
  3. fgets() expects parameter 1 to be resource
    Par alvanoto dans le forum Langage
    Réponses: 5
    Dernier message: 18/01/2011, 17h45
  4. [MySQL] Warning: mysql_result() expects parameter 1 to be resource ..
    Par camyo dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 01/07/2010, 12h00
  5. mysql_result() expects parameter 1 to be resource
    Par FingR dans le forum Langage
    Réponses: 1
    Dernier message: 26/12/2009, 22h54

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