Aller au contenu

Transmission de variable


olitax

Sujets conseillés

Bonsoir,

Actuellement je suis entrain de créer une fonction pour mon site qui me permettra de gérer des pages et des onglets dirigeant vers cette page directement.

Du coup j'utilise une fonction de ce type :

<?php
function mafonction($url, $titre)
{
echo $titre;
include ($url);
}

mafonction ("bienvenue.php", "Bienvenue ICI");
?>

Bien sur le code a été simplifié, c'est le principe qui compte.

Du coup, tout marche bien, le titre s'affiche, et la page aussi en général, mais, il y a un mais.

En effet, si la page à includer contient des variable présente dans ma page PHP et non ma page bienvenue.php alors l'include ne fonctionne pas.

Ainsi, si je fais une requete SQL, la variable de connexion SQL n'étant pas déclaré dans bienvenue dans PHP, ça ne marche pas.

Je sais que les fonctions PHP ne transmettent pas les variables, sauf si je vais un "global". Donc il me faudrait une solution pour que les includes se passent comme si je les fessaient directement dans la page et non dans la fonction.

Auriez-vous une solution ? :) (J'ai regardé les classes PHP, mais je ne sais pas si ça résoudrais mon problème ...).

Merci

Oli-

++

Lien vers le commentaire
Partager sur d’autres sites

<?php
function mafonction($url, $titre)
{
echo $titre;
include ($url);
}

mafonction ("bienvenue.php", "Bienvenue ICI");
?>

Tu as beaucoup de variables à passer ?

Si non, tu les passes via la fonction...

<?php
function mafonction($url, $titre,$mavar)
{
echo $titre;
include ($url);
}

mafonction ("bienvenue.php", "Bienvenue ICI",$lavariable);
?>

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Oui j'en ai beaucoup, en faite il faudrait que la fonction fonctionne pour beaucoup de page à includer, et chacune de ces pages ne requière pas les mêmes variables, du coup, je ne peux pas envoyer ma variable par les arguments, ni par global.

En gros, ma fonction permettra d'accosier un design autour de cette page, auriez vous a la place d'une fonction un système (peut être template) pour pouvoir associer à chaque page un design autour ...

Merci :)

Oli-

++

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

comme ça, vite réfléchi, je penserais à la fonction eval, avec un code du style :

$CodePhp='echo $titre;
include ($url);
';
eval(php);

Comme ça, tu ne serais plus dans la procédure...

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Excellente idée, je n'y avais même pas pensé .... Par contre, n'est ce pas un peu bourrin ?

Par contre, si je veux faire plusieurs includes, mais avec des pages includes différentes à includer et un titre différent dans la même page comment je peux faire pour redéfinir les variables $url et $titre sans redéfinir $CodePhp ?

Merci encore, je sens que l'on est sur la bonne voie :P

Oli-

++

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Olitax,

je ne sais pas si c'est "bourrin", à mon avis le eval est comme un include, mais sans fichier texte, tout en mémoire. D'ailleurs, tu pourrais aussi construire un fichier php de manière dynamique, et l'includer une fois sauvegardé :

$CodePhp='echo $titre;
include ($url);
';
file_put_contents('a_inclure.php',$CodePhp);
include('a_inclure.php');

Par contre, je ne suis pas sur de comprendre ta seconde question : si tu veux faire plusieurs includes, il suffit à mon avis de les mettre à la suite :

$CodePhp='echo $titre;
include ($url);
';
$titre="Autre titre"
$url="http://www.autre-url.com";
$CodePhp.='echo $titre;
include ($url);
';
eval($CodePhp);

Modifié par cyberlaura
Lien vers le commentaire
Partager sur d’autres sites

Excellente idée, je n'y avais même pas pensé .... Par contre, n'est ce pas un peu bourrin ?

Moi je vois surtout deux trucs "bourrins" :

- le verbe "includer" qui pique les yeux

- le fait d'avoir "plein" de variables globales à "transmettre"... les variables globales "c'est le mal". A partir de là toutes les solutions paraîtront forcément "bourrines", le contexte l'obligeant.

:P

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...