Voilà pou rl’instant je suis en train de faire mon site en pseudo-frame en php, mais je me demande si je dois continuer, je me demande si c’est vraiment efficace si il n’ya pas une autre methode ?
C’est bien pour les url du menu header ou du menu gauche mais quand il s’agit des lien se trouvant dans le frame c’est moins pratique.
Par exemple lorsqu’on met ca :
[cpp][/cpp]
On retourve bien la page mais apres un back ou forward du navigateur on a le message du navigateur “cette page contient des données POSTDATA…”
Le pseudo-framing est fortement utilisé, mais ça ne veut pas dire que c’est la bonne méthode en effet. Au pseudo framing, tu as des failles de sécurités (ie: ?page=…/config.php), d’autres tracas mais par contre l’avantage de foutre le menu au même endroit.
Le mieux reste quand même un fichier pour le menu (pareil qu’en pseudo framing, en fait), et de faire une page contenant un code générique.
Je trouve ça mieux personnellement, au moins pour le tracing dans les logs apache :o
Bon pour l’instant je vais en rester sur le pseudo-framing, j’ai trouvé quelque smoyens pour passer le message d’erreur du POSTDATA, je verrais plus tard pour une autre solution si j’ai le temps.
En fait moi j’utilise un fichier ou je place tous les liens puis je fais un include de ce fichier :
[cpp]<?php
if (!isset($_GET[‘p’]))
$p= ‘pres_acc’;
else
$p= $_GET[‘p’];
switch($p)
{
case ‘p1’: include (‘p1.php’);break;
case ‘p2’: include (‘p2.php’);break;
case ‘p3’: include (‘p3.php’);break;
}
?>[/cpp]
De plus je metrais jamais ca : ?page=…/config.php
Tu parles de faille, c’est grave de mettre des variables visible dans la barre d’adresse ?
Ca n’est pas un message d’erreur POSTDATA…
C’est un message avertissant l’utilisateur qu’il va renvoyer des données de type post (donc formulaire en général), et que ca peut poser problèmes (genre acheter 2 fois le même article sur un site de vente en ligne).
Pourquoi tu n’utilises pas un lien tout bête ?
Ou en essayant de faire passer ton formulaire en méthode GET ?
alien> ne considère jamais les visiteurs (anonymes) comme des visiteurs anodins. N’importe qui peut vouloir rompre la sécurité de ton script. Tiens, la dernière faille phpbb 2.0.10 est trop tentante : je la trouve encore dans mes logs. je te jure que ça me tenterai trop de me la péter en disant “forum pas sécurisé => phpbb2.0.11 (ou pire)”.
De plus, le pseudo framing sécurisé, implique un joli switch sur la variable ‘p’. Et il se passe quoi quand ta variable ne contient pas quelque chose de valide? Sans compter que c’est évalué à chaque fois. Etc.
Mais supposons qu’il fasse cette requete, je comprends pas comment il poura acceder à la page vu que ?page=…/config.php …/config.php n’est pas dans mon case,dan smon cas c’est pas possible non ?
Puis tout de facon je ne nomme jamais mes fichiers sensible avec un nom comme config.php.
là non, mais dans ce cas je prèfère une page / section. Mais bon, je gère un site avec beaucoup de pages par rapport à toi (je sais pas ce que ça donne pour toi totalement), mais bref tu vas relativement t’emmerder pour les liens dans ton menu, tes pages, etc.
bah en fait au debut j’avais commencé avec les includes c’est a dire pour chaque page je fais un :
[cpp]<?php
include (“header.php”); //dans mon header il y’a du code php include (“config.php”)
?>
la page
<?php
include ("footer.php");
?>
[/cpp]
Le probleme qui s’est posé c’est que lorsque je me retourve dan sun sous dossier
/home/
/chat/index.php lorsque je fais les includes ici l’adresse du include (“config.php”) n’est plus valide je n’ai pas trouvé comment mettre une adresse general pour que meme sous un dossier il retrouve le lien de config.php
Je travail avec easyphp, y’a-til un solution a ca ?
C’est un lien vers la racine du serveur, simplement.
Sinon à partir de $_SERVER[‘PHP_SELF’] tu dois pouvoir te construire une constante PATH contenant des “…” pour revenir en arrière.
J’ai regardé dans phpinfo(); , la variable _SERVER[“DOCUMENT_ROOT”] me renverait c:/program files/easyphp1-7/www
donc moi je suis en localhost donc ca doit pas marcher non ?
Warning: main(c:/program files/easyphp1-7/www/admin/config.php): failed to open stream: No such file or directory in c:\documents and settings\alien7\bureau\site\home\header.php on line 3
le pseudo framing c quand meme le mieux pour la maintenance d’un site…
mais ça demande un peu d’organisation…
deja basic les fichiers a inclure doivent etre mis dans des sous repertoires protegés par des “htaccess deny from all”
ex :
include(“etc/config.php”);
include(“inc/mysql.php”);
include(“inc/securite.php”);
…
on mettra un etc/.htaccess et un inc/.htaccess …
ça evite d’avoir un petit malin qui execute des bout de site !
ensuite jamais d’appel du style
include($_GET[‘page’]);
comme a dit sans-nom c la porte ouverte a des attaques…
on teste ses petits parametres et dans une variable proteges on met le nom de la page a inclure…
on mutualise tout ce qui est securité…
on utilise le GET plutot que le POST
si on utilise du POST on l’utilise avec une page dédié (un form.php) qui quand elle a fini de traiter la requete fait un meta redirect (ou un location=) vers un URL (GET) ça evite les souci de rechargement de page POSTée …
ensuite il n’est pas inutil de se creer des fonctions pour generer les url…
du style on passe le table $_GET + un tableau d’exceptions (valeur a ajouter modifier) et cela genere l’url (avec les variable toujours dans le meme ordre si on gere du cache c bien)
puis on peut utiiser les cookies alllegrement ainsi que les sessions…