Bonjour,
Je croyais savoir développer en PHP et je viens de buter sur un problème qui me fait me demander si je ne vais pas retourner l'école... Soupir...
Si une bonne âme pouvait me donner une piste...
Le problème est né en voulant "bricoler" Joomla 1.5. Cette nouvelle version ayant très peu de composants compatibles, je me suis résolu à fabriquer moi-même mon formulaire de contact. Je me permet de poser mon problème ici car je voudrais être sûr de ne pas me tromper en PHP avant d'incriminer Joomla. Mon problème est donc bien un problème de syntaxe PHP.
Je travaille dans une page appelée contact.php.
Au début de cette page, je met le code suivant :
<?php
include("php/maclasse.php");
$D->new data();
...
?>
Plus loin, dans le code HTML de la page, j'entre le code complet d'un formulaire via un autre include :
<?php
include("mon_formulaire.php";
?>
A l'intérieur de mon_formulaire.php, je cherche à réutiliser l'objet $D. Il n'est pas reconnu. Idem si je crée n'importe quelle autre variable dans maclasse.php (en dehors d'une fonction) et je que cherche à la relire dans mon_formulaire.php
Alors je me pose la question suivante :
include est une fonction. Une variable est locale à une fonction. Dois-je conclure que les variables d'un fichier appelé par un include sont locales à ce fichier ? Pourtant j'ai même essayé de forcer le passage en ajoutant global $mavariable mais rien à faire.
J'étais pourtant persuadé que la fonction include se contentait d'injecter du code dans un fichier. Les sites que je développe sont tous faits ainsi, via des include. J'ai toujours un fichier de classe qui contient des méthodes. Je l'appelle par include dans ma page principale, je crée mes objets depuis la page principale, et je les affiche dans n'importe lequel des morceaux appelés par include... Donc je ne comprends plus rien à rien...
Mon REGISTER_GLOBALS est sur ON...
J'aurais besoin d'une petite piqure de rappel histoire de vérifier si mes principes de base sont corrects.
S'il est possible de travailler d'un include à l'autre, alors c'est que le composant Joomla que j'utilise pour permettre des include dans le code, me joue des tours...
Merci d'avance pour toute explication
Partager