Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
965 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  portée des variables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

portée des variables

n°800318
galldup
Posté le 20-07-2004 à 10:19:51  profilanswer
 

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... :pfff:  
 
comment faire pour les recuperer ?
 
 

mood
Publicité
Posté le 20-07-2004 à 10:19:51  profilanswer
 

n°800322
Profil sup​primé
Posté le 20-07-2004 à 10:20:54  answer
 

si on peu

n°800323
boulax
Inserer phrase hype en anglais
Posté le 20-07-2004 à 10:21:13  profilanswer
 

Il me semble au contraire que c'est tout à fait possible, je verrai mal l'utilité d'un include sinon :jap:


---------------
Posté depuis des chiottes, sales. Me gusta.
n°800335
galldup
Posté le 20-07-2004 à 10:26:45  profilanswer
 

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...

n°800342
hop le fou
Tu m'en diras tant
Posté le 20-07-2004 à 10:29:16  profilanswer
 

Tu es sur que c'est le bon fichier que tu inclus?
Mes un echo "Taiste" dans ton fichier inclu pour vérifier

n°800349
galldup
Posté le 20-07-2004 à 10:31:32  profilanswer
 

Ouaip c'est bien celui la...
 

n°800355
boulax
Inserer phrase hype en anglais
Posté le 20-07-2004 à 10:35:47  profilanswer
 

T'as peut-etre un pb d'include, essaie de passer le nom "systeme" du fichier (cad pas une url)


---------------
Posté depuis des chiottes, sales. Me gusta.
n°800366
galldup
Posté le 20-07-2004 à 10:40:17  profilanswer
 

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à  ;)  
 

n°800375
Profil sup​primé
Posté le 20-07-2004 à 10:43:36  answer
 

lol
 
rien a voir :)
 
host serait pas un nom reservé? :o

n°800379
boulax
Inserer phrase hype en anglais
Posté le 20-07-2004 à 10:46:43  profilanswer
 

T'es sûr que tu fais pas l'affectation de $host dans une fonction ? :o


---------------
Posté depuis des chiottes, sales. Me gusta.
mood
Publicité
Posté le 20-07-2004 à 10:46:43  profilanswer
 

n°800387
galldup
Posté le 20-07-2004 à 10:52:00  profilanswer
 

Non, et host n'est pas un mot clé...
 

n°800390
Profil sup​primé
Posté le 20-07-2004 à 10:52:38  answer
 

mais fait juste un path relatif :o

n°800396
T509
$job-&gt;GetJob(now)
Posté le 20-07-2004 à 10:53:31  profilanswer
 

Code :
  1. fichier => page_include.php
  2. <?php
  3. $marche = "ça marche ? ";
  4. ?>


 

Code :
  1. fichier => page.php
  2. <?php
  3. include('page_include.php');
  4. if (isset($marche)) {
  5.      $ok = $marche." oui ça marche !";
  6. } else {
  7.      $ok = "c'est KO";
  8. }
  9. echo $ok;
  10. exit;
  11. ?>


 
essaie ceci, et tu nous diras si cela fonctionne (je suis sûr que oui)


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°800401
galldup
Posté le 20-07-2004 à 10:55:45  profilanswer
 

je teste et je reviens

n°800422
galldup
Posté le 20-07-2004 à 11:05:35  profilanswer
 

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  :??:

n°800430
boulax
Inserer phrase hype en anglais
Posté le 20-07-2004 à 11:07:14  profilanswer
 

galldup a écrit :

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  :??:


 
vérifie http://fr2.php.net/manual/en/ref.f [...] -url-fopen
 


---------------
Posté depuis des chiottes, sales. Me gusta.
n°800432
galldup
Posté le 20-07-2004 à 11:07:58  profilanswer
 

-> chacal, si je met un path relatif, cela ne marche pas car je veux passer des parametres pour l'include...

n°800433
Profil sup​primé
Posté le 20-07-2004 à 11:09:02  answer
 

tu peu pas en relatif? :??:
 
moi ca marche hein

