Php include

Slt,

Je suis actuellement à la recherche d’une solution pour effectuer en php des modifications d’une page sans tout recharger la page, voici la solution actuelle :
ma page en simplifiée :

 <?php include("header.php");  ?> 
 <?php include("left.php");  ?>
<?php
		  if(empty($_GET['page'])) {
			include("intro.php");
		  } else {
			  if(file_exists($_GET['page'] . ".php")) {
				include($_GET['page'] . ".php");
			  } else {
				include("erreur.php");
			  }
			}
		  ?> 
 <?php include("right.php");  ?>
 <?php include("down.php");  ?>   

ensuite mes liens sont de cette forme , ce qui fait que seul le centre de ma page se recharge en remplacant par nomdelapage.php, cependant j’aimerais que pour certains liens, ca modifie aussi le header.php en un autre hearder2.php par exemple, c’est possible ?

Merci pour vos solutions

Je te deconseil l’inclusion direct de fichier. Passe plutot pour une variable que tu traites apres en fonction de ce qu’elle est sencé afficher :


if( isset( $_POST['page'] ) ) {
 switch( $_POST['page'] ) {
  case 'Accueil':
   include( 'HeaderStandard.php' );
   include( 'Accueil.php');
  break;
  .... etc
  default:
   include( 'pageParDefaut.php' );
  break;
 }
}

oui c’est possible :

[code]

<?php
if(isset($_GET[‘page’]) && file_exists($_GET[‘page’] . “.php”))
{
switch($_GET[‘page’])
{
case ‘page1’:
case ‘page2’: //…
include(“header.php”); break;
case ‘page6’:
case ‘page7’:
include(“header2.php”); break;
}
}
else
include(“header.php”); break;
?>

Je suis trop lent :wink:
mais comme pyro je te conseil de vérifier les pages que tu appelles.
Edité le 05/02/2008 à 22:10

Merci pour vos réponses et vos conseils sur la sécurité, par contre j’avoue que je débute un peu et je n’arrive pas à faire fonctionner votre solution.
voici mon code :

<?php
if(isset($_GET['page']) && file_exists($_GET['page'] . ".php"))
{
switch($_GET['page'])
{
case 'page1':
include("header1.php"); break;
case 'page2':
include("header2.php"); break;
}
}
else
include("header.php"); break;
?>

théoriquement sans aucun lien il devrait afficher le header, et si , le header1.php ,si , le header2.php, cependant il me dit ceci dès l’ouverture de la page venant d’aucun lien :s
“Fatal error: Cannot break/continue 1 level”

j’espère vraiment trouver une solution car cette fonction est très utile :slight_smile:

J’ai modifié votre code de cette façon pour pu avoir l’erreur :

<?php
if(isset($_GET['page']) && file_exists($_GET['page'] . ".php"))
{
switch($_GET['page'])
{
case 'page1':
include("header2.php");
}
}
else
include("header.php");
?>

mais avec un lien de ce type : ca ne fonctionne pas, rien ne se passe :frowning:

N’utilise pas de fichier que tu ajoutes directement dans ton code, passe toujours par des liens virtuel ( Un titre de page qui ne fait pas appelle à un fichier directement : pour des raisons de sécurité ). Tu as juste à c/c ma solution et tu utilies des liens du style.

http://www../index.php?page=nomDeTaPage

et tu fait :


case 'nomDeTaPage':
 include( 'Header.php' );
 include( 'maPage.php' );
break;

Edité le 06/02/2008 à 12:52