PHP: Localització d’una pàgina web amb galetes

Un petit codi extret de cryptimg de viciao2k3 per a gestionar els idiomes d’una pàgina web amb PHP.

<?php

if($_GET['lang']){
	$dir = 'lang/'.strtoupper($_GET['lang']).'.php';
	if(!file_exists($dir))
		$lang = 'ES'; //Si no existeix posem l'idioma per defecte
	else{
		setcookie('cryptimg',strtoupper($_GET['lang']),(time()+3600*24*30)); //Si existeix, guardem l'idioma en una galeta
		$lang = strtoupper($_GET['lang']);
	}
}else
	$lang='ES';

$dir = 'lang/'.$lang.'.php';
require_once($dir);

?>

Per a fer les crides a les cadenes de text, es fan amb constants:

<?php echo TXT_SLOGAN;?>
<?php define(TXT_SLOGAN,'Oculta mensajes en imagenes'); ?>

Problemes: en realitat això sembla que anirà creant galetes cada cop que accedim a la pàgina i canviem l’idioma, perquè no comprova si la galeta està definida. Per tant, s’hauria de definir un if per si existeix la galeta i definir-lo a $dir amb la variable $_COOKIE["cryptimg"];, i si no comprovar $_GET['lang']. Es pot automatitzar segons l’idioma del navegador.

Actualització: Ho he comprovat i en realitat no va creant galetes, sinó que la modifica. setcookie() comprova si la galeta existeix i la modifica, i si no existeix la crea, així de simple. Per tant, no hi ha problemes, només es podria automatitzar amb l’idioma del navegador. El que veig que tampoc fa és comprovar si existeix la galeta…

Aquesta entrada es va publicar dins de Programació i etiquetat com a , . Guarda l'enllaç permanent. Deixa un comentari o deixa un trackback: URL del trackback.

Deixa un comentari

No es publicarà ni es compartirà mai el teu correu electrònic. Els camps obligatoris estan marcats amb *

*
*

Pots fer servir aquestes etiquetes i atributs HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>