Page 1 sur 1

Pseudo frame

Posté : 18 févr. 2013, 14:39
par lezarts
Bonjour à tous,

Voici le code que j'utilise pour les pseudo frame
<?php
// On définit le tableau contenant les pages autorisées
	$pageOK = array('plan' => ($_SERVER['DOCUMENT_ROOT'].'lezarts/webroot/xplan/plan.php'),
		          'quoide9' => ($_SERVER['DOCUMENT_ROOT'].'lezarts/webroot/quoideneuf.php'),
		        );
// On teste que le parametre 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 quand elle n'existe pas dans le tableau
	}
?>
la structure de mon site est :

le fichier index.php ou sont inclus 3 fichiers
1 header.php
2 body.php
3 footer.php

Ma question est..?

Comment développer se code pour qu'à chaque page appeler dans le body, le titre dans la partie header change..? Ce qui n'est pas le cas actuellement...

Dans l'attente je vous remercie d'avance pour vos réponse

Re: Pseudo frame

Posté : 19 févr. 2013, 12:37
par lezarts
Bonjour à tous,

Voici le code que j'utilise pour les pseudo frame
<?php
// On définit le tableau contenant les pages autorisées
	$pageOK = array('plan' => ($_SERVER['DOCUMENT_ROOT'].'lezarts/webroot/xplan/plan.php'),
		          'quoide9' => ($_SERVER['DOCUMENT_ROOT'].'lezarts/webroot/quoideneuf.php'),
		        );
// On teste que le parametre 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 quand elle n'existe pas dans le tableau
	}
?>
la structure de mon site est :

le fichier index.php ou sont inclus 3 fichiers
1 header.php
2 body.php
3 footer.php

Ma question est..?

Comment développer se code pour qu'à chaque page appeler dans le body, le titre dans la partie header change..? Ce qui n'est pas le cas actuellement...

J'ai bien essayé divers solution mais sans succés

Dans l'attente je vous remercie d'avance pour vos réponse

Re: Pseudo frame

Posté : 23 févr. 2013, 01:35
par lezarts
yop,

Je vous refais un coucou histoire de remonter en première ligne...

Et aussi dans l'espoir de recevoir une aide substantiel, pour le développement de la lezarts _mania...

Dans l'attente je continues mes recherche et vous remercies de votre compréhension à tous @+

Re: Pseudo frame

Posté : 03 mars 2013, 13:04
par lezarts
Yop,

toujours pas trouver la solution à mon suchi ci-dessus

bref..?

Dans l'attente je continues mes recherche et vous remercies d'avance de votre futur aide @+

Re: Pseudo frame

Posté : 03 mars 2013, 15:53
par moogli
Réalise la gestion de la page a inclure avant le header.
Les fichiers inclus mettent leurs résultat dans des variables que tu affiche dans l'index.

Tu peux aussi t'orienter vers un modèle MCV.

@+

Re: Pseudo frame

Posté : 03 mars 2013, 17:01
par lezarts
Yop,

Merci moogli de ta réponse...

Voila ce que j'ai essayer de développer
<!DOCTYPE HTML>
<html lang="fr">
<head>
<meta charset="utf-8" />
<title><?php echo $title ?></title>
</head>
<body>
<div id="content">		
<?php
	$pageOK = array('accueil' => array('accueil','salutami.php'),
		 	'plan' => array('le plan','xplan/plan.php'),
                        'quoide9' => array('quoi de neuf','quoideneuf.php')
                       );
					
         if ((isset($_GET['page'])) && (isset($pageOK[$_GET['page']]))) 
		 {    
		   list($title, $file) = $pageOK[$_GET['page']][0];
			
		   include($pageOK[$_GET['page']][1]);
         	 }
	         else 
		    {
                       include('salutami.php');
         	    }	 					
 ?>
</div>

</body>
</html>

Bref..?

Je reçois un message d'erreur entre la balise <title><?php echo $title ?></title>

message d'erreur

( ! ) Notice: Undefined variable: title in D:\wamp\www\lezarts\webroot\index2.php on line 5
Call Stack # Time Memory Function Location 1 0.0028 326432 {main}( ) title='D:\wamp\www\lezarts\webroot\index2.php' ..\index2.php : 0

J'ai essayer divers solutions mais..?

