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 :

petite question toute bête : include et chemins relatifs


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 382
    Points : 161
    Points
    161
    Par défaut petite question toute bête : include et chemins relatifs
    Bonjour,

    je voudrais une confirmation

    lorsqu'on inclus un fichier dans une page, les appels se font à partir de la page mère ou a partir du fichier inclus

    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(file_exists('connex_mysqli/connex_base_gene.php')) require_once('connex_mysqli/connex_base_gene.php'); 
    puis ....
    if(file_exists('association/affichage_asso.php')) include('association/affichage_asso.php');
    dans l'include 'association' c'est le 'file_exists('connex_mysqli/connex_base_gene.php' qui est utiliser ou celui qui se trouve dans 'association'

    je ne sais pas si je suis suffisamment "clair"

    Merci
    75 ans quelques dents en moins, mais toujours envie d'apprendre

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Non, je ne comprends pas bien.
    Mettons que ton script s'appelle index.php.
    Ton premier require_once crée une erreur fatale si le fichier est absent. (connex_base_gene.php)
    et ne va donc pas plus loin.
    Ton second include se fait ou ne se fait pas, sans que ça ne pose de problème spécial.
    Aurais-tu fais l'erreur par exemple d'appeler une fonction du même nom dans tes deux fichiers inclus ? Cela, tu ne le peux pas.

    Si ta question ne concerne que la fonction file_exists, elle se fait bien sûr toujours depuis index.php, la page mère.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 382
    Points : 161
    Points
    161
    Par défaut
    Bonjour,

    Je vais essayé d'être plus clair
    j'ai cette erreur dans les logs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     PHP Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in /home/clients/xxxxxxxxxxxxxxxxx/www/philatelie-francaise/association/affichage_asso.php on line 48
    cette page "affichage_asso.php" est appeler depuis le fichier index.php qui est comme ceci

    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
     
    <?php
    session_start();
    if(file_exists('connex_mysqli/connex_base_gene.php')) require_once('connex_mysqli/connex_base_gene.php'); else echo 'NON';
    //-----------------------------------------------------------------------------	
    et blabla.....
     
    ?>	
    <!DOCTYPE html>
    <html>
        <head>
    		<title>Site consacré à la présentation de tous les timbres français depuis 1849</title>
    		<meta http-equiv="Content-Type" content="text/HTML; charset=utf-8">
     
    </head>
     
    puis 
     
    <?php
    //-------------- Affichge des info du jour  -----------------------------------------------
    if(file_exists('association/affichage_asso.php')) include('association/affichage_asso.php'); 
    ?>
    la page affichage_asso.php'

    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
     
    <?php
    $nom_asso=array();
    $expo=array();
    $date_debut=array();
    $date_fin=array();
    $theme=array();
    $date_limite=array();
     
    // récupération des expo association	
    $a=0;				
    					$query = 'SELECT * FROM association';
    					$result = mysqli_query($base_gene, $query);
    					while ($data = mysqli_fetch_array($result))
    	 				{
    						$nom_asso[$a]=$data['nom_asso'];
    						$expo[$a]=$data['expo'];
    						$date_debut[$a]=$data['date_debut'];
    						$theme[$a]=$data['theme'];
    						$date_limite[$a]=$data['date_limite'];
    						$correspondant[$a]=$data['correspondant'];
    						$teleph[$a]=$data['teleph'];
    						$a++;
    					}
    la ligne 48 de l'erreur correspond à la ligne $result = mysqli_query($base_gene, $query);

    La table existe bien pas de soucis, la connexion à la base est ok puisque les scripts précédents ne posent pas de problème

    Là je ne comprend pas, dotant plus que les données s'affichent lorsque je vais sur le site
    75 ans quelques dents en moins, mais toujours envie d'apprendre

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    0- Pour répondre à la question : un fichier include/require se comporte comme si le code était écrit dans le fichier lui-même (comme s'il s'agissait d'UN SEUL fichier).
    Les variables sont disponibles "naturellement".

    1- Pourquoi mettre partout des if(file_exists('...') ??
    Tu ne connais pas l'arborescence de ton site ?
    Sinon, c'est une vérification inutile... *

    * De toute façon, si le fichier n'existe pas, le script ne pourra pas fonctionner.
    Donc, autant afficher une erreur/warning.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php session_start();
    require_once('connex_mysqli/connex_base_gene.php');
    2- Je suppose que $base_gene est créé dans le fichier connex_base_gene.php.

    • Es-tu sûr de ne pas FERMER la connexion (mysqli_close) AVANT l'appel de l'autre include ?


    3- Juste AVANT l'appel de affichage_asso.php, ajoute (pour voir ce qu'il contient) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    echo '$base_gene : '; var_dump( $base_gene ); // TEST
    //-------------- Affichage des info du jour  --------------
    include('association/affichage_asso.php'); 
    ?>
    Dernière modification par Invité ; 07/02/2019 à 16h44.

  5. #5
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 382
    Points : 161
    Points
    161
    Par défaut
    voici ce que contient "base_gene"

    j'avoue que tout ça c'est du chinois pour moi

    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
     
    $base_gene :
     
    C:\wamp\www\philatelie-francaise\index.php:229:
    object(mysqli)[1]
      public 'affected_rows' => int 9918
      public 'client_info' => string 'mysqlnd 5.0.12-dev - 20150407 - $Id: f59eb767fe17a6679589b5c076d9fa88d3d4eac0 $' (length=79)
      public 'client_version' => int 50012
      public 'connect_errno' => int 0
      public 'connect_error' => null
      public 'errno' => int 0
      public 'error' => string '' (length=0)
      public 'error_list' => 
        array (size=0)
          empty
      public 'field_count' => int 47
      public 'host_info' => string 'localhost via TCP/IP' (length=20)
      public 'info' => null
      public 'insert_id' => int 0
      public 'server_info' => string '5.6.17-log' (length=10)
      public 'server_version' => int 50617
      public 'stat' => string 'Uptime: 42520  Threads: 2  Questions: 5330  Slow queries: 0  Opens: 104  Flush tables: 1  Open tables: 86  Queries per second avg: 0.125' (length=136)
      public 'sqlstate' => string '00000' (length=5)
      public 'protocol_version' => int 10
      public 'thread_id' => int 401
      public 'warning_count' => int 0
    75 ans quelques dents en moins, mais toujours envie d'apprendre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SCCM] Deux petites questions toutes bêtes
    Par smthg.bzr dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 08/09/2010, 10h01
  2. Une petite question toute bête
    Par sebnantes dans le forum VB.NET
    Réponses: 4
    Dernier message: 01/09/2010, 15h58
  3. petite question toute bète passage de paramètre
    Par Drife dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 22/02/2009, 11h11
  4. [RICHEDIT] Petite question toute bête.
    Par newbie57 dans le forum Débuter
    Réponses: 2
    Dernier message: 12/12/2007, 15h12
  5. Question toute bête sur le passage de variable
    Par pekka77 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/11/2005, 12h39

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