Alternative à l'Iframe

Fermé
lilsource Messages postés 34 Date d'inscription vendredi 8 novembre 2013 Statut Membre Dernière intervention 17 mars 2023 - Modifié par lilsource le 6/04/2014 à 16:11
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 6 avril 2014 à 19:11
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 :
<?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.

5 réponses

math 2000 Messages postés 2579 Date d'inscription dimanche 9 septembre 2007 Statut Membre Dernière intervention 7 mai 2016 404
6 avril 2014 à 16:33
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
0
lilsource Messages postés 34 Date d'inscription vendredi 8 novembre 2013 Statut Membre Dernière intervention 17 mars 2023
6 avril 2014 à 17:01
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 ?
0
math 2000 Messages postés 2579 Date d'inscription dimanche 9 septembre 2007 Statut Membre Dernière intervention 7 mai 2016 404
Modifié par math 2000 le 6/04/2014 à 17:27
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>
0
math 2000 Messages postés 2579 Date d'inscription dimanche 9 septembre 2007 Statut Membre Dernière intervention 7 mai 2016 404
Modifié par math 2000 le 6/04/2014 à 17:28
après vu que tu vas pas t'amuser à écrire le code html de toute les page tu peux faire une include à la place de la chaine de caractère test mais avec les guillemet et tout ça risque de bugguer
0
math 2000 Messages postés 2579 Date d'inscription dimanche 9 septembre 2007 Statut Membre Dernière intervention 7 mai 2016 404
Modifié par math 2000 le 6/04/2014 à 17:31
tu peux aussi recharger toute la page en ayant changer le include par la page que tu souhaites
0
lilsource Messages postés 34 Date d'inscription vendredi 8 novembre 2013 Statut Membre Dernière intervention 17 mars 2023
6 avril 2014 à 17:35
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.
0
math 2000 Messages postés 2579 Date d'inscription dimanche 9 septembre 2007 Statut Membre Dernière intervention 7 mai 2016 404
6 avril 2014 à 17:42
de rien aucune idée de si c'est centré mais normalement ça remplace juste la div
0
lilsource Messages postés 34 Date d'inscription vendredi 8 novembre 2013 Statut Membre Dernière intervention 17 mars 2023
Modifié par lilsource le 6/04/2014 à 18:12
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.
0
lilsource Messages postés 34 Date d'inscription vendredi 8 novembre 2013 Statut Membre Dernière intervention 17 mars 2023
6 avril 2014 à 18:36
J'ai réactivé le sujet car je cherche toujours!
Si quelqu'un a une idée ?
0
math 2000 Messages postés 2579 Date d'inscription dimanche 9 septembre 2007 Statut Membre Dernière intervention 7 mai 2016 404
6 avril 2014 à 19:04
sans le code de ta page et une capture d'écran de ce que tu veux vraiment je peux rien faire
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
6 avril 2014 à 19:11
Bonjour,

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+
0