Include qui deconne en php !!!

Fermé
ZarTenBerg Messages postés 85 Date d'inscription jeudi 1 mars 2007 Statut Membre Dernière intervention 3 juin 2012 - 17 juil. 2007 à 01:05
 Dixitron - 17 juil. 2007 à 03:51
Bonsoir, en réalité j'ai mis des indexes sur mes pages web voici le code :

Une page web : (ce code est dans index.php)
____________

$page[3]="ajout_biens_louer_form.php";

et le code :
_________

$s=$_GET['page'];
$page=$page[$s]; <==== l'ereur est peut etre ici bizzard !!!
include($page);
die();

le lien vers cette page web :
_______________________

<font size="4"><b><a href="?page=3"> Un bien a louer</a>

le probléme est que le "include" ne trouve pas le fichier : "ajout_biens_louer_form.php"; mais quand je met ce lien direct dedand, ca marche, j'ai fait un echo du coup de $s ===> cela donne "3" donc le bon SCRIPT !!! cependant j'ai le message suivant :
--------------------------------------------------------------------------------------------------------------------------
Warning: main(a): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\zarimmo\indexessai.php on line 22
Warning: main(): Failed opening 'a' for inclusion (include_path='.;C:\PROGRA~1\EASYPH~1\\php\pear\') in c:\program files\easyphp1-8\www\zarimmo\indexessai.php on line 22
--------------------------------------------------------------------------------------------------------------------------
POuvez vous m'aider s'il vous plait !!
A voir également:

1 réponse

Salut !
Je doute que le include déconne ;) mais je ne doute pas que ca te prend la tête. Ah la connaissance.. c'est tellement large..

Aussi ton erreur est très interessante à plusieurs points de vues et je te remerci de la soulever ;).

tout d'abord il faut savoir qu'il y a plusieurs moyen de récupérer les valeurs et variable recu par l'url (get, dans ton cas) car a lorigine (selon la configuration de php et les version) php créera directement une variable accessible par $page et aussi par $_GET['page']
php te créer donc deux variables dès l'entrè dans ton script (celon la configuration de PHP)
Ces deux variables sont des chaines de caractères.
donc
$page : est une chaine
$_GET[$page] : est une chaine
A l'entrée dans ton script tu peux donc faire comme si (et c'est presque le cas) php avait déja fait

$page="3";
$_GET['page']="3";

Lorsque dans le script tu met
$page[3]="ajout_biens_louer_form.php";

c'est donc comme si le script avait eu ca à traiter :

$page="3";
$page[3]="ajout_biens_louer_form.php";

Le problème est la.
Pour PHP, $page est d'abord une chaine, mais ici tu le traite ensuite comme un tableau.
Php n'aime pas ca..
Je n'irais pas plus loin dans les explications sur le typage et la conversion de type sous php bien que le sujet soit des plus interessant.

Pour t'en sortir, nomme les variables de ton script d'un nom different que les variables recu par GET (ou POST).
Note aussi que ton erreur est d'ailleur le chemin vers des trous de sécurité. Je dis ca pour ceux qui arriverai ici par hazard.
Merci encore d'avoir soulevé un problème interressant.
Bon courage ;)
0