Problème de boucle

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de boucle

par zeus » 26 mai 2008, 17:58

il faut savoir que quand tu fais un include, il le fait par rapport au fichier qui a été appelé par le navigateur, pas par rapport au fichier qui contient le include ;)

par nasbe » 26 mai 2008, 17:57

En fait, quand je place le fichier index.php ci-dessous au même niveau dans le répertoire que les autres fichiers php, tout ce passe correctement à l'affichage. Par contre les liens sur les autres pages ne fonctionnent pas. Hors lorsque je met le fichier index.php ailleurs, j'ai le message d'erreur qui apparait sur ma page menu mais par contre je peux aller voir sur toute les autres pages.

Code : Tout sélectionner

<?php include 'header.inc.php'; echo "<div class='wrap'>"; include 'menu.inc.php'; echo "<div class='main'>"; if ( isset($_GET['page']) ) { include $_GET['page'].'.inc.php'; } else { include 'home.inc.php'; } echo "</div>"; include 'sidebar.inc.php'; include 'footer.inc.php'; echo "</div>"; ?>
Et voici le contenu de mon tableau

Code : Tout sélectionner

$menu = array( 'Accueil', 'main', 'Agenda', 'agenda', 'Galerie Photos', 'photos', 'Réservations', 'reserv', 'Forum', 'forum', 'Artistes', 'artist', 'Contact', 'contact', );

par zeus » 26 mai 2008, 17:51

pas de soucis, mais il faut que tu essayes de comprendre ce qu'il se passe pour y arriver ;)

Si c'est la variable $menu qui pose problème, fait un var_dump() pour savoir ce qu'elle contient. Si elle ne contient pas ce que tu veux essaye de remonter la piste pour savoir si elle est instanciée correctement.

par nasbe » 26 mai 2008, 17:33

Ok, mais lorsque je l'ai fait depuis une autre machine, il m'affichait tout correctement sans erreur et je n'ai pas touché au code.

ce que j'aimerai faire c'est d'afficher un menu en haut avec toute mes rubriques. Pourrais-tu me donner une piste je navigue.

par zeus » 26 mai 2008, 17:18

Est-ce que tu as essayé de comprendre le message d'erreur ?

En français, ça dit que la variable que tu passes à la fonction current() à la ligne 5 de ton code n'est pas un tableau ou un objet.
Cela signifie que cette fonction attend un objet ou un tableau comme paramètre et que ce que tu lui passe n'en est pas un ;)

Problème de boucle

par nasbe » 26 mai 2008, 17:00

bonjour,

J'ai réalisé le code ci-dessous qui fonctionnait très bien depuis un autre ordinateur mais depuis le miens, j'obtiens le message d'erreur suivant, je ne comprends pas si quelqu'un pouvait m'éclaircir.

Warning: current(): Passed variable is not an array or object in c:\users\nasbe\desktop\escobar\menu.inc.php on line 5


<div class='menu'>
	<li class='menu'><a href='$baseurl/index.php'><img src='img/escobar_logo.png' alt='Escobar' border='0'/></a></li>

<?php
	while ( current($menu) ) {
		$texte = current($menu);
		next($menu);
		$lien = current($menu);
		next($menu);
		#echo "$texte $lien $baseurl\n";
		echo "<li class='menu'><a href='$baseurl/index.php?page=$lien'>$texte</a></li>";
	}
?>

</div>