Salve a tutti, ho un porblema con le variabili di sessione, sembrano non funzionare.
Ho una pagina (index.php) in cui è possibile selezionare la lingua:
<html>
<body>
<a href="main.php?lang=it">Italiano</a><br>
<a href="main.php?lang=en">Inglese</a>
</body>
</html>
la pagina main.php inizia con questo include:
<?php
session_start();
include("prova.php");
?>
La pagina prova.php è quella che fa il controllo della lingua e permette di includere la pagina corretta:
<?php
//Lingua di default
$defaultlang = "it";
//Cartella dei file di lingua (relativa in base alla posizione del file di config)
$langpath = "lang";
//Iniziamo ad avviare le sessioni (toglietelo se già le avete aperte)
session_start();
//Se esiste la variabile di sessione 'lingua'
if (isset($_SESSION['lingua'])) {
//Se esiste il parametro WEB inviato tramite GET 'lang'
if(isset($_GET['lang'])) {
//Effettuiamo qualche aggiusto per eventuali hack...
$_GET['lang'] = str_replace("/","", trim(strtolower($_GET['lang'])));
//Se esiste il file di lingua corrispondente al parametro GET richiesto
if (is_file($langpath."/".$_GET['lang'].".php")) {
//Imposta la sessione 'lingua' con la lingua scelta
$_SESSION['lingua'] = $_GET['lang'];
//Altrimenti
} else {
//Imposta la sessione 'lingua' in quella di default
$_SESSION['lingua'] = $defaultlang;
}
}
//Altrimenti
} else {
//Imposta la sessione 'lingua' in quella di default
$_SESSION['lingua'] = $defaultlang;
}
//Finalmente includiamo il file di lingua giusto
include($langpath."/".$_SESSION['lingua'].".php");
?>
Quale può essere l'errore? Nella cartella temp si crea correttamente il file che contiene la var di sessione.
Ho una pagina (index.php) in cui è possibile selezionare la lingua:
<html>
<body>
<a href="main.php?lang=it">Italiano</a><br>
<a href="main.php?lang=en">Inglese</a>
</body>
</html>
la pagina main.php inizia con questo include:
<?php
session_start();
include("prova.php");
?>
La pagina prova.php è quella che fa il controllo della lingua e permette di includere la pagina corretta:
<?php
//Lingua di default
$defaultlang = "it";
//Cartella dei file di lingua (relativa in base alla posizione del file di config)
$langpath = "lang";
//Iniziamo ad avviare le sessioni (toglietelo se già le avete aperte)
session_start();
//Se esiste la variabile di sessione 'lingua'
if (isset($_SESSION['lingua'])) {
//Se esiste il parametro WEB inviato tramite GET 'lang'
if(isset($_GET['lang'])) {
//Effettuiamo qualche aggiusto per eventuali hack...
$_GET['lang'] = str_replace("/","", trim(strtolower($_GET['lang'])));
//Se esiste il file di lingua corrispondente al parametro GET richiesto
if (is_file($langpath."/".$_GET['lang'].".php")) {
//Imposta la sessione 'lingua' con la lingua scelta
$_SESSION['lingua'] = $_GET['lang'];
//Altrimenti
} else {
//Imposta la sessione 'lingua' in quella di default
$_SESSION['lingua'] = $defaultlang;
}
}
//Altrimenti
} else {
//Imposta la sessione 'lingua' in quella di default
$_SESSION['lingua'] = $defaultlang;
}
//Finalmente includiamo il file di lingua giusto
include($langpath."/".$_SESSION['lingua'].".php");
?>
Quale può essere l'errore? Nella cartella temp si crea correttamente il file che contiene la var di sessione.