8797 sujets

Développement web côté serveur, CMS

Bonjour a tous, je suis plutot dans la section css en general mais la j'ai besoin d'expert !

Je suis en train de develloper un site internet et je ne comprend pas ce qui m'arrive !

Quand on est sur la page index, ma balise <div Affich> reste vide mais des que je commence a naviguer le cadre se rempli bien.
J'ai plusieurs sous menu qui eux meme possede chacun leur propre page par defaut "d'attente" avant que l'un des liens soit cliqué.

Hors, de mon menu principal, quand je clic sur accueil, le texte s'affiche bien et l'include fontionne.

Mon soucis est, comment fait apparaitre le meme texte que la page d'accueil avant que la navigation ai commencé ! en gros juste quand on arrive sur le site ...

J'ai bien essayé de mettre dans le div affich une page par defaut, certe ca fonctionne mais ca se supperpose avec toutes mes pages apres ...

Ci joint un lien du site en question : http://dev.ankart.fr

Et le code de la page index (tronqué aux parties php) :


<div id="sousmenu">
    <?php
if (!isset($_GET['page'])) $page= 'index'; else $page= $_GET['page'];
switch($page)
{
case 'sweb': include ('sousmweb.php');break;
case 'sprint': include ('sousmprint.php');break;
case 'spacks': include ('sousmpacks.php');break;}
?>

    <?php
if (!isset($_GET['page'])) $page= 'index'; else $page= $_GET['page'];
switch($page)
{
case 'wd': include ('sousmweb.php');break;
case 'aw': include ('sousmweb.php');break;
case 'dev': include ('sousmweb.php');break;
case 'ref': include ('sousmweb.php');break;}
?>

    <?php
if (!isset($_GET['page'])) $page= 'index'; else $page= $_GET['page'];
switch($page)
{
case 'pub': include ('sousmprint.php');break;
case 'corres': include ('sousmprint.php');break;
case 'edit': include ('sousmprint.php');break;}
?>
    
    <div id="affich">

 <?php      
if (!isset($_GET['page'])) $page= 'index'; else $page= $_GET['page'];
switch($page)
{
case 'acc': include ('waitaccueil.php');break;
case 'refer': include ('references.php');break;
case 'cont': include ('contact.php');break;
case 'plan': include ('sitemap.php');break;
case 'inf': include ('infosleg.php');break;}

?>

    </div>


et juste le code d'un des sous menu :

<link rel="stylesheet" type="text/css" href="creafactory.css"  />

<ul id="smenu"><!-- Debut du Menu   -->
	<li><a href="index.php?page=wd" >WebDesign</a> <span class="espacebarre">&nbsp; | &nbsp;</span> </li>
  <li><a href="index.php?page=aw" >Accessibilit&eacute; Web</a> <span class="espacebarre">&nbsp; | &nbsp;</span> </li>
  <li><a href="index.php?page=dev" >D&eacute;veloppement</a> <span class="espacebarre">&nbsp; | &nbsp;</span> </li>
  <li><a href="index.php?page=ref" >R&eacute;f&eacute;rencement</a></li>
</ul> <!-- Fin du Menu   -->


<div id="affich"><?php
if (!isset($_GET['page'])) $page= 'index'; else $page= $_GET['page'];
switch($page)
{
case 'wd': include ('webdesign.php');break;
case 'aw': include ('accessibilite.php');break;
case 'dev': include ('developpement.php');break;
case 'ref': include ('referencement.php');break;

default: include 'waitweb.php'; break;}

?>
</div>


Je vous remercie d'avance pour le temps que vous accorderez a mon petit probleme.
Salut,

Alors je pense que tu devrais essayer cela


<div id="affich">
 <?php      
if (!isset($_GET['page'])) $page= 'acc'; else $page= $_GET['page'];
switch($page)
{
case 'acc': include ('waitaccueil.php');break;
case 'refer': include ('references.php');break;
case 'cont': include ('contact.php');break;
case 'plan': include ('sitemap.php');break;
case 'inf': include ('infosleg.php');break;
default : include ('waitaccueil.php');break;}
?>
    </div>


