il codice originale non sarebbe quello... ho inserito un sunto facendo in effetti un errore.
Ecco l'originale:
una pagina è index.php
codice:
<?php
include 'classi/session.php';
include 'testi/testi.php';
include 'classi/main.class.php';
$page = new main();
#------------------------------#
if(($_SESSION['lang']) == 'it'){
$page->menu = 'configurazioni/it_menu.ini';
}
if(($_SESSION['lang']) == 'gb'){
$page->menu = 'configurazioni/gb_menu.ini';
}
#------------------------------#
$page->content .= '<h1>'.$titolo_1[$idioma].'</h1>
';
#------------------------------#
$page->message = '';
#------------------------------#
include 'template/' . TEMPLATE_NAME . '/template.php';
?>
la pagina due del sito è praticamente uguale alla prima nella struttura
i files che richiamano sono:
session.php:
codice:
<?php
session_start();
if(!isset($_SESSION['lang'])){
$_SESSION['lang'] = 'it';
}
if(isset ($_POST['it'])){
$_SESSION['lang'] = 'it';
}
if(isset ($_POST['gb'])){
$_SESSION['lang'] = 'gb';
}
#------------------------------#
# gestore multilingua testi #
#------------------------------#
$lingua = $_SESSION['lang'];
switch($lingua){
case 'it':
$idioma = 0;
break;
case 'gb':
$idioma = 1;
break;
}
#------------------------------#
?>
e main.class.php:
codice:
<?php
class Main{
public function __construct(){
}
public function _menu_principale($menu_file){
$nav = file($menu_file);
$page = basename($_SERVER['PHP_SELF']);
foreach($nav as $line){
$link = explode(":", $line);
echo '
<div id="menu">
<form method="post" action="'.$link[1].'">
<button type="submit"';
if(trim($link[1]) == $page){
echo' disabled="disabled" >';
}
else{
echo '>';
}
echo ''.$link[0].'
</button>
</form>
</div>
';
}
}
public function _menu_lingua(){
$nav = file('configurazioni/lingue.ini');
echo '<form method="post">';
foreach($nav as $line){
$link = explode(":", $line);
echo '
<div id="menu">
<button name='.$link[1].' type="submit"';
if(trim($link[1]) == ($_SESSION['lang'])){
echo' disabled="disabled" >';
}
else{
echo '>';
}
echo ''.$link[0].'
[img]immagini/'.$link[1].'.png[/img]
</button>
</div>';
}
echo '</form>';
}
}
?>
altro file che richiama è testi.php che è una semplice raccolta di array dove nel termine 0 c'è il testo in italiano e nel termine 1 la traduzione inglese...
Il sito funziona PERFETTAMENTE in locale .... anche se sicuramente è migliorabile essendo realizzato da un principiante e non da un professionista.
IL PROBLEMA è quando sposto il sito dal locale al host Aruba.
Su Aruba la variabile $_SESSION['lang'] assume valore = 0 e non riesco a capire il motivo.
Ovviamente con quel valore di $SESSION il sito non funziona!
GRAZIE infinite!