Eléphant du PHP |
422 Messages
07 mai 2008, 09:56
Il faut bien comprendre ce qui fonctionne sur le serveur et ce qui fonctionne sur le poste client. Quand tu utilises easyphp, on a tendance à tout confondre.
La syntaxe <form action="..."'> est du HTML qui fonctionne sur le poste client. Si tu mets C:\xxx, le HTML ira chercher sur le C:\ du poste sur lequel il fonctionne.
1) ça va faire bizarre à l'utilisateur qu'on essaye d'exécuter un fichier sur SON disque
2) même en développement avec easyph, comme tu accèdes en C:\ et pas en http://, le serveur Apache qui lance l'exécution du PHP n'est pas sollicité. Donc il ne se passera rien
Le paramètre action de <form> est obligatoirement
http://Modele/validation.php
Donc si tu veux empêcher l'accès à certains fichiers PHP
1) soit tu t'orientes vers une solution de cryptage (Zend, IonCube, ...) qui va rendre les fichiers PHP illisibles
2) soit tu travailles avec des include car là, on est au niveau du serveur et du système de fichiers. Exemple :
/** fichier index.php dans www **/
<?php
include ("C:\autre_rep\connect.php");
/*** autres instructions ***/
?>
Même si quelqu'un arrive à récupérer le contenu de index.php via http, il ne pourra pas accéder au répertoire C:\ hors de cette arborescence