8792 sujets

Développement web côté serveur, CMS

J’ai un probleme en php.
Je n’arrive pas à inclure un fichier…ou plutôt le fichier est inclut mais par contre le reste du code html des autres pages n’est pas executé.

Voici la structure des pages de mon site. Pour info, j’utilise les pseudo-frames.

Page index.php

A l’interieur de cette page, j’inclus (avec la fonction include) les pages :
menu_gauche.inc.php
centre.inc.php
menu_droit.inc.php
header.inc.php
footer.inc.php
balises.inc.php

voici le code de la page index :
<?php
 
if (!isset ($_SESSION)) 
{
	@session_name("phpsessid");
	//empeche d'avoir un id de session visible dans l'url
	ini_set("url_rewriter.tags",""); 
	ini_set("session.use_trans_sid", false);
	session_start();
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml?#34;>
<?php include("includes/balises.inc.php"); ?>
<body>
<div id="conteneur">
<?php 
include("includes/header.inc.php"); 
include("includes/menu_gauche.inc.php"); 
include("includes/centre.inc.php");
include("includes/menu_droit.inc.php");
?>
<div id="z"></div>
</div>
<div id="footer">
<?php include("includes/footer.inc.php"); ?>
</div>
</body>
</html>




dans la page centre, j’inclus encore une fois les pages que je veux…
voici le code de la page centre.inc.php:
<?php 
//page centre.inc.php


	if (!isset($_GET["rub"])){$_GET["rub"] = "";}
  
	switch($_GET["rub"])
	{
	
  case "offres": include('listeoffres.php'); break; //liste des offres
  case "detailoffre": include('detailoffre.php'); break; //detail d'une offre
  
  
  //lien footer
  case "copyright": include('copyright.php'); break;
  case "contact": include('contact.php'); break;
  case "mentionslegales": include('mentions_legales.php'); break;
  case "confidentialite": include('charte.php'); break;
  case "plan": include('plan.php'); break;
  case "credit": include('credit.php'); break;
  
  default: include('home.php'); break; //page par defaut, accueil
	
	}

  
?>	


jusqu’ici, tout marche
mais quand j’inclus la page erreur.php dans la page detailoffre.php et que je fais exit() ensuite, la page erreur.php s’affiche mais le code des autres pages qui suivent (menu_droit.inc.php, footer.inc.php) ne s'affiche plus!!!!!
normalement la fonction exit arrete l’execution de la page courante et non pas sur toutes les pages !!

code de la page detailoffre.php:
	
<?php
include("erreur.php");
exit;
?>


si qq a une suggestion ca m’aiderait pas mal car je crois que j’ai fais le tour :'(

Smiley cligne
Modifié par 123cmoi (06 Jul 2006 - 09:44)
Salut,
Ta question n'est pas exactement ce qui est attendu dans ce salon, mais concerne uniquement PHP...
Cependant, le comportement que tu décris est normal :
123cmoi a écrit :
je fais exit() ensuite

Dans ce cas tu stoppes toute exécution de code.
Modifié par cktoon (06 Jul 2006 - 09:55)
merci pour ta reponse!

ma question concerne uniquement php effectivement...
ceci dit, exit termine le script de la page courante mais pas ceux des autres pages normalement?!!

Smiley cligne
Salut, quand tu fais un include, ce n'est qu'un vulgaire copier-coller. Donc tu as plusieurs fichiers séparés mais qui s'execute comme un seul script. Et redonc ton exit termine ton script aprés ton include...
ok c'est ma faute Smiley lol
j'etais persude que exit avait un autre comportement avec les include...
dsl pour ce post pas vraiment utile