Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2011, 14h48   #1
Nouveau Membre du Club
 
Inscription : octobre 2009
Messages : 100
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : octobre 2009
Messages : 100
Points : 27
Points : 27
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.
neo18045 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 14h55   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
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 :
1
2
3
4
 
<?php
$var = "toto à vélo";
include "header.php";
header.php
Code :
1
2
3
 
global $var;
echo $var; // toto à vélo
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 15h16   #3
Nouveau Membre du Club
 
Inscription : octobre 2009
Messages : 100
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : octobre 2009
Messages : 100
Points : 27
Points : 27
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 :

Citation:
Code :
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.
neo18045 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 15h34   #4
Nouveau Membre du Club
 
Inscription : octobre 2009
Messages : 100
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : octobre 2009
Messages : 100
Points : 27
Points : 27
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.
neo18045 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h11.


 
 
 
 
Partenaires

Hébergement Web