Problème d'accès à un sous répertoire

diallo -  
 Utilisateur anonyme -
Bonjour,

J'ai un souci avec mes codes php. quand je fais include('repertoire/mon_fichier.php') dans mon projet, il ne voit pas le fichier mon_fichier.php du répertoire repertoire. Mais si je le mets dans le même repertoire que le fichier dans lequel il est appelé, il n'y a aucun soucis. NB: quand je suis sous windows, ça prend à merveille mais dès que je viens sous linux( RedHat) le problème recommence.

Merci d'avance.

7 réponses

  1. Utilisateur anonyme
     
    Bonsoir

    S'il y a une différence à ce niveau entre linux et windows, c'est peut-être parce que tu ne respectes pas la casse (les majuscules / minuscules).
    Windows ne fait pas de différence entre 'repertoire' et 'Repertoire', alors que pour linux ce sont deux dossiers différents.
    0
    1. diallo
       
      Bonjour,
      Au départ, j'ai cru la même chose aussi mais même après avoir respecté la casse, ça n'a pas changé.
      0
  2. Utilisateur anonyme
     
    Il n'y a aucun caractère spécial (lettre accentuées) dans les noms de fichier ou de répertoire ?
    0
    1. diallo
       
      bonjour,

      Non aucun.
      0
  3. Utilisateur anonyme
     
    As-tu un message d'erreur qui te dit que ce fichier n'est pas trouvé ? Si oui, recopie-le ici.
    0
    1. diallo
       
      Il n'affiche aucun message d'erreur. C'est qu'il ne fait rien; il affiche une page blanche
      0
  4. Utilisateur anonyme
     
    Il y a plusieurs possibilités :
    - le fichier n'est pas vu mais l'affichage des erreurs est masqué
    - le fichier est bien inclus, mais son comportement dépend du dossier dans lequel il est.

    Pour lever l'ambiguïté, ajoute au début du script, avant le include :
    error_reporting(E_ALL);

    et dis-nous s'il n'y a toujours pas de message d'erreur.

    Tu peux aussi ajouter un
    echo "coucou";
    dès le début du fichier inclus pour vérifier s'il est inclus ou non.
    0
    1. diallo
       
      bonjour,

      J'ai fait ça mais toujours aucune erreur. Il affiche une page blanche.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    Tu as aussi essayé avec le echo "coucou" au début du fichier inclus ?
    Soit tu as un message d'erreur au niveau du premier fichier, soit tu as le coucou au début du fichier inclus. Soit encore ça ne marche pas non plus sous windows, parce qu'il y a une erreur à un autre niveau.
    Peux-tu montrer le fichier qui contient le include('repertoire/mon_fichier.php') ainsi que le fichier repertoire/mon_fichier.php lui-même ?

    Au fait, comment fais-tu des essais sur windows et linux ? Un en local et l'autre chez un hébergeur ? Ou tu as un dual boot ?
    0
    1. diallo
       
      je les fais tous les deux (windows et unix) en local sauf que sous windows j'utilise xamp comme serveur apache et sous le redhat j'ai installer le serveur mysql et php directement sur le système physique. le fichier qui fait appel c'est index.php et voici la portion de code où j'inclus le fichier index.vue.php
      <?php
      error_reporting(E_ALL);
      include("vues/index.vue.php");
      ?>

      et le contenu du fichier index.vue.php est:

      <?php
      echo "coucou";
      ?>

      NB: le fichier index.php et le répertoire vues sont dans le même répertoire et je fais un dual boot.
      0
  7. Utilisateur anonyme
     
    Et si tu ajoutes echo "coucou premier"; au début de ton premier script, entre le "error-reporting" et le "include", ça s'affiche bien ? J'ai simplement l'impression que php ne marche pas avec ton linux.
    0
    1. diallo
       
      Oui ça s'affiche bien
      0
  8. Utilisateur anonyme
     
    Et il n'y a rien d'autre dans tes deux fichiers ? En tout cas rien avant la partie que tu montres ?

    Fais volontairement une erreur de fichier include dans ton premier fichier
    <?php
    error_reporting(E_ALL);
    include("vues/nexistepas.php");
    ?>
    Pour voir s'il affiche bien un message en cas de problème

    [edit]
    J'ai oublié le ini_set pour l'affichage des erreurs :
    <?php 
    error_reporting(E_ALL); 
    ini_set("display_errors", 1);
    include("vues/nexistepas.php"); 
    ?> 
    0
    1. diallo
       
      Bonjour,
      Maintenant ils m'affichent une erreur.
      Warning: include(vues/index.vue.php): failed to open stream: permission denied in /var/www/html/index.php on line 11
      et même quand je me connecte avec le compte root, ça affiche la même erreur.
      0
    2. diallo
       
      bonjour,
      J'ai trouvé la solution. J'ai constaté que les fichiers à l'intérieur du répertoire /var/www/html n'avaient pas les droit qu'il fallait pour la lecture. Donc j'ai changé les droits en faisant:
      sudo chmod -R 755 /var/www/html
      l'option R c'est pour que les fichiers contenus dans les sous répertoires aussi aient les même droits d'accès.
      le père merci de m'avoir accordé ton précieux temps.
      Cordialement
      0
      1. Utilisateur anonyme > diallo
         
        De rien :-)
        0