unexpected T_ELSE ?? pourquoi??
Forum Programmation : unexpected T_ELSE ?? pourquoi??
Bonjour,
voila je travaille sur un site et j'ai quelque probleme avec le codage php , je tombe tuojours sur la meme erreur
Code :
|
Pourtant il me semble que tout fonctionne bien :
Code :
|
Merci de m'aider :-D
tu ne peux pas mettre de condition dans ton else.
La structure est:
if (condition) {
...
} else {
...
}
Daccord merci ,ya pas u nautre moyen de faire une deuxieme condition alors ?
[edit]
Sa vien pas de sa :
Code :
|
Et voici le code
Code :
|
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. ;-)
Daccord merci :-D
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)
<? }?>
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 :
Code :
|
ou
Code :
|
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 :
Code :
|
<?
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.
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.
Que fait-on si le else ne contient pas de if, mais doit exister ?
Donne un exemple car la tu m'embrouille, en rapport avec le sujet bien evidament
if($nom=="Michel" ){
$_pc="webmaster"
}
else{
$_pc="amateur"
}
et c'est quoi le probleme dans cette syntaxe ?
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'" )
dis moi le probleme à ton code.
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.
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 .
Ben oui, çà je le sais. Mais il y en d'autre qui prétendent le contraire.
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"
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.
Je me disais aussi...fais gaff j'ai failli frolé l'infractusse du cerveau
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
Il y a 270 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

crazycat@idn