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 :

Problème include et require [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 117
    Points : 67
    Points
    67
    Par défaut Problème include et require
    Bonjour,

    Tout d'abord j'espère que la question n'a pas déjà été posée. J'ai fait des recherche sur le net et je ne trouve pas la réponse et c'est la première fois que je rencontre ce problème.

    Je fait un site perso et dans un fichier index.php j'inclue un header et un footer, mais avant ces inclusions j'effectue un paramétrage.

    Pour l'exemple le plus simple, dans mon header.php j'ai toute ma déclaration en-tête etc et entre les balise <title></title> j'appel une variable PHP. Dans mon index, je renseigne cette variable et après j'inclue le header.

    Mon problème est que toute les utilisations de cette variable faite dans le code de mon index.php fonctionne sans soucis, mais la variable ne semble pas prise en compte pour son utilisation faite dans un fichier externe comme mon header. J'ai beau tester avec include ou require, le résultat est le même.

    La solution est peut-être simple mais la je bloque, c'est la première fois (il me semble) que je rencontre ce problème.

    Merci d'avance pour vos lumières.

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Renseignes-toi plus sur la porté des variables en PHP: http://php.net/manual/en/language.variables.scope.php

    La solution à ton problème: mets un global dans le fichier header.php pour chaque variable de index.php qui tu veux utiliser et c'est gagné !

    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    $var = "toto à vélo";
    include "header.php";
    header.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    global $var;
    echo $var; // toto à vélo

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 117
    Points : 67
    Points
    67
    Par défaut
    Merci pour ta réponse, je vais consulter ton lien plus en détail.

    J'ai fait un test rapidement avec ce que tu as marqué mais cela ne marche toujours pas, mais j'utilise require peut être y aura t'il une différence si j'utilise include.

    Mais d'après ce qui est écrit dans le lien, ce que je fait depuis le début devrait être bon. Je cite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $a = 1;
    include 'b.inc';
    ?>
    Ici, la variable $a sera accessible dans le script inclus b.inc.
    Ma variable devrait être accessible dans le fichier inclus sans problème, mais cela serait différent en cas où je voudrais l'utiliser dans une fonction sans la passer en paramètre. Or je n'utilise pas dans une fonction mais elle n'est tout de même pas accessible.

    EDIT : pour inclure mon header j'utilisais bien un include et non un require.
    J'ai oublié de préciser même si cela ne sera une solution au problème, j'héberge mon site sur un compte free gratuit.

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 117
    Points : 67
    Points
    67
    Par défaut
    Bon en fait désolé pour le dérangement c'était bien une erreur débile ^^

    En fait pour inclure mon fichier je voulais utiliser une variable contenant le chemin de la racine du ftp vers mon dossier site et je n'arrive pas à le faire fonctionner alors pour tester je faisais l'inclusion grâce à l'url http://monsite.free.fr/blabla et donc ça passait pas.

    Donc ce n'était pas un problème de portée. Merci tout de même.

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

Discussions similaires

  1. Fonctions include et require avec php 5.2.1
    Par Nuts07 dans le forum Langage
    Réponses: 10
    Dernier message: 10/03/2007, 23h30
  2. Problème includes pas conformes et incomplets
    Par souviron34 dans le forum Dev-C++
    Réponses: 6
    Dernier message: 30/01/2007, 20h57
  3. Fonction include (ou require ?)
    Par Link14 dans le forum Langage
    Réponses: 6
    Dernier message: 04/06/2006, 15h40
  4. [VC++] Problème include de header
    Par Yellowmat dans le forum MFC
    Réponses: 10
    Dernier message: 08/12/2005, 13h50
  5. problème include avec win 2003 / IIS6
    Par fredoche dans le forum ASP
    Réponses: 3
    Dernier message: 26/09/2005, 17h36

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