n°800438
boulax
Inserer phrase hype en anglais
Posté le 20-07-2004 à 11:10:15  profilanswer
 

chacal_one333 a écrit :

tu peu pas en relatif? :??:
 
moi ca marche hein


 
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.


Message édité par boulax le 20-07-2004 à 11:11:08

---------------
Posté depuis des chiottes, sales. Me gusta.
n°800441
Profil sup​primé
Posté le 20-07-2004 à 11:11:06  answer
 

du tout :heink:

n°800450
galldup
Posté le 20-07-2004 à 11:16:38  profilanswer
 

-> 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.

n°800452
T509
$job-&gt;GetJob(now)
Posté le 20-07-2004 à 11:17:10  profilanswer
 

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.


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°800457
boulax
Inserer phrase hype en anglais
Posté le 20-07-2004 à 11:18:53  profilanswer
 

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é...


---------------
Posté depuis des chiottes, sales. Me gusta.
n°800461
galldup
Posté le 20-07-2004 à 11:22:47  profilanswer
 

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 ! :)

n°800463
drasche
Posté le 20-07-2004 à 11:24:22  profilanswer
 

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.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°800468
galldup
Posté le 20-07-2004 à 11:25:58  profilanswer
 

hum... :o  
 
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.

n°800471
boulax
Inserer phrase hype en anglais
Posté le 20-07-2004 à 11:26:55  profilanswer
 

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 :
  1. <?php
  2. /* This example assumes that www.example.com is configured to parse .php
  3. * files and not .txt files. Also, 'Works' here means that the variables
  4. * $foo and $bar are available within the included file. */
  5. // Won't work; file.txt wasn't handled by www.example.com as PHP
  6. include 'http://www.example.com/file.txt?foo=1&bar=2';
  7. // Won't work; looks for a file named 'file.php?foo=1&bar=2' on the
  8. // local filesystem.
  9. include 'file.php?foo=1&bar=2';
  10. // Works.
  11. include 'http://www.example.com/file.php?foo=1&bar=2';
  12. $foo = 1;
  13. $bar = 2;
  14. include 'file.txt';  // Works.
  15. include 'file.php';  // Works.
  16. ?>


---------------
Posté depuis des chiottes, sales. Me gusta.
n°800473
T509
$job-&gt;GetJob(now)
Posté le 20-07-2004 à 11:29:42  profilanswer
 

galldup a écrit :

hum... :o  
 
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.


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é.


Message édité par T509 le 20-07-2004 à 11:30:21

---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°800492
dropsy
et bonne chance surtout...
Posté le 20-07-2004 à 11:35:31  profilanswer
 

galldup a écrit :

hum... :o  
 
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.


 
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 ;) )


Message édité par dropsy le 20-07-2004 à 11:38:25
n°800497
dropsy
et bonne chance surtout...
Posté le 20-07-2004 à 11:37:55  profilanswer
 

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 [:proy]

n°800510
T509
$job-&gt;GetJob(now)
Posté le 20-07-2004 à 11:44:55  profilanswer
 

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 ;)
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 [:proy]


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à ?


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°800517
dropsy
et bonne chance surtout...
Posté le 20-07-2004 à 11:47:00  profilanswer
 

T509 a écrit :

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à ?


comme je l'ai dit dans mon message, ce n'est pas la meilleure solution :sarcastic:
 

n°800534
drasche
Posté le 20-07-2004 à 11:53:35  profilanswer
 

oué bon je partais du point de vue de l'include local :o
perso je vois pas l'intérêt du host quand on fait un développement local :/


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  portée des variables

 

Sujets relatifs
variables dans un fichiertutorial variables de sessions
melange de variables javascript dans du phpProblème avec la copie de variables
variables inaccessibles (easyPHP 1.7)recuperer des variables de session lors du timeout par un listener
pb concaténation et variables[java] Vous préfixez vos variables pour en déterminer la portée?
[bash] question sur la portée des variables[PHP] Portée des variables (manuel trop vague!)
Plus de sujets relatifs à : portée des variables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR