sessioni e mod_rewrite

ciao

ho un problema con le sessioni e probabilmente il modulo mod_rewrite.

in pratica ho delle pagine multilingua controllate dalle sessioni.

ricevo da index.php via GET la $var lingua del browser e la registro nel file session.php

if(isset($_GET['lingua'])){
$_SESSION['lingua'] = $_GET['lingua'];
}

poi da home.php

include("session.php");

if (!isset($_SESSION['lingua']))
{
header("location:index.php");
}
else{

}

il problema è: dato che ho tutte le pagine riscritte con le regole del mod_rewrite, se entro nel sito da una pagina che non è index, tipo "home.php?page=contatti", o meglio "home,contatti.html", il controllo su $_SESSION['lingua'] non funziona e mi restituisce sempre gli errori di notice relativi alla $var di sessione che non è settata.

dico questo perchè ho un altro sito con la stesso identico sistema di controllo, ma senza mod_rewrite, e funziona bene....

ne sapete qualcosa????

inviato 9 anni fa
iTek
iTek
1
X 0 X

io per prima cosa metterei una pezza come questa:

if(isset($_GET['lingua']))
     $_SESSION['lingua'] = $_GET['lingua'];
elseif (! isset($_SESSION['lingua']))
    $_SESSION['lingua'] = 'it';

in questa maniera non hai più problemi di variabile non dichiarata

con il codice riportato il mod_rewrite non dovrebbe centrare nulla

risposto 9 anni fa
Xscratch
X 0 X

ciao grazie per la risposta,

if(isset($_GET['lingua']))
     $_SESSION['lingua'] = $_GET['lingua'];
elseif (! isset($_SESSION['lingua']))
    header("location:index.php");

forse così è meglio, nel caso non è settata la lingua faccio un redirect a index.php in modo da ri-settare la lingua originale del browser...

risposto 9 anni fa
iTek
iTek
1
X 0 X

sei sicuro che sia meglio redirezionare l'utente ad una pagina che non ha chiesto di vedere solo perché non ha scelto la lingua?

io credo preferirebbe una pagina con testo in lingua madre con ben visibile il link alla versione tradotta.

Anzi, ancora meglio: invece di mettere la lingua di default del sito mostra quella del browser(la trovi negli header http)

in ogni caso hai capito che ne va sempre messa una di default...

hai ancora quel problema?

risposto 9 anni fa
Xscratch
modificato 9 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda