IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Utilisation de pseudo-frames imbriquées


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Par défaut Utilisation de pseudo-frames imbriquées
    Pour mon site, j'utilise des pseudo-frames comme suit:

    1. J'affiche à gauche le menu et à droite, le contenu.
    Nom : site_main.png
Affichages : 133
Taille : 451,1 Ko

    2. Pour l'une des rubriques, j'insère deux frames à droite, conenant un menu supplémentaire dans celle du haut, et le contenu dans celle du bas.
    Nom : site_screen.png
Affichages : 143
Taille : 542,7 Ko

    Pour la partie 1, tout fonctionne bien. C'est la partie 2 qui pose problème. Elle s'affiche parfaitement dans la frame de droite, comme le montre la capture.
    Par contre, je ne parviens pas à afficher le contenu dans la frame du bas. Il prend toute la frame de gauche et fait disparaître le menu.

    Voilà le code pour la partie 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <section class="grid-container">
        <aside class="navigation-container col-2">
    	<?php include 'navigation.php'; ?>
        </aside>
        <article class="accueil-container col-10">
    	<?php
            	if ( isset($_GET['page']) ) {
    	        	$page = $_GET['page'];
    		}
    		if (!empty($page)) {
    			include(preg_replace('#href="(?<!http://seriemaniacs.ht.st/)(.*?)"$#',
                             'http://seriemaniacs.ht.st/\\1',$page).'');
    		} 	/* if $page has a value, include it */
    		else {
    		include('bienvenue.php');
    		}
    	?>
        </article>			
    </section>
    Et maintenant le code pour la partie 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?php
        $page = '';   //Ici, je vide la variable $page, sinon la page charge en boucle
    ?>
    <section class="trek-grid-container">
    	<header class="trek-navigation-container">
    		<?php include 'startrek/treknav.php'; ?>
    	</header>
    	<article class="trek-accueil-container">
    		<?php
    			if( isset($_GET['$page']) ) {
    				$page = $_GET['page'];
    			}
    			if (!empty($page)) {
    				include(preg_replace('#href="(?<!http://seriemaniacs.ht.st/)(.*?)"$#',
                                     'http://seriemaniacs.ht.st/\\1',$page).'');
            		} 	/* if $page has a value, include it */
    			else {
    	         		include('startrek/trekaccueil.php');
    			}
    		?>
    	</article>
    </section>
    J'espère avoir été assez explicite pour qu'une âme charitable puisse m'aider.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 715
    Par défaut
    petite remarque : votre code a un soucis de sécurité, si on appelle la page en faisant "site.php?page=../../repertoire-perso/codes_acces_emails.txt", cela permet d'afficher le contenu de tous les fichiers présent sur le disque du serveur.
    si vous voulez qu'on vous aide à corriger cela, vous pouvez créer une nouvelle discussion.

    au sujet du votre souci de pseudo frame, vous avec un conflit avec l'argument page que vous utilisez à 2 endroits.
    vous avez déjà l'argument "page" pour gérer le contenu de la zone de droite.
    donc ensuite pour la rubrique avec le menu, vous devez utilisez un autre argument pour définir ce qui s'affiche dans la zone "droite-bas"
    par exemple :
    site.php?page=startrek&contenu_startrek=histoire
    site.php?page=startrek&contenu_startrek=vaisseaux

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Par défaut
    petite remarque : votre code a un soucis de sécurité
    J'en suis bien conscient, mais je développe en local. Mais, le moment venu, je serai content d'avoir de l'aide.

    Je me doute un peu du conflit. J'ai essayé toutes les solutions que j'ai pu trouver pour utiliser deux variables, rien ne marche. Soit l'une ou l'autre page charge en boucle et me remplit l'arbre du DOM de noeuds redondants à l'infini, sois la page n'est pas trouvée.

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 715
    Par défaut
    montrez nous le code que vous avez essayé avec un autre nom d'argument.
    et j'ai une question au sujet de votre code, quel est le but de l'appel à "preg_replace" ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Par défaut
    Je viens de réfléchir, la preuve que quelquefois ça aide !

    En fait, je m'entêtais à vouloir passer les variables $page ET $category. En fait, il fallait supprimer $page pour régler le problème.

    et j'ai une question au sujet de votre code, quel est le but de l'appel à "preg_replace" ?
    C'est pour convertir le chemin relatif en chemin absolu. Après j'ai trouvé ça sur le net,mais il y a peut-être plus propre.
    En fait je développe en local et je me suis aperçu que chrome n'ouvre pas les liens relatifs en local, du coup, plutôt que d'utiliser une adresse absolue, qui forcément, ne sera plus la même quand le site sera chez un hébergeur, j'ao préféré chercher la facilité, plutôt que de me retrouver à devoir changer tous mes liens une fois le site héberger.

    Maintenant, si vous avez une meilleure solution, je suis preneur.

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 715
    Par défaut
    mais là dans votre code, vous utilisez preg_replace sur le nom de la page et pas sur le contenu, êtes vous sur d'avoir le résultat attendu ?

    de plus vous parlez de chrome et l'utilisation en local mais il s'agit du protocole HTTP donc je ne pense pas qu'un navigateur peut décider ce qui doit fonctionner ou pas. et les liens avec un serveur en local fonctionnent très bien avec Firefox donc peut-être qu'il y a un soucis dans l'organisation du code ? (et hop encore une autre discussion à lancer )

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Par défaut
    J'utilise preg_replace sur le nom de la page pour convertir son url relative en url absolue.
    J'obtiens bien le résultat attendu et du coup, plus de problèmes avec chrome.

    Par contre, votre réflexion m"a mis la puce à l'oreille. Comme j'ai effectué pas mal de modifications au fil de mes recherches sur le net, j'ai eu l'idée de refaire l'essai en supprimant preg_replace, et, effectivement, tout fonctionne parfaitement maintenant. Je place donc le post en résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] pseudo frame
    Par djinko dans le forum Langage
    Réponses: 11
    Dernier message: 02/03/2006, 11h49
  2. pseudo frames
    Par ph_anrys dans le forum Langage
    Réponses: 7
    Dernier message: 12/01/2006, 17h27
  3. Pseudo-frame et index
    Par MYster dans le forum Langage
    Réponses: 3
    Dernier message: 09/11/2005, 18h48
  4. Pseudo frames
    Par virtuadrack dans le forum Langage
    Réponses: 9
    Dernier message: 23/10/2005, 14h23
  5. [Système] question bete sur les pseudo frames
    Par balou dans le forum Langage
    Réponses: 5
    Dernier message: 12/10/2005, 13h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo