Se connecter avec
S'enregistrer | Connectez-vous

unexpected T_ELSE ?? pourquoi??

Dernière réponse : dans Programmation

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

Lassé par la pub ? Créez un compte

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. <? }?>
Expert Programmation

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...

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)
<? }?>
Expert Programmation

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. ?>

<?
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.
Expert Programmation

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.

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'")

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.
Expert Programmation

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.

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.

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 .
Expert Programmation

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"
Lassé par la pub ? Créez un compte
Tom's guide dans le monde