Pseudo-frame avec php

Salut encore moi

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…”

Comment palier à ca ?

Merci encore de votre aide.

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 ?

Je sais bien que c’est pas un message d’eereur , mais bon je le considere tel.

Que ce soit POST ou GET j’aurai la meme chose j’ai testé.
Bref j’ai plus l’erreur, je n’utiliserai plus de comme ca j’aurais plus de probleme

Ce n’est pas toi qui ferais une telle requète, mais des visiteurs mal intentionnés.

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.

Je risque pas grand chose non ?

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 ?

$_SERVER[‘DOCUMENT_ROOT’]

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.

[edit] et mieux : si t’as accès à un htaccess, tu as aussi http://fr.php.net/manual/fr/ini.sect.path-directory.php

En somme, tu ajoute ton dossier (ex: .:/xxxx/). Ex:

php_flag include_path .:/users/nwinter/web/nwn

Et puis pour savoir où est le fichier htaccess, tu fais print FILE dans un fichier php.

[cpp]<?php
$dir = dir($_SERVER[“DOCUMENT_ROOT”]);
include ("$dir.config.php");
?>[/cpp]

Est-ce que la syntaxe est bonne stp ?

Sinon tu me conseil quoi entre ces 2 methodes ( pseudo-framing ou par simple include) ?

Encor emerci pour tes reponses :kaola:

edit: je vais lire ce que tu as ecrit plus haut

include_path -> bah cette commande fait l’affaire je coris

Non ca doit pas include_path
Bon ke vais essayer avec le code que j’ai ecrit plu shaut

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 ?

Pr DOCUMENT_ROOT cf. http://www.php.net/source.php?url=/index.php

Bonjour bonjour

voilà ce que me donne document_root

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

Oui enfin faut quand même rajouter le chemin vers tes fichiers à toi quand même.

J’ai testé sur free et ca marche, par contre en local ca marche pas, bref pas important.

Pou rl’instant j’ai commencé en pseudo-framing je vaus en rester là, je verrai splus tard pour une autre methode.

Merci beaucoup à toi Sans-Nom pour toutes tes reponses :jap:

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…

voilou

quazardous -->

Ca c’est dejà fait.

J’utilise un switch ( plus haut )

ca aussi…
enfin je crosi bien que j’ai respecté la plupart des choses que tu as dis.

Merci pour ses precisions