Chargement de contenu html et php dans une page php ?
Bonjour, J'ai utiliser le code si dessous pour afficher mon contenu que j'ai creer en .html dans un dossier different mais quand j'ai un renvoi vers une page php par expl pour un formulaire. j'ai une erreur.
Comment afficher autant des pages php que html ? Jai essayer mais rien, si quelqu'un à la reponse, merci d'avance !
if( file_exists ("pages/$p.html") OR ("pages/$p.php") ){ include "pages/$p.html" OR "pages/$p.php";
PHP:
Réponses apportées à cette discussion
Ceci n'est pas valide :
<?php
if( file_exists ("pages/$p.html") OR ("pages/$p.php") ){ include "pages/$p.html" OR "pages/$p.php";
//...
?>
Essaye ceci à la place :
<?php
if( file_exists("pages/". $p .".html"))
{
include "pages/". $p .".html";
}
elseif(file_exists("pages/". $p .".php"))
{
include "pages/". $p .".php";
}
//...
?>
Merci pour ta reponse, ma page php s'affiche mais elle dans une autre page pas dans mon template.
il y a t'il rien a voir avec mon fichier .htaccess, car si j'ai bien compris la réécriture des pages html et non les php ? Je suis débutant en php, lol.
On RewriteRule ^(.*).html$ index.php?pages=$1 [L]
Voici le code php de ma page peut etre une autre erreur ?
CODE:
PS: J'ai oublier de te dire que je suis obligé de mettre en action="pages/contact.php" pour le repertoire ou se trouve la page pour que sa me l'affiche. Normalement je n'ai pas à le faire si il est déclarer dans ma page index.php ?
elseif(file_exists("pages/". $p .".php")){
C'est normal que ta page est inclu dans une autre page car tu fais un include^^. Je comprend pas trop ce que tu veux faire _-!?
Salut,
1/ On ne fait pas d'include d'une page statique HTML, mais un file_get_contents(). Les include() et require() sont réservés aux pages PHP.
@Cyrano : attention à la sécurité. Ton code peut permettre d'insérer des pages sensibles si elle se trouvent dans le répertoire pages ou bien dans un sous répertoire sensible de ce dernier (ex: protected). Par exemple, si on passe dans l'url ?page=protected/secure, alors le test de l'existence de la page renverra vrai car la page pages/protected/secure.php existe.
Hello,
"@Cyrano : attention à la sécurité. Ton code peut permettre d'insérer des pages sensibles si elle se trouvent dans le répertoire pages ou bien dans un sous répertoire sensible de ce dernier (ex: protected). Par exemple, si on passe dans l'url ?page=protected/secure, alors le test de l'existence de la page renverra vrai car la page pages/protected/secure.php existe"
C'est fort juste, mais dans la mesure où on en est conscient au départ, il n'est pas difficile de mettre des filtres, par exemple stocker dans un tableau indexé la liste des fichiers autorisés et ajouter dans la structure conditionnelle la vérification de la présence du fichier en question dans la liste.
Merci de vos reponse, je débute en php et on peu perdu la.
J'ai suivi en parti le tutoriel du site our plus d'infos.
Ce que je voudrai faire est simple, lol. Un site avec une interface dynamique, c'est à dire pae expl. pour les menus, j'ai fais des include. Mais pour mon contenu j'ai suivi le tuto en question !
Je ne sais pas trop que faire car sur le web ce que j'ai trouver (ou peux etre pas chercher avec le bon nom ?) parlent de pseudos frames ou include et pour ce qui est de la sécurité, il faut suivre et chaqu'un une solution plus ou moins différente et vague ! Sutout pour un débutant.
Merci à vous tous.
Alors je suis entièrement à votre écoute pour toutes solutions !
Si tu cherches un bon tuto sur les pseudo-frames, il y a celui de PHPDebutant
la je suis perdu a force, lol !Bon,
comment faire fonctionner mon formulaire.html qui renvoi à contact.php et l'afficher dans le contenu de mon site ?
pour la sécurité j'ai un .htaccess avec le contenu ci dessous:
On suit les liens symboliques
Options +FollowSymlinks
Activation du mod rewrite d'Apache RewriteEngine On
RewriteEngine On
RewriteRule ^(.*).html$ index.php?pages=$1 [L]
Tu as mis quoi comme valeur pour l'attribut "action" de ta balise ?
form method="post" action="pages/contact.php"
Bon ben réfléchis un instant : décompose un peu ce que tu as mis dans ton fichier .htaccess et regarde ensuite l'url de ton attribut action :
le .htaccess redirige les pages «xyz.html» vers «index.php?pages=xyz».
Maintenant, si l'url est pages/contact.php, ça ne correspond pas au masque «(.).html*» : pas de correspondance, pas de ré-écriture.
Ceci étant, ça devrait fonctionner : est-ce que ta page «contact.php» est bien dans le répertoire «pages» ?
Et sinon, remplace action="pages/contact.php" pas action="contact.html" : là, ça correspondrait au masque et la ré-écriture d'url s'effectuerait normalement.