Page 1 sur 1
Problème condition
Posté : 25 févr. 2014, 09:42
par Dlemon
Bonjour, j'aimerais comprendre pourquoi mon code PHP ne marche pas, il m'indique "Parse error: parse error in - on line 37" (celle où est écrit " } else { ".
<?php
if ($_COOKIE['language'] == "francais") {
/* header */
$accueil = "Acceuil";
$présentation = "Présentation";
$photos = "Photos";
$contact = "Contact";
/* index */
$video_presentation = "Video de presentation";
/* footer */
$footer_creation = "Ce site est en cours de création";
} elseif ($_COOKIE['language'] == "allemand") {
/* header */
$accueil = "ZuHause";
$présentation = "Präsentation";
$photos = "Fotos";
$contact = "Kontakt";
/* index */
$video_presentation = "Präsentationfilm";
/* footer */
$footer_creation = "Wir schaffen dieses Site";
} else {
// header
$accueil = "benvenuto";
$présentation = "presentazione";
$photos = "fotos";
$contact = "contatto";
// index
$video_presentation = "Presentazione del film";
// footer
$footer_creation = "Il sito è in costruzione";
}
?>
Merci d'avance, cordialement.
Re: Problème condition
Posté : 25 févr. 2014, 10:56
par xTG
Je ne vois pas d'autre souci dans ton code que l'utilisation d'un index sans vérification qu'il existe.
Vérifies avec un logiciel tel que notepad++ si tu n'as pas des caractères non imprimables qui traînent.
N.B : la balise php serait appropriée pour que le code soit lisible sur le forum.
Re: Problème condition
Posté : 25 févr. 2014, 13:30
par Dlemon
Re, déjà, merci beaucoup de m'aider. Pouvez vous développer 'utilisation d'un index sans vérification qu'il existe' s'il vous plait.
Et j'utilise coda, je crois qu'il vérifie les caractères non imprimables... :/
Re: Problème condition
Posté : 25 févr. 2014, 13:38
par Dlemon
Est-ce mieux ainsi :
<?php
if (!isset($_COOKIE['language'])) {
/* header */
$accueil = "Acceuil";
$présentation = "Présentation";
$photos = "Photos";
$contact = "Contact";
/* index */
$video_presentation = "Video de presentation";
/* footer */
$footer_creation = "Ce site est en cours de création";
} elseif ($_COOKIE['language'] == "allemand") {
/* header */
$accueil = "ZuHause";
$présentation = "Präsentation";
$photos = "Fotos";
$contact = "Kontakt";
/* index */
$video_presentation = "Präsentationfilm";
/* footer */
$footer_creation = "Wir schaffen dieses Site";
} elseif ($_COOKIE['language'] == "italien") {
// header
$accueil = "benvenuto";
$présentation = "presentazione";
$photos = "fotos";
$contact = "contatto";
// index
$video_presentation = "Presentazione del film";
// footer
$footer_creation = "Il sito è in costruzione";
}
?>
Re: Problème condition
Posté : 25 févr. 2014, 14:27
par xTG
C'est mieux oui.
Par contre tu perds un cas avec cet agencement.
=> $_COOOKIE['language'] existe mais ne contient ni italien, ni allemand.
Re: Problème condition
Posté : 25 févr. 2014, 22:56
par Dlemon
Je ne comprends pas pourquoi cela ne marche pas...
Oui, dans ce cas il contiendrait "francais", ce qui en fait le language de base.. :/
Re: Problème condition
Posté : 25 févr. 2014, 23:53
par phil978
Ton problème est que tu as mis un "é" dans le nom de ta variable ....
$présentation
Re: Problème condition
Posté : 26 févr. 2014, 10:17
par sirakawa
Voici la structure
<?php
$a = 3;
if ($a==1) {
print "1";
} elseif ($a==2) {
print "2"
} else {
print "3";
}
?>
et en voici une autre (je déteste elseif):
<?php
$a = 3;
if ($a==1)
{
print "1";
}
else
{
if ($a==2)
{
print "2";
}
else
{
print "3";
}
}
?>
et voici plus simple:
<?php
switch ($_COOKIE['language'] )
{
case "français":
/* header */
$accueil = "Accueil sans faute";
$présentation = "Présentation";
$photos = "Photos";
$contact = "Contact";
/* index */
$video_presentation = "Video de presentation";
/* footer */
$footer_creation = "Ce site est en cours de création";
break;
case "allemand":
break;
case "italiano":
break;
default: //toutes les autres langues
break;
}
?>
Re: Problème condition
Posté : 26 févr. 2014, 18:29
par Dlemon
Merci beaucoup, je vais utiliser le switch qui marche très bien (j'hésitais à le faire). L'autre je ne comprends pas où est l'erreur, en tout cas merci de vous être intéressé à mon problème.

Re: Problème condition
Posté : 26 févr. 2014, 21:53
par sirakawa
Ton problème tenait au elseif dont la sémantique et la syntaxe ne sont pas d'une évdence criantes.
Quand tu as un certain nombre de cas dépendant de la même variable, le switch s'impose d'autant plus qu'avec default, il permet d egérer l'impr"vu ou l'oublié.
Tu n'imagines pas le soulagement qua apporté aux programmeurs l'apparition de cettte structure; j'ai quelque part, 30 cas possibles; imagine la pile de if que ça représenterait.
Un truc: l'erreur se trouve le plus souvent à l'endroit signalé ou avant; rarement ou jamais après.