[PHP] Problème condition: Parse error.
Résolu/Fermé
aymeric057
Messages postés
12
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
13 février 2012
-
25 janv. 2012 à 14:13
aymeric057 Messages postés 12 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 13 février 2012 - 27 janv. 2012 à 20:35
aymeric057 Messages postés 12 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 13 février 2012 - 27 janv. 2012 à 20:35
A voir également:
- [PHP] Problème condition: Parse error.
- Excel cellule couleur si condition texte - Guide
- Easy php - Télécharger - Divers Web & Internet
- Condition et excel - Guide
- Recherchev avec condition si ✓ - Forum Excel
- Excel : formule si le fond d'une cellule est en couleur - Forum Bureautique
14 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
27 janv. 2012 à 08:51
27 janv. 2012 à 08:51
Désolé mais hier soir j'ai du partir précipitamment, le réponse que je t'ai donnée n'était pas celle prévue !
voici une solution en 4 lignes:
voici une solution en 4 lignes:
<li <?php if($pageid == "index") echo ' id="active"'; ?>><a href="index.php">Home</a></li> <li <?php if($pageid == "about") echo ' id="active"'; ?>><a href="about.php">About</a></li> <li <?php if($pageid == "products") echo ' id="active"'; ?>><a href="products.php">Products</a></li> <li <?php if($pageid == "news") echo ' id="active"'; ?>><a href="news.php">News</a></li>
Bonjour
Ton code a la structure :
Or, un if ne peut avoir qu'un seul else !
Par contre, il peut avoir plusieurs elseif (et un else pour le dernier cas)
Si tu as l'impression que c'est ce que tu as fait, regarde bien : elseif, ce n'est pas la même chose que else { if
Ton code a la structure :
if (condition) { ... } else { ... } else { ... }
Or, un if ne peut avoir qu'un seul else !
Par contre, il peut avoir plusieurs elseif (et un else pour le dernier cas)
Si tu as l'impression que c'est ce que tu as fait, regarde bien : elseif, ce n'est pas la même chose que else { if
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
25 janv. 2012 à 14:41
25 janv. 2012 à 14:41
il te manquait la { a chaque ligne if(....)
une solution plus "simplifiée":
une solution plus "simplifiée":
<?php if ($pageid == "index" || $pageid == "about" || $pageid == "products" || $pageid == "services" || $pageid =="news" || $pageid == "contact"){ if($pageid == "index") { echo'<li id="active"><a href="index.php">Home</a></li>'; } elseif($pageid == "about"){ echo'<li id="active"><a href="about.php">About</a></li>'; } elseif($pageid == "products"){ echo'<li id="active"><a href="products.php">Products</a></li>'; } elseif($pageid == "services"){ echo'<li id="active"><a href="services.php">Services</a></li>'; } elseif($pageid == "news"){ echo'<li id="active"><a href="news.php">News</a></li>'; } elseif($pageid == "contact"){ echo'<li id="active"><a href="contact.php">Contact</a></li>'; } } ?>
aymeric057
Messages postés
12
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
13 février 2012
25 janv. 2012 à 15:05
25 janv. 2012 à 15:05
Merci à vous deux, je m'étais inspiré de ce code (but informatif):
pour réaliser le mien.
Autant poser le problème qui est lié à celui-ci ici pour éviter de créer un autre topic:
Je ne sais pas trop pourquoi, je vous explique la hiérarchie du site pour mieux comprendre:
Tous les fichiers sont au même endroit. Le code demandé plus haut est dans header.php qui est appelé dans toutes les pages par un include. Dans toutes les pages la variable est définie comme par exemple pour l'index:
Merci,
Cordialement,
<?PHP if($pageid == "accueil" || $pageid == "option" || $pageid == "debug" || $pageid == "home" || $pageid == "online") { ?> <?PHP if($pageid == "accueil") { ?> <li class=" selected"> Accueil</li> <?PHP } else { ?> <li class=""><a href="<?PHP echo $url; ?>/me.php"> Accueil</a></li> <?PHP } ?> <?PHP if($pageid == "option") { ?> <li class="selected"><a href="<?PHP echo $url; ?>/profile.php"> Mes préferences</a></li> <?PHP } else { ?> <li class=""><a href="<?PHP echo $url; ?>/profile.php"> Mes préferences</a></li> <?PHP } ?> <?PHP if($pageid == "debug") { ?> <li class="selected"><a href="<?PHP echo $url; ?>/debuguser.php"> Debuguer mon compte</a></li> <?PHP } else { ?> <li class=""><a href="<?PHP echo $url; ?>/debuguser.php"> Debuguer mon compte</a></li> <?PHP } ?> <?PHP if($pageid == "home") { ?> <li class="selected"><a href="<?PHP echo $url; ?>/home.php?=<?PHP echo $user['username']; ?>"> Ta page perso</a></li> <?PHP } else { ?> <li class=""><a href="<?PHP echo $url; ?>/home.php?=<?PHP echo $user['username']; ?>"> Ta page perso</a></li> <?PHP } ?> <?PHP if($pageid == "top.php") { ?> <li class="selected"><a href="<?PHP echo $url; ?>/online.php">Les joueurs en ligne</a></li> <?PHP } else { ?> <li class=""><a href="<?PHP echo $url; ?>/online.php">Les joueurs en ligne</a></li> <?PHP } ?> <?PHP } ?>
pour réaliser le mien.
Autant poser le problème qui est lié à celui-ci ici pour éviter de créer un autre topic:
Voici l'erreur: NOTICE: UNDEFINED VARIABLE: PAGEID IN C:\WAMP\WWW\RS14\HEADER.PHP ON LINE 32
Je ne sais pas trop pourquoi, je vous explique la hiérarchie du site pour mieux comprendre:
Tous les fichiers sont au même endroit. Le code demandé plus haut est dans header.php qui est appelé dans toutes les pages par un include. Dans toutes les pages la variable est définie comme par exemple pour l'index:
<?php $pageid = "index"; ?>
Merci,
Cordialement,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Si le message d'erreur est bien celui que tu as donné, la variable $PAGEID n'est effectivement pas définie, c'est $pageid qui l'est. PHP tient compte de la casse dans les noms de variables.
Sinon, c'est peut-être que le code que tu montres est dans une fonction, et que tu n'as pas défini $pageid comme global dans cette fonction
Sinon, c'est peut-être que le code que tu montres est dans une fonction, et que tu n'as pas défini $pageid comme global dans cette fonction
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
25 janv. 2012 à 20:57
25 janv. 2012 à 20:57
donc tu ne veux pas utiliser le code que je t'ai proposé ?
aymeric057
Messages postés
12
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
13 février 2012
25 janv. 2012 à 21:18
25 janv. 2012 à 21:18
Le père, je viens de vérifier, tout est en minuscule, je ne vois pas pourquoi il me l'a mis en majuscule dans le message d'erreur.
Alain_42, si justement c'est ton code que j'ai utilisé.
Donc pour plus de clarté, voici le code du menu:
Et le code PHP de par exemple index.php:
Je suis persuadé que c'est une erreur toute bête, mais je ne vois pas laquelle...
Alain_42, si justement c'est ton code que j'ai utilisé.
Donc pour plus de clarté, voici le code du menu:
<?php if ($pageid == "index" || $pageid == "about" || $pageid == "products" || $pageid == "services" || $pageid =="news" || $pageid == "contact"){ if($pageid == "index") { echo'<li id="active"><a href="index.php">Home</a></li>'; } elseif($pageid == "about"){ echo'<li id="active"><a href="about.php">About</a></li>'; } elseif($pageid == "products"){ echo'<li id="active"><a href="products.php">Products</a></li>'; } elseif($pageid == "services"){ echo'<li id="active"><a href="services.php">Services</a></li>'; } elseif($pageid == "news"){ echo'<li id="active"><a href="news.php">News</a></li>'; } elseif($pageid == "contact"){ echo'<li id="active"><a href="contact.php">Contact</a></li>'; } } ?>
Et le code PHP de par exemple index.php:
<?php include('./header.php'); ?> <?php $pageid = "index"; ?>
Je suis persuadé que c'est une erreur toute bête, mais je ne vois pas laquelle...
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
Modifié par Alain_42 le 25/01/2012 à 21:55
Modifié par Alain_42 le 25/01/2012 à 21:55
he oui c'est une erreur toute bête
php s'exécute dans ton cas ligne après ligne donc
si tu définit la variable $pageid après ton include c'est pas bon, le code de l'include ne le trouve pas !
il faut:
Concernant le message d'erreur c'est tout le message qui est en majuscule donc la variable aussi
php s'exécute dans ton cas ligne après ligne donc
si tu définit la variable $pageid après ton include c'est pas bon, le code de l'include ne le trouve pas !
il faut:
<?php $pageid = "index"; ?> <?php include('./header.php'); ?>
Concernant le message d'erreur c'est tout le message qui est en majuscule donc la variable aussi
aymeric057
Messages postés
12
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
13 février 2012
26 janv. 2012 à 18:23
26 janv. 2012 à 18:23
Merci infiniment de l'attention que tu prêtes à mon problème, j'ai fait ce que tu m'as dit de faire, ça fonctionne au détail près (eh oui il y a le détail qui tue), ce n'est pas juste l'id du "li" qui change, mais le "li" qui apparaît en fonction de la page.
Pour mieux m'exprimer, je vais montrer ce que je veux dans du concret:
Onglet 1 | onglet 2 | (vert) Onglet 3 (vert) | Onglet 4
quand on est sur la page 3, et:
Onglet 1 | (vert) Onglet 2 (vert) | Onglet 3 | Onglet 4
quand on est sur la page 2.
Hors, moi j'ai:
(vert) Onglet 2 (vert)
Quand on est sur la page 2, et:
(vert) Onglet 3 (vert)
Quand on est sur la page 3, c'est l'onglet apparent qui change en fonction de la page, et pas la couleur de l'onglet (ce que je voudrai), car c'est un peu embêtant étant donné que c'est un menu ^^
Donc j'ai essayé (pour l'instant):
(j'ai mi tout le code, mais uniquement ce qui est en gras nous intéresse) Et ça m'affiche l'erreur "Parse error: syntax error, unexpected T_ELSEIF in C:\wamp\www\rs14\header.php"
J'ai fait ça pour que peu importe la condition etc, <li><a href="index.php">Home</a></li> et que seulement il se transforme en <li id="active"><a href="index.php">Home</a></li> si $pageid = index.
Encore merci,
Cordialement,
Pour mieux m'exprimer, je vais montrer ce que je veux dans du concret:
Onglet 1 | onglet 2 | (vert) Onglet 3 (vert) | Onglet 4
quand on est sur la page 3, et:
Onglet 1 | (vert) Onglet 2 (vert) | Onglet 3 | Onglet 4
quand on est sur la page 2.
Hors, moi j'ai:
(vert) Onglet 2 (vert)
Quand on est sur la page 2, et:
(vert) Onglet 3 (vert)
Quand on est sur la page 3, c'est l'onglet apparent qui change en fonction de la page, et pas la couleur de l'onglet (ce que je voudrai), car c'est un peu embêtant étant donné que c'est un menu ^^
Donc j'ai essayé (pour l'instant):
<?php
if ($pageid == "index" || $pageid == "about" || $pageid == "products" || $pageid == "services" || $pageid =="news" || $pageid == "contact"){
?>
<li <?php if($pageid == "index") { echo'id="active"'; } ?>> <a href="index.php">Home</a></li>
<?php
elseif($pageid == "about"){ ?>
<li <?php echo'id="active"'; ?>><a href="about.php">About</a></li>
<?php
} elseif($pageid == "products"){ ?>
<li <?php echo'id="active"'; ?>> <a href="products.php">Products</a></li>
<?php
} elseif($pageid == "services"){
echo'<li id="active"><a href="services.php">Services</a></li>';
} elseif($pageid == "news"){
echo'<li id="active"><a href="news.php">News</a></li>';
} elseif($pageid == "contact"){
echo'<li id="active"><a href="contact.php">Contact</a></li>';
}
}
?>
(j'ai mi tout le code, mais uniquement ce qui est en gras nous intéresse) Et ça m'affiche l'erreur "Parse error: syntax error, unexpected T_ELSEIF in C:\wamp\www\rs14\header.php"
J'ai fait ça pour que peu importe la condition etc, <li><a href="index.php">Home</a></li> et que seulement il se transforme en <li id="active"><a href="index.php">Home</a></li> si $pageid = index.
Encore merci,
Cordialement,
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 janv. 2012 à 18:56
26 janv. 2012 à 18:56
et si tu mets l'id=active dans le a au lieu du li ,
<li> <a <?php if($pageid == "index") { echo ' id="active"'; } ?> href="index.php">Home</a></li>
Nono_igo
Messages postés
63
Date d'inscription
mardi 3 janvier 2012
Statut
Membre
Dernière intervention
1 octobre 2016
3
26 janv. 2012 à 19:10
26 janv. 2012 à 19:10
Je débarque un peu là mais je crois qu'il te faut simplement écrire les liens pour tes onglets qui manquent dans chacun de tes elseif. (Si j'ai bien compris ce que tu voulais obtenir)
elseif($pageid == "ongletX"){ ?> <a href="onglet(X-1).php">onglet(X-1)</a> <li <?php echo'id="active"'; ?>> <a href="ongletX.php">ongletX</a></li> <a href="onglet(X+1).php">onglet(X+1)</a> //etc
aymeric057
Messages postés
12
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
13 février 2012
26 janv. 2012 à 19:37
26 janv. 2012 à 19:37
Donc j'ai testé ton code alain, ce qui donne:
Et l'erreur:
Désolé de vous faire perdre votre temps mais je suis perdu là :s
<?php if ($pageid == "index" || $pageid == "about" || $pageid == "products" || $pageid == "services" || $pageid =="news" || $pageid == "contact"){ ?> <li> <a <?php if($pageid == "index") { echo ' id="active"'; } ?> href="index.php">Home</a></li> <li> <a <?php elseif($pageid == "about"){ echo ' id="active"'; } ?> href="about.php">About</a></li> <li> <a <?php elseif($pageid == "products"){ echo ' id="active"'; } ?> href="products.php">Products</a></li> <li> <a <?php elseif($pageid == "services"){ echo ' id="active"'; } ?> href="services.php">Services</a></li> <li> <a <?php elseif($pageid == "about"){ echo ' id="news"'; } ?> href="news.php">News</a></li> <li> <a <?php elseif($pageid == "about"){ echo ' id="contact"'; } ?> href="contact.php">Contact</a></li> <?php } ?>
Et l'erreur:
Parse error: syntax error, unexpected T_ELSEIF in C:\wamp\www\rs14\header.php on line 35
Désolé de vous faire perdre votre temps mais je suis perdu là :s
Nono_igo
Messages postés
63
Date d'inscription
mardi 3 janvier 2012
Statut
Membre
Dernière intervention
1 octobre 2016
3
26 janv. 2012 à 20:00
26 janv. 2012 à 20:00
Tu as 2 fois la même condition dans tes elseif. La ligne 35 ne serait pas une de celles-là ?
<li> <a <?php elseif($pageid == "about"){ echo ' id="news"'; } ?> href="news.php">News</a></li> <li> <a <?php elseif($pageid == "about"){ echo ' id="contact"'; } ?> href="contact.php">Contact</a></li> <?php }
aymeric057
Messages postés
12
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
13 février 2012
26 janv. 2012 à 19:54
26 janv. 2012 à 19:54
Bon ben j'ai trouvé une solution: Très répétitive et encombrante, mais bon je n'ai pas trouvé d'autre solution qui puisse marcher.
Si quelqu'un cherche à faire quelque chose de similaire, voici le code:
Résolu. Cordialement,
Si quelqu'un cherche à faire quelque chose de similaire, voici le code:
<?php if ($pageid == "index"){ ?> <li id="active"><a href="index.php">Home</a></li> <?php } else { ?> <li><a href="index.php">Home</a></li> <?php } ?> <?php if ($pageid == "about"){ ?> <li id="active"><a href="about.php">About</a></li> <?php } else { ?> <li><a href="about.php">About</a></li> <?php } ?> <?php if ($pageid == "products"){ ?> <li id="active"><a href="products.php">Products</a></li> <?php } else { ?> <li><a href="products.php">Products</a></li> <?php } ?> <?php if ($pageid == "news"){ ?> <li id="active"><a href="news.php">News</a></li> <?php } else { ?> <li><a href="news.php">News</a></li> <?php } ?>
Résolu. Cordialement,
aymeric057
Messages postés
12
Date d'inscription
vendredi 19 février 2010
Statut
Membre
Dernière intervention
13 février 2012
27 janv. 2012 à 20:35
27 janv. 2012 à 20:35
Maintenant que j'ai ton code sous les yeux alain, ça me parait tellement évident!
Merci infiniment pour ton investissement dans mon problème, c'est vraiment gentil de ta part!
Cordialement,
Merci infiniment pour ton investissement dans mon problème, c'est vraiment gentil de ta part!
Cordialement,