siti multilingua

  • Creatore Discussione Creatore Discussione rober23
  • Data di inizio Data di inizio

rober23

Utente Attivo
4 Ott 2013
32
0
0
ciao, ho creato un sito multilingua. ho messo due bandiere (inglese e ita) che fatto un get sulla stessa pagina mandando una variabile lang impostata a 'en' o 'it' in base alla lingua. all'inizio di ogni pagina, prima del tag <title> ho inserito:

Codice:
<html>
<head>
<?php
session_start();
if(isset($_GET["lang"])){
	$_SESSION["lingua"] = $_GET["lang"];
}
if(!isset($_SESSION["lingua"])){
	$_SESSION["lingua"] = "en";
}
$lang = $_SESSION["lingua"];

?>

quindi se non vi è il get la lingua è inglese, se no a seconda del parametro. ora, ogni pagina inizia così. su alcuni server funziona la session, cioè, se cambio lingua e cambio pagina rimango sempre nella lingua selezionata. adesso però mi capita che se clicco italiano e cambio pagina, la lingua mi ritorna a quella impostata di default. come può essere? in altri siti questo non accade.
 
Probabile che $_SESSION["lingua"] rimane al valore precedente. prova in questo modo:
PHP:
<?php
session_start();
//lingua di default
 $lang_default="en";
 //altra lingua
if(isset($_GET["lang"])){
	$_SESSION["lingua"] = $_GET["lang"];
}
//imposti quella di default
else
{
$_SESSION["lingua"] = $lang_default;
}

$lang=$_SESSION["lingua"];
?>
 
Codice:
<!DOCTYPE html>
<!--[if IE 7 ]>    <html class="ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8 ]>    <html class="ie8 oldie" lang="en"> <![endif]-->
<!--[if IE 	 ]>    <html class="ie" lang="en"> <![endif]-->
<!--[if lt IE 9]><script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<html>
<head>
<?php
session_start();
if(isset($_GET["lang"])){
	$_SESSION["lingua"] = $_GET["lang"];
}
if(!isset($_SESSION["lingua"])){
	$_SESSION["lingua"] = "en";
}
$lang = $_SESSION["lingua"];

?>
	<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
	<meta name="HandheldFriendly" content="True">
    
	<title><?php if($lang=="it"){ echo "titolo";}else{echo "title";}?></title>
    
    <meta content="<?php if($lang=="it"){ echo "Italian Villas Sicilia | Affitto ville in Sicilia | Affitto Appartamenti in Sicilia | Vacanza in Sicilia presso le MIgliori ville in Sicilia ";}else{echo "Italian Sicily Villas | Holiday Villas in Sicily | Rent Apartments in Sicily | Apartments in Sicily in the best villas in Sicily";}?>" name="title" />
    
    <meta content="...codice vario" name="description" />
    
    <meta content="keywords" name="keywords" />
    
    
	//richiami al css e ai js
</head>
<body>

	<!--header-->
	<header>
		<div class="wrap clearfix">
			<!--logo-->
			<h1 class="logo">
            	<a href="index.php" title=" Home">
                	<img src="images/txt/logo.png" alt=" Logo" />
                </a>
            </h1>
			<!--//logo-->
			
			<!--ribbon-->
            <div class="multi">
            <table id="tab-multi">
            	<tr style="border-bottom:thin">
                	<td colspan="2" style="text-align:center;font-size:12px;color:white;">
                    	<a href="prenota.php" title="Login">Login</a>
                    </td>
                </tr>
            	<tr>
                	<td style="text-align:center"><a href=<?php echo "$_SERVER[PHP_SELF]"."?lang=it"; ?> title="it"><img src="images/ita.fw.png"/></a></td>
                    <td style="text-align:center"><a href=<?php echo "$_SERVER[PHP_SELF]"."?lang=en"; ?> title="en"><img src="images/engl.fw.png"/></a></td>
                </tr>
            </table>
            </div>
....rewsto della pagina

tutte le pagine iniziano così
 
Ciao, ho fatto una prova con quel codice e la sessione funziona regolarmente.

lancia un file con phpinfo(); per controllare se la sessione viene avviata sul tuo server
 
Ciao, ho fatto una prova con quel codice e la sessione funziona regolarmente.

lancia un file con phpinfo(); per controllare se la sessione viene avviata sul tuo server
quindi creò un file e lo apro dal browser con scritto phpinfo...in caso te lo mando...in locale funziona ora il server in cui vi e il sito non e mio in caso i settaggi li dove modificare l'amministratore giusto
 

Discussioni simili