Je n'ai pas trouvé comment corriger l'erreur

Merci d'avance de votre aide @+

Re: Pseudo frame

Posté : 03 mars 2013, 18:31
par moogli
ben l'inclusion c'est avant d'utiliser la variable hein :)


sait tu que tu peux utiliser un return à la fin d'un fichier, et utiliser ce retour a l'inclusion du fichier ?

par exemple
<?php
 if ((isset($_GET['page'])) && (isset($pageOK[$_GET['page']]))) 
                 {    
                   list($title, $file) = $pageOK[$_GET['page']][0];
                        
                   $milieu  = include($pageOK[$_GET['page']][1]);
                 }
                 else 
                    {
                       $titre = 'la page de début';
                       $milieu = include('salutami.php');
                    } 
?>
<html>
<head>
<title><?php echo $title; ?></title>
</head>
<body>
<?php echo $milieu; ?>
</body>
</html>
la page que tu inclue met tout l'affichage dans une variable que tu renvoie à la fin.
<?php
$contenu = 'le blabla que tu veux<br />sur autant de ligne que tu veux';
return $contenu;
?>

@+

Re: Pseudo frame

Posté : 07 mars 2013, 02:57
par lezarts
yop,

Suite à divers recherche sur internet au sujet des pseudo frame...

Et n'ayant pas trouvé mon bonheur, il me semble qu'il serait plus judicieux de développer tous ensemble un tutoriel au sujet des pseudo frame,

qui apporterait à tous un code simple de compréhension et par la même occasion sécurisé à tous les niveaux et permettant à chaque appelle de page,

que le title dans la partie head soit en fonction du titre désiré....

Merci de votre aide futur pour que d'autre puisse développer leur site en toutes sécurité.... :priere:

Re: Pseudo frame

Posté : 08 mars 2013, 20:52
par moogli
il n'y a pas vraiment de tuto la dessus, parce que 'qu'il existe des choses plus "adapté".

Un modèle mvc répond parfaitement a ce que tu demande.
un système template aussi, et c'est d'ailleurs vers un principe similaire que je t'ai orienté.

le principe est simple : la mécanique d'abord, l'affichage ensuite.

a partir de la :
<?php
if(!empty($_GET['page'])) {
// je passe le bazar de sécurisation pour éviter un include('mon fichier de conf ...'); ^^

}
?>
<html>
<head>
<title><?php echo $titre; ?> </title>
</head>
<body>
<?php echo $lemilieu; ?>
</body>
</html>
en considérant que le fichier inclus crée bien les variables $titre et $lemilieu, par exemple
<?php
// page acceuil
$titre ='si si c\'est la !!!';
$lemilieu = 'Bienvenue sur mon site à moi que j\'ai fait de mes miminimes a moi <br />
<br />
vous trouverez des trucs et des bidulles c\'est sur :)';
?>
le système ici est rudimentaire mais fonctionnel, tu peux très bien l'utiliser.

Certain utilise les fonctions de bufferisation de sortie (ob_*) pour récupérer ce qu'ils affichent (plutôt que de l'envoyer au navigateur) et l'affiche plus loin (comme dans mon exemple).

rien n'est figé, tu peux faire comme tu le souhaite le tous c'est de garde le principe de base ;)

MVC : Modèle Vue Controleur.

bien appliqué c'est pratique mais ça peu vite être le bordel ;)
le principe est simple :
- Le modèle colle aux données (c'est ce qui fait appel aux sgbd, fichier, contient les régles métier etc)
- La vue c'est l'affichage (j'affiche une table avec une bordure verte de 14px d'épaisseur, ou pas :) ) En aucun cas ne doit utiliser un sgbd ou un fichier (aucune ressource quoi.
- Le contrôleur c'est le coeur de la maison (j'm'égare ...). Il va recevoir une demande des vues, demander au modèle les données correspondantes et les retourner à la vue qui va les afficher.

dans le cas de pseudo frame, le contrôleur c'est le fichier index, et souvent le modèle et la vue sont mélangés.

Ceci s'applique généralement sur un développement orienté objet, du coup le contrôleur va fournir tous ce dont elle a besoin ($titre contenu etc) ce qui va te permettre d'afficher ce que tu veux ou tu veux dans la page.

regarde des tutos sur le MVC se sera surement plus clair ;)

@+