Votre question

unexpected T_ELSE ?? pourquoi??

Tags :
  • Cat
  • Programmation
Dernière réponse : dans Programmation
5 Août 2006 15:03:23

Bonjour,
voila je travaille sur un site et j'ai quelque probleme avec le codage php , je tombe tuojours sur la meme erreur
  1. Parse error: parse error, unexpected T_ELSE in /www/sites/1/ifrance.com/*/*/*******/site/article.php on line 167


Pourtant il me semble que tout fonctionne bien :
  1. <?
  2. if($_GET['cat'] == index);
  3. {
  4. ?><p>
  5. Veuillez choisir une catégorie :
  6. <br><br><a href="article.php?cat=stargate">Stargate</a>
  7. </p>
  8. <?
  9. }
  10. else($_GET['cat'] == stargate);
  11. {
  12. ?>
  13. (quelque article sur le sujet)
  14. <? }?>


Merci de m'aider :-D

Autres pages sur : unexpected else

a c 145 L Programmation
5 Août 2006 15:10:50

tu ne peux pas mettre de condition dans ton else.

La structure est:
if (condition) {
...
} else {
...
}
5 Août 2006 15:13:32

Daccord merci ,ya pas u nautre moyen de faire une deuxieme condition alors ?
[edit]
Sa vien pas de sa :
  1. Parse error: parse error, unexpected T_ELSE in /www/sites/1/ifrance.com/*/*/******/site/article.php on line 167


Et voici le code
  1. <?
  2. if($_GET['cat'] == index);
  3. {
  4. ?><p>
  5. Veuillez choisir une catégorie :
  6. <br><br><a href="article.php?cat=stargate">Stargate</a>
  7. </p>
  8. <?
  9. }
  10. else
  11. {
  12. ?>
  13. (divers articles)
  14. <? }?>
5 Août 2006 15:44:54

La structure après le mot else est en conflit avec la syntaxe.
Autrement dit: l'accolade { sur la ligne qui suit le else n'est pas à sa place. ;-)
5 Août 2006 15:58:35

Daccord merci :-D
5 Août 2006 16:38:40

tout faux mdy, (san te vexer;))

Il ya 2 chose qui ne vont pas.

La premier est le ; apres le if qui n'a rien à faire la, la seconde est simplement le fait qu'il manque des quotes au if pour la chaine de caractere a comparé.
En gros :

<?
if($_GET['cat'] == 'index') {
?><p>
Veuillez choisir une catégorie :
<br><br><a href="article.php?cat=stargate">Stargate</a>
</p>
<?
} else {
?>
(divers articles)
<?
}
?>
un petit tour sur phpdebutant.org


je ne compte plus le nombre de fois ou je donne cette url...
5 Août 2006 16:45:34

Regarde un peu le premier script:

<?
if($_GET['cat'] == index);
{
?><p>
Veuillez choisir une catégorie :
<br><br><a href="article.php?cat=stargate">Stargate</a>
</p>
<?
}
else($_GET['cat'] == stargate);
{
?>
(quelque article sur le sujet)
<? }?>
5 Août 2006 16:53:51

Oui et bah ?

<?
if($_GET['cat'] == index);
{
?><p>
Veuillez choisir une catégorie :
<br><br><a href="article.php?cat=stargate">Stargate</a>
</p>
<?
}
else($_GET['cat'] == stargate);
{
?>
(quelque article sur le sujet)
<? }?>


Peut devenir :

  1. <?
  2. if($_GET['cat'] == 'index') {
  3. ?><p>
  4. Veuillez choisir une catégorie :
  5. <br><br><a href="article.php?cat=stargate">Stargate</a>
  6. </p>
  7. <?
  8. } else($_GET['cat'] == 'stargate') {
  9. ?>
  10. (quelque article sur le sujet)
  11. <?
  12. }
  13. ?>


ou

  1. <?
  2. if($_GET['cat'] == 'index')
  3. {
  4. ?><p>
  5. Veuillez choisir une catégorie :
  6. <br><br><a href="article.php?cat=stargate">Stargate</a>
  7. </p>
  8. <?
  9. }
  10. else($_GET['cat'] == 'stargate')
  11. {
  12. ?>
  13. (quelque article sur le sujet)
  14. <?
  15. }
  16. ?>


Cela ne l'empechera pas de fonctionner, mais point de vue clareté, c'est à chier.

Edit: en plus, ce n'est meme pas correct encore, le else de cette facon n'existe pas !!

Correction :

  1. <?
  2. if($_GET['cat'] == 'index') {
  3. ?><p>
  4. Veuillez choisir une catégorie :
  5. <br><br><a href="article.php?cat=stargate">Stargate</a>
  6. </p>
  7. <?
  8. } elseif ($_GET['cat'] == 'stargate') {
  9. ?>
  10. (quelque article sur le sujet)
  11. <?
  12. } else {
  13. echo 'pas de menu selectionner';
  14. }
  15. ?>
