il codice originale non sarebbe quello... ho inserito un sunto facendo in effetti un errore.
Ecco l'originale:
una pagina è index.php
la pagina due del sito è praticamente uguale alla prima nella strutturacodice:<?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'; ?>
i files che richiamano sono:
session.php:
e main.class.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; } #------------------------------# ?>
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...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>'; } } ?>
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!

Rispondi quotando