- Si je fais dans mon fichier tst.php include ('http://monsite.fr/user_agent.php'); Ca ne fonctionne pas, pas de message d'erreur... include ('user_agent.php'); Tout est ok
C'est tout simplement que le serveur n'est pas configuré pour accepter les includes distants
include ('user_agent.php?var=$variable'); Message d'erreur : [...] failed to open stream: No such file or directory in [...] C'est normal: un include prend seulement un nom de fichier, vu que le
fichier est interprété comme faisant partie de celui qui l'appelle. Si tu veux appeler le fichier avec un paramètre, la structure est plutôt: $var = $variable; include ('user_agent.php') Et user_agent.php verra $var. Si tu utilises des $_REQUEST ou $_GET, il faut que $var soit passé et GET à ton fichier appelant.
-- Tout sur les eggdrops http://www.c-p-f.org ML @
Eric wrote:
- Si je fais dans mon fichier tst.php
include ('http://monsite.fr/user_agent.php');
Ca ne fonctionne pas, pas de message d'erreur...
include ('user_agent.php');
Tout est ok
C'est tout simplement que le serveur n'est pas configuré pour accepter
les includes distants
include ('user_agent.php?var=$variable');
Message d'erreur : [...] failed to open stream: No such file or directory in
[...]
C'est normal: un include prend seulement un nom de fichier, vu que le
fichier est interprété comme faisant partie de celui qui l'appelle.
Si tu veux appeler le fichier avec un paramètre, la structure est plutôt:
$var = $variable;
include ('user_agent.php')
Et user_agent.php verra $var.
Si tu utilises des $_REQUEST ou $_GET, il faut que $var soit passé et
GET à ton fichier appelant.
--
Tout sur les eggdrops
http://www.c-p-f.org
ML @ eggdrop_fr@yahoogroupes.fr
- Si je fais dans mon fichier tst.php include ('http://monsite.fr/user_agent.php'); Ca ne fonctionne pas, pas de message d'erreur... include ('user_agent.php'); Tout est ok
C'est tout simplement que le serveur n'est pas configuré pour accepter les includes distants
include ('user_agent.php?var=$variable'); Message d'erreur : [...] failed to open stream: No such file or directory in [...] C'est normal: un include prend seulement un nom de fichier, vu que le
fichier est interprété comme faisant partie de celui qui l'appelle. Si tu veux appeler le fichier avec un paramètre, la structure est plutôt: $var = $variable; include ('user_agent.php') Et user_agent.php verra $var. Si tu utilises des $_REQUEST ou $_GET, il faut que $var soit passé et GET à ton fichier appelant.
-- Tout sur les eggdrops http://www.c-p-f.org ML @
John Gallet
Re,
- Si je fais dans mon fichier tst.php include ('http://monsite.fr/user_agent.php');
... alors tu récupères dans le navigateur qui appelle tst.php le même flux de sortie que si un autre navigateur avait envoyé cette requête et qu'on avait fait un copié collé du résultat. Donc la seule chose que tu aurais pu voir était la valeur du user_agent déclaré dans php.ini que le site distant aurait reçu dans les en-têtes. Quand tu fais ceci, PHP a le même comportement qu'un navigateur qui envoie une requête GET [url] HTTP1.1
include ('user_agent.php?var=$variable'); Message d'erreur : [...] failed to open stream: No such file or directory in [...]
Normal, ça n'a PAS DE SENS. Plus précisement : pas de raison d'être. Si tu fais include('user_agent.php') alors $variable est DEJA DEFINIE dans user_agent.php (vu qu'elle est définie dans le script appelant).
En revanche il est possible de faire : include ("http://monsite.fr/user_agent.php?var=$variable'); Dans ce cas, si le script user_agent.php contient le code <?php echo $var; ?> tu recevras en retour la valeur de $variable.
NB : ceci est la base des attaques par includes dynamiques, la faille majeure de sécurité restante dans un certain nombre de scripts. Si le script distant renvoie du code php alors le script appelant va l'exécuter, donc on donne la main totale sur son propre site à un attaquant qui peut exécuter ce qu'il veut.
a++ JG
Re,
- Si je fais dans mon fichier tst.php
include ('http://monsite.fr/user_agent.php');
... alors tu récupères dans le navigateur qui appelle tst.php le même
flux de sortie que si un autre navigateur avait envoyé cette requête et
qu'on avait fait un copié collé du résultat. Donc la seule chose que tu
aurais pu voir était la valeur du user_agent déclaré dans php.ini que le
site distant aurait reçu dans les en-têtes. Quand tu fais ceci, PHP a le
même comportement qu'un navigateur qui envoie une requête GET [url]
HTTP1.1
include ('user_agent.php?var=$variable');
Message d'erreur : [...] failed to open stream: No such file or directory in
[...]
Normal, ça n'a PAS DE SENS. Plus précisement : pas de raison d'être. Si
tu fais include('user_agent.php') alors $variable est DEJA DEFINIE dans
user_agent.php (vu qu'elle est définie dans le script appelant).
En revanche il est possible de faire : include
("http://monsite.fr/user_agent.php?var=$variable');
Dans ce cas, si le script user_agent.php contient le code <?php echo
$var; ?> tu recevras en retour la valeur de $variable.
NB : ceci est la base des attaques par includes dynamiques, la faille
majeure de sécurité restante dans un certain nombre de scripts. Si le
script distant renvoie du code php alors le script appelant va
l'exécuter, donc on donne la main totale sur son propre site à un
attaquant qui peut exécuter ce qu'il veut.
- Si je fais dans mon fichier tst.php include ('http://monsite.fr/user_agent.php');
... alors tu récupères dans le navigateur qui appelle tst.php le même flux de sortie que si un autre navigateur avait envoyé cette requête et qu'on avait fait un copié collé du résultat. Donc la seule chose que tu aurais pu voir était la valeur du user_agent déclaré dans php.ini que le site distant aurait reçu dans les en-têtes. Quand tu fais ceci, PHP a le même comportement qu'un navigateur qui envoie une requête GET [url] HTTP1.1
include ('user_agent.php?var=$variable'); Message d'erreur : [...] failed to open stream: No such file or directory in [...]
Normal, ça n'a PAS DE SENS. Plus précisement : pas de raison d'être. Si tu fais include('user_agent.php') alors $variable est DEJA DEFINIE dans user_agent.php (vu qu'elle est définie dans le script appelant).
En revanche il est possible de faire : include ("http://monsite.fr/user_agent.php?var=$variable'); Dans ce cas, si le script user_agent.php contient le code <?php echo $var; ?> tu recevras en retour la valeur de $variable.
NB : ceci est la base des attaques par includes dynamiques, la faille majeure de sécurité restante dans un certain nombre de scripts. Si le script distant renvoie du code php alors le script appelant va l'exécuter, donc on donne la main totale sur son propre site à un attaquant qui peut exécuter ce qu'il veut.