5 Août 2006 17:03:55

<?
if($_GET['cat'] == 'index')
{
?><p>
Veuillez choisir une catégorie :
<br><br><a href="article.php?cat=stargate">Stargate</a>
</p>
<?
}
else($_GET['cat'] == 'stargate')
{
?>
(quelque article sur le sujet)
<?
}
?>

Dans cette solution, il n'exécutera que le $_get...(celui du "stargate") et l'accolade suivante est invalide parcqu'elle ne se rapporte à rien.
5 Août 2006 17:09:56

Non, tu parles de quoi ?

Ici y'a bien 4 accolade, { } { }

Meme si le else est faux d'une certaine partie, le if s'executera pas. Non pas a cause des accolade, mais sur la syntaxe du else() qui n'existe pas. Car c'est elseif.
5 Août 2006 17:17:45

Que fait-on si le else ne contient pas de if, mais doit exister ?
5 Août 2006 17:20:46

Donne un exemple car la tu m'embrouille, en rapport avec le sujet bien evidament :) 
5 Août 2006 17:23:00

if($nom=="Michel"){
$_pc="webmaster"
}
else{
$_pc="amateur"
}
5 Août 2006 17:28:28

et c'est quoi le probleme dans cette syntaxe ?
5 Août 2006 17:47:46

if($nom=="Michel"){
$_pc="webmaster"
}
else{
$_pc="amateur"
}

Il n'y a pas de problème dans ce script.

Je vais la compléter:
if($nom=="Michel"){
$_pc="webmaster"
$_adr="test"
}
else{
$_pc="amateur"
$_adr="index"
}
eval(" location='"+$_adr+".html'")
5 Août 2006 17:55:19

dis moi le probleme à ton code.
5 Août 2006 18:00:21

if($nom=="Michel"){
$_pc="webmaster"
$_adr="test"
}
else{
$_pc="amateur"
$_adr="index"
}
eval(" location='"+$_adr+".html'")

Il n'y a pas de problème à ce code, jusqu'au moment où tu ajoute:

if($nom=="Michel"){
$_pc="webmaster"
$_adr="test"
}
else alert("cet utilisateur n'est pas accepté,\nmais je l'assume comme un amateur")
{
$_pc="amateur"
$_adr="index"
}
eval(" location='"+$_adr+".html'")

là l'accolade après le else ne se rapporte à aucun if ou else, donc erreur de syntaxe.
5 Août 2006 18:10:59

Ce que tu racontes n'a aucun sens, ou je suis né débil durant la lecture de ton post.

Enfin bref, le probleme ne venait pas de la de toute maniere.

Pour le probleme de départ il fallait transformer le else en elseif, rajouté des quote dans la comparaison, et retiré les deux ; apres les paranthese.
5 Août 2006 18:40:56

Mais si çà a un sens

if($nom=="Michel"){
$_pc="webmaster"
$_adr="test"
}
else{
$_pc="amateur"
$_adr="index"
}
eval(" location='"+$_adr+".html'")

On va à un site suivant que c'est "Michel" ou un autre qui se connecte.
5 Août 2006 18:44:23

Citation :
else alert("cet utilisteur n'est pas accepté,\nmais je l'assume somme un amateur")


après le mot clé "else" tu dois ouvrir directement les { } , aucune instruction ne doit se trouver entre ca .

De plus .... à moins que ce soit un script javascript complété par du php , le alert n'existe pas en php .
5 Août 2006 18:47:28

Ben oui, çà je le sais. Mais il y en d'autre qui prétendent le contraire.
a c 145 L Programmation
5 Août 2006 19:46:48

mais c'est pourtant la base du traitement conditionnel, dans tous les langages:
if (condition) {
...
} elseif (re-condition) {
...
...
} else {
...
}

le "elseif" peut devenir "else if" dans certains langages, les accolades être remplacées par des "then ... end", mais la structure est toujours identique.

Par contre, la syntaxe sans accolades est valable lorsqu'il n'y a qu'une action a effectuer:
if ($vrai === true)
echo "vrai est vrai"
else
echo "vrai est faux"
5 Août 2006 21:13:14

Oui il y a du javascript dedans.

Ce qui est important, c'est la logique d'emploi.
Comme je connais plus le javascript que le PHP, alors mes reflexes sont en écriture javascript.
Milles excuses.
5 Août 2006 21:58:51

Je me disais aussi...fais gaff j'ai failli frolé l'infractusse du cerveau :p 
5 Août 2006 22:03:36

Le fait que j'ai mis une comme commande alert au lieu de echo n'enlève rien de la logique du if else

:-D

EDIT: On ne dit pas infractusse mais bien infarctus
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS