portée des variables - PHP - Programmation
Marsh Posté le 20-07-2004 à 10:21:13
Il me semble au contraire que c'est tout à fait possible, je verrai mal l'utilité d'un include sinon
Marsh Posté le 20-07-2004 à 10:26:45
Alors, j'ai du faire une erreur quelque part...
Je vous fournis le code :
VOici le main :
<?php
include "http://localhost/main.php?id=toto";
echo $host; ----------> variable vide !!
?>
prog de include :
<?php
$host = "ST-001";
?>
Bizarre hein ?il me met indefined variable host etc...
Marsh Posté le 20-07-2004 à 10:29:16
Tu es sur que c'est le bon fichier que tu inclus?
Mes un echo "Taiste" dans ton fichier inclu pour vérifier
Marsh Posté le 20-07-2004 à 10:35:47
T'as peut-etre un pb d'include, essaie de passer le nom "systeme" du fichier (cad pas une url)
Marsh Posté le 20-07-2004 à 10:40:17
Nan, marche pas non plus, le register global n'y es pas pour quelque chose ? Attention, je ne sais même pas de quoi je parle là
Marsh Posté le 20-07-2004 à 10:46:43
T'es sûr que tu fais pas l'affectation de $host dans une fonction ?
Marsh Posté le 20-07-2004 à 10:53:31
Code :
|
Code :
|
essaie ceci, et tu nous diras si cela fonctionne (je suis sûr que oui)
Marsh Posté le 20-07-2004 à 11:05:35
Ben ton code marche parfaitement.
Mais quand j'ai modifé le chemin de include en "http://www.localhost/page_include.php?param=1"
ca marche plus ?? affiche KO
Marsh Posté le 20-07-2004 à 11:07:14
galldup a écrit : Ben ton code marche parfaitement. |
vérifie http://fr2.php.net/manual/en/ref.f [...] -url-fopen
Marsh Posté le 20-07-2004 à 11:07:58
-> chacal, si je met un path relatif, cela ne marche pas car je veux passer des parametres pour l'include...
Marsh Posté le 20-07-2004 à 11:10:15
chacal_one333 a écrit : tu peu pas en relatif? |
edit : http://www.chezmoicamarche.org/
s'il veut faire un include avec des parametre, il faut qu'il passe par un chemin de type url, sinon php cherche un fichier nommé exactement "file.php?param=1" qui n'existe donc pas en tant que tel.
Marsh Posté le 20-07-2004 à 11:16:38
-> Boulax
Ok, j'ai lu ce que tu m'as mis concernant le "allow url open"
Dans php.ini, c'est a "on" et j'ai toujours le même probleme.
Marsh Posté le 20-07-2004 à 11:17:10
php.net a écrit : : Sous Windows, dans les versions antérieures à la version 4.3, les fonctions suivantes ne supportent pas l'accès aux fichiers distants : include(), include_once(), require(), require_once() et les fonctions imagecreatefromXXX de l'extension Référence XLII, Images. |
Met plutôt des fonctions dans tes fichiers include. Cela te permettra de les appeler en leur donnant le paramètre que tu veux. Un include sur une URL avec paramètres ne me semble pas la meilleure façon de procéder.
Marsh Posté le 20-07-2004 à 11:18:53
T509 a écrit : Met plutôt des fonctions dans tes fichiers include. Cela te permettra de les appeler en leur donnant le paramètre que tu veux. Un include sur une URL avec paramètres ne me semble pas la meilleure façon de procéder. |
Il a php 4.3.6 selon lui. Mais c'est clair que des includes avec des paramètres je n'ai jamais utilisé...
Marsh Posté le 20-07-2004 à 11:22:47
bon, je vais voir comment ca marche les fonctions et essayer de trouver une solution intermédiaire, et tant pis si c'est pas élégant !
En tous cas, merci les gars !
Marsh Posté le 20-07-2004 à 11:24:22
boulax a écrit : Il a php 4.3.6 selon lui. Mais c'est clair que des includes avec des paramètres je n'ai jamais utilisé... |
la question est: peut-on? perso je ne pense pas: l'include est à considérer comme une portion de code qu'on insère dans la page principale, les paramètres lus dans $_GET sont donc ceux passés à la page principale. Ca me semble logique.
Marsh Posté le 20-07-2004 à 11:25:58
hum...
If "URL fopen wrappers" are enabled in PHP (which they are in the default configuration), you can specify the file to be included using a URL (via HTTP or other supported wrapper - see Appendix L for a list of protocols) instead of a local pathname. If the target server interprets the target file as PHP code, variables may be passed to the included file using a URL request string as used with HTTP GET. This is not strictly speaking the same thing as including the file and having it inherit the parent file's variable scope; the script is actually being run on the remote server and the result is then being included into the local script.
Marsh Posté le 20-07-2004 à 11:26:55
drasche a écrit : la question est: peut-on? perso je ne pense pas: l'include est à considérer comme une portion de code qu'on insère dans la page principale, les paramètres lus dans $_GET sont donc ceux passés à la page principale. Ca me semble logique. |
Code :
|
Marsh Posté le 20-07-2004 à 11:29:42
galldup a écrit : hum... |
il est écrit que ce que tu obtient est le résultat de ton script inclue. S'il n'y a acun résultat (echo...), il n'y a rien qui sera retourné. Dnac dans ce cas là, seul du code html peut être retourné.
Marsh Posté le 20-07-2004 à 11:35:31
galldup a écrit : hum... |
bah oui, mais si tu fais un include sur une url (http://...), le serveur web qui héberge la page inclue va évaluer le php puis envoyer le résultat de cette évaluation... dans ton cas un fichier vide
donc, tu commence par déclarer ta variable:
$id = 'toto';
puis tu fais
include('main.php');
$id est une variable globale, elle sera accessible dans le code contenu dans main.php
l'include est juste une copie du contenu de main.php à la place de la ligne de l'include (grosso modo )
Marsh Posté le 20-07-2004 à 11:37:55
T509 a écrit : il est écrit que ce que tu obtient est le résultat de ton script inclue. S'il n'y a acun résultat (echo...), il n'y a rien qui sera retourné. Dnac dans ce cas là, seul du code html peut être retourné. |
si le serveur qui héberge la page inclue ne traite pas le php (soit parce que c'est un autre serveur, soit parce qu'il utilise une autre extension que .php), il récupéreras le bon code
il peut aussi s'amuser à inclure une page php qui génère du php.
mais bon, si il peut faire autrement, c'est mieux
Marsh Posté le 20-07-2004 à 11:44:55
dropsy a écrit : si le serveur qui héberge la page inclue ne traite pas le php (soit parce que c'est un autre serveur, soit parce qu'il utilise une autre extension que .php), il récupéreras le bon code |
mais bien sûr, et la marmote ...
Tu n'aurais pas une solution plus farfelue ? Quel est l'intêret de fonctionner avec un serveur distant dans ce cas là ?
Marsh Posté le 20-07-2004 à 11:47:00
T509 a écrit : mais bien sûr, et la marmote ... |
comme je l'ai dit dans mon message, ce n'est pas la meilleure solution
Marsh Posté le 20-07-2004 à 11:53:35
oué bon je partais du point de vue de l'include local
perso je vois pas l'intérêt du host quand on fait un développement local
Marsh Posté le 20-07-2004 à 10:19:51
Salut !
Dans mon prog en php 4.3.6, j'ai utilisé un include fichier.php.
dans le prog de cet include, j'ai fait des trucs (connection à SQL SERVER) et initilisé des variables.
Il me semble qu'on ne peut pas recupérer les valeurs de ces variables depuis le prog principal...
comment faire pour les recuperer ?