Ovviamente so che tu filippo non hai bisogno di suggerimenti, ma mi permetto di correggerti, in linea di principio non bisognerebbe mai reimpostare i valori di $_GET e $_POST.Originariamente inviato da filippo.toso
Ti basta inserire questo codice all'inizio dello script:
Codice PHP:
$_GET['lang'] = isset($_GET['lang']) ? $_GET['lang'] : 'it';
Meglio all'inizio del codice mettere una variabile di default (ad esempio $lang), che viene cambiata se è settato $_GET['lang'], e in tutto il sito fare riferimento a $lang.
I motivi sono:
1. Se una variabile è $_GET, devi essere sicuro che arrivi proprio dall'url, diverse volte mi è capitato di mettere mano a codice (chilometrico) scritto da altri e magari alla linea 1200 del file pippo.php trovare in $_GET['chiave'] un valore che era stato settato e risettato mille volte. Non c'è niente di peggio per rendere un codice illeggibile e difficile da mantenere.
2. Se domani decidi di gestire in altro modo la ricezione della lingua (ad esempio usando il valore inviato dal browser come suggerito dal link di peppeocchi), basterà cambiare una sola linea.
3. Aggiungo una cosa, oltre a settare la lingua cosi come arriva dal browser, bisognerebbe controllare che la lingua sia presente, perchè se cambio l'url e metto http://www.sito.com/index.php?lang=cinese, potrebbero esserci dei problemi.
Morale io suggerirei questo:
MadBob, come dice filippo non è necessario reindirizzare la prima volta, ma prevedere semplicemente un caso di default.codice:$accepted_langs = array('it', 'en'); $lang = 'it'; if(isset($_GET['lang']) && in_array($_GET['lang'], $accepted_langs)) { $lang = $_GET['lang']; }
Ciao