Alternative à l'Iframe
lilsource
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
-
mpmp93 Messages postés 6648 Date d'inscription Statut Membre Dernière intervention -
mpmp93 Messages postés 6648 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis super débutante en php. En vrai je me porte bcp mieux en html, css ou même en graphisme. Mais voilà pour réaliser un projet pour mon asso, je bricole pour réaliser une petite interface qui servirait à accéder et gérer une bibliothèque en ligne.
Je suis seule et même si je vais suivre une petite formation en POO d'ici un mois, j'aimerais débugger un peu là où ça hic.
Pour commencer, j'ai trouver une super alternative à la méthode Iframe pour appeler mes pages simplement. C'est une "include" dans ma div centrale qui utilise un simple code php. Ce code liste toutes les pages qui seront appelées dans cette partie du site.
donc l'include dans la div centrale de mon index se présente ainsi :
le code qui se trouve dans ce fichier phpArray.php le voici :
... Test : Je suis sur l'accueil de ma page, je clique sur le 1er bouton du menu (maPage1 par exemple) et ça marche génial. le contenu s'affiche dans au centre de mon site. sauf que lorsque je clique sur un lien qui se trouve dans ce contenu, cela ne s'affiche bien entendu pas au centre de mon site.
Ai-je été claire ou...?
Alors si vous avez une idée pour me rendre la tache plus facile, je prends.
Je suis super débutante en php. En vrai je me porte bcp mieux en html, css ou même en graphisme. Mais voilà pour réaliser un projet pour mon asso, je bricole pour réaliser une petite interface qui servirait à accéder et gérer une bibliothèque en ligne.
Je suis seule et même si je vais suivre une petite formation en POO d'ici un mois, j'aimerais débugger un peu là où ça hic.
Pour commencer, j'ai trouver une super alternative à la méthode Iframe pour appeler mes pages simplement. C'est une "include" dans ma div centrale qui utilise un simple code php. Ce code liste toutes les pages qui seront appelées dans cette partie du site.
donc l'include dans la div centrale de mon index se présente ainsi :
<?php include 'phpArray.php';?>
le code qui se trouve dans ce fichier phpArray.php le voici :
<?php
// On définit le tableau contenant les pages autorisées
$pageOK = array(
'accueil' => 'accueil.php',
'maPage1' => 'maPage1.php',
'maPage2' => 'maPage2.php',
'etc_etc' => 'etc_etc.php',
);
// On teste que le paramètre d'url existe et qu'il est bien autorisé
if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) )
{
include($pageOK[$_GET['page']]); // Nous appelons le contenu central de la page
}
else {
include('accueil.php'); // Page par défaut quant elle n'existe pas dans le tableau
}
?>
... Test : Je suis sur l'accueil de ma page, je clique sur le 1er bouton du menu (maPage1 par exemple) et ça marche génial. le contenu s'affiche dans au centre de mon site. sauf que lorsque je clique sur un lien qui se trouve dans ce contenu, cela ne s'affiche bien entendu pas au centre de mon site.
Ai-je été claire ou...?
Alors si vous avez une idée pour me rendre la tache plus facile, je prends.
A voir également:
- Alternative iframe
- Coco.gg alternative - Accueil - Réseaux sociaux
- Coco chat alternative - Accueil - Réseaux sociaux
- Alternative zone telechargement - Accueil - Outils
- Alternative word gratuit - Guide
- Alternative office - Guide
5 réponses
En php ça ne sera pas possible si j'ai bien compris tu veux le fonctionnement d'une iframe mais sans iframe il faut donc passer par du javascript et mettre sous écoute les lien pour qu'il remplace la div qui contiendra l'include
Merci Math,
donc mon code n'était pas vraiment une alternative. Je n'ai alors peut-être pas compris sa fonction si ça ne me sert finalement à rien.
Sinon qu'entends-tu par mettre sous écoute les liens? Peux-tu me dire quelle est la méthode, le code javascript ?
donc mon code n'était pas vraiment une alternative. Je n'ai alors peut-être pas compris sa fonction si ça ne me sert finalement à rien.
Sinon qu'entends-tu par mettre sous écoute les liens? Peux-tu me dire quelle est la méthode, le code javascript ?
tu peux par exemple créer une fonction
<script type="text/javascript" >
function remplacerFrame(toncodehtml)
{
document.getElementById("IdDeTonElement").innerHTML = toncodehtml
}
</script>
<div id="IdDeTonElement">
<a href="#letagquimeplait" onclick="remplacerFrame('test');" >ceciest une iframe simulé </a>
</div>
<script type="text/javascript" >
function remplacerFrame(toncodehtml)
{
document.getElementById("IdDeTonElement").innerHTML = toncodehtml
}
</script>
<div id="IdDeTonElement">
<a href="#letagquimeplait" onclick="remplacerFrame('test');" >ceciest une iframe simulé </a>
</div>
Pas mal !
Je viens de faire le test et ça marche. En plus c'est centré verticalement et horizontalement direct (bizarre mais cool vu les heures que j'ai passé à tout tester pour ce rendu).
Il faut maintenant que j'adapte tout ça correctement.
Merci beaucoup, Math.
Je viens de faire le test et ça marche. En plus c'est centré verticalement et horizontalement direct (bizarre mais cool vu les heures que j'ai passé à tout tester pour ce rendu).
Il faut maintenant que j'adapte tout ça correctement.
Merci beaucoup, Math.
Ba mince alors, je crois que mon navigateur s'est joué de moi. Après avoir actualisé ma page, ce n'est plus pareil.
J'ai vu que tu as modifié un peu ton code.
Sauf que le premier comme le 2e, rien à faire.
C'était un mirage, la phrase apparaissait au centre et avec le fond et les élements du site.
maintenant la phrase est sur une page blanche sans aucun style.
Grrrr... je vais m'arracher les cheveux.
Le pire c'est que quand je retourne en arrière dans les pages naviguées, la bonne apparence est bien là et même ce code source ne me permet pas d'afficher à nouveau cette version.
en fait c'est parce que en amont, ma page où il y avait tjs les include n'avait pas encore été changée. Donc bref espoir, ta technique appelle bien la page mais pas comme une iframe au milieu du site.
J'ai vu que tu as modifié un peu ton code.
Sauf que le premier comme le 2e, rien à faire.
C'était un mirage, la phrase apparaissait au centre et avec le fond et les élements du site.
maintenant la phrase est sur une page blanche sans aucun style.
Grrrr... je vais m'arracher les cheveux.
Le pire c'est que quand je retourne en arrière dans les pages naviguées, la bonne apparence est bien là et même ce code source ne me permet pas d'afficher à nouveau cette version.
en fait c'est parce que en amont, ma page où il y avait tjs les include n'avait pas encore été changée. Donc bref espoir, ta technique appelle bien la page mais pas comme une iframe au milieu du site.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Ici vous avez une très grosse faille de sécurité:
la faille est au niveau de include.... On peut oincluser un script externe!
Ici est expliqué comment protéger votre include:
https://html5.immo-scope.com/article/general_unModeleMvcSimplifie
A+
Ici vous avez une très grosse faille de sécurité:
// On teste que le paramètre d'url existe et qu'il est bien autorisé if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) { include($pageOK[$_GET['page']]); // Nous appelons le contenu central de la page }
la faille est au niveau de include.... On peut oincluser un script externe!
Ici est expliqué comment protéger votre include:
https://html5.immo-scope.com/article/general_unModeleMvcSimplifie
A+