8721 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Tout d'abord, je précise que je suis vraiment mauvais en PHP. ^^

LE CODE :

<?php
$usernavlang =explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
if ($usernavlang[0] == 'fr'||'fr-FR'||'fr-BE'||'fr-CA'||'fr-LU'||'fr-CH'){
	echo "if1 : $usernavlang[0]<br/>";
}elseif ($usernavlang[0] == 'de'||'de-AT'||'de-LI'||'de-LU'||'de-CH') {
	echo "if2 : $usernavlang[0]<br/>";
}else { 
	echo "else : $usernavlang[0]<br/>";
}
?>


LE PROBLEME :
Peut-importe la langue du navigateur la condition 1 est vérifiée.
Pourtant : j'obtient en echo : "if1 : de", "if1 : en-US", etc...
CAD, que $usernavlang[0] prends bien une autre valeur que "fr", "fr-FR', "fr-BE" mais que la 1ère condition est quand même vérifiée...

Comment c'est possible ? Est-ce que ma structure conditionnelle est bonne ?
Merci d'avance.
Salut,

tes conditions sont juste pas bonnes, regarde un peu cette page.

Et plutôt que faire un explode, tu peux faire naïvement un truc du genre:


<?php
	if(strpos($_SERVER["HTTP_ACCEPT_LANGUAGE"], 'fr') === 0){
		echo 'bon pour les français';
	}else if(strpos($_SERVER["HTTP_ACCEPT_LANGUAGE"], 'de') === 0){
		echo 'bon pour les allemands';
	}


Bon courage. Smiley smile