Tu as juste a remplacer en faite dans ta condition qui verifie que ton $_GET ['page'] existe, pour remplacer accueil par acc afin qu'il entre bien dans ta condition et tu peux rajouter un default au cas ou la page n'existe pas de ne pas arriver sur une page blanche.
j'essaye de suite j'ai pas dormi de la nuit je suis plus a ca pret Smiley biggol

Je te tiens au courant en tout cas deja merci Smiley smile
Alors je viens d'essayer.

Quand je le met tel quel, j'ai bien le texte d'accueil a la place du cadre vide mais des que je navigue mes autre texte se superpose par dessus et il ne s'en va pas.
Quand j'enleve juste la ligne defaut, retour case depart, il ne s'affiche pas quand j'arrive sur le site et meme mieux j'ai une erreur qui m'indique la ligne 102 qui n'est que ma pauvre balise </HTML>

je vais reposer un peu les yeux je viens de valider toutes mes pages et j'en peux plus xD
Bizarre cela je me demande pourquoi il superpose tes textes ... tu es sur de ne pas avoir un autre include qui affiche aussi la page ? Pourquoi ne fait tu pas un case comprenant tout ? au lien de plusieurs car je pense que le problème avec le default et le fait que tu as plusieurs switch donc c'est normal que tu as une superposition. essai une truc dans ce style.

Car si j'ai bien compris tu as des includes un peu partout dans toute tes pages... car tu as le sous menu/et ta page index qui effectue des includes il faudrai que tu centralises le tout. et utiliser des variables en plus.
par exemple :


<?php
if=!isset($_GET['page'])) $page= 'acc'; else $page= $_GET['page'];
switch($page){
	case 'sweb': $include='sousmweb.php';break;
	case 'sprint': $include='sousmprint.php';break;
	case 'spacks': $include='sousmpacks.php';break;
	case 'wd': $include='sousmweb.php';break;
	case 'aw': $include='sousmweb.php';break;
	case 'dev': $include='sousmweb.php';break;
	case 'ref': $include='sousmweb.php';break;
	case 'pub': $include='sousmprint.php';break;
	case 'corres': $include='sousmprint.php';break;
	case 'edit': $include='sousmprint.php';break;
	case 'acc': $include='waitaccueil.php';break;
	case 'refer': $include='references.php';break;
	case 'cont': $include='contact.php';break;
	case 'plan': $include='sitemap.php';break;
	case 'inf': $include='infosleg.php';break;
	default: $include='waitaccueil.php';
}
include($include);
?>


En enlevant tes includes dans tes sous menus, enfin je suis pas trop reveiller mais normalement faut faire que un seul swtich, pour que tu n'ai pas de probleme de superposition d'affichage.
Bonjour,

Je penses, comme Halindel, que la superposition vient du fait que chaque switch est interprété séparément des autres.


Une proposition plus précise pour ton cas qui devrait marcher et est probablement plus simple à maintenir:
(le code n'est pas complet mais les grandes lignes sont là, à toi de jouer)
<?php
// pages valides et fichiers associés
$pagesOk = array(
  'plan' => 'sitemap',
  'cont' => 'contact'
);
$page = (isset($_GET['page']) && in_array($_GET['page'], $pagesOk)) ? $pagesOk[$_GET['page']] : 'index';

// sous-menus associés à une page
$ssMenuOk = array(
  'sweb' => 'sousmweb'
);
// $ssMenu = le fichier à inclure si le nom de la page existe ou false sinon
?>
<!-- blahblah html -->
<div id="sousmenu">
  <?php if($ssMenu !== false) include($ssMenu.'.php'); ?>

  <div id="affiche">
    <!-- inclure $page -->
  </div>
</div>

Modifié par Necromantik (26 Oct 2007 - 11:39)
Alors premiere marche pas enfin si marche biensur mais du coup je n'ai pas mes page par defaut de chaque sous menu ...logique.

2eme me suis pas trop penché dessus j'ai pas tout compris Smiley lol faut que je comprenne deja comment marche le code. J'ai du mal a voir ou positionner dans ma page HTML chaque partie de code.

Je vous tiens au courant Smiley smile