我有兩個標誌,您可以點擊更改語言。 但奇怪的是,它的工作原理,但我必須點擊兩次才能保持語言。 (如果我轉到其他頁面,會話變量也消失)PHP語言選擇
就像我單擊標誌上的一次,它不會保留在會話變量中。
<?php
if(!isset($_SESSION['lang']))
{
$_SESSION['lang'] = "NL";
}
if($_SESSION['lang'] === "EN")
{
?>
<div class="language-selector">
<a href="page.php?id=1&lang=NL">
<img src="img/nlnon.png" onmouseover="this.src='img/nlact.png'" onmouseout="this.src='img/nlnon.png'"/>
</a>
<a href="page.php?id=1&lang=EN">
<img src="img/enact.png" onmouseover="this.src='img/enact.png'" onmouseout="this.src='img/enact.png'"/>
</a>
</div>
<?php
}
if($_SESSION['lang'] === "NL")
{
?>
<div class="language-selector">
<a href="page.php?id=1&lang=NL">
<img src="img/nlact.png" onmouseover="this.src='img/nlact.png'" onmouseout="this.src='img/nlact.png'"/>
</a>
<a href="page.php?id=1&lang=EN">
<img src="img/ennon.png" onmouseover="this.src='img/enact.png'" onmouseout="this.src='img/ennon.png'"/>
</a>
</div>
<?php
}
?>
這是爲了顯示正確的語言,每個頁面(僅一個現在)
<?php if($page_id == 1){
if(isset($_GET['lang']))
{
$language = $_GET['lang'];
if($language == "EN")
{
$_SESSION['lang'] = "EN";
include('includes/EN/onskantoorEN.php');
}
else
{
$_SESSION['lang'] = "NL";
include('includes/NL/onskantoorNL.php');
}
}
else
{
$_SESSION['lang'] = "NL";
include('includes/NL/onskantoorNL.php');
}
?>
概括起來代碼:
我想點擊<img src="img/nlnon.png>
或<img src="img/nlennon.png>
並讓它立即謹慎地顯示正確的語言,而不是點擊兩次。 我已經在鏈接中包裝了會話變量,所以我不確定發生了什麼問題。
表示會話已經啓動的所有網頁? – 2015-02-24 13:17:34
是的,我把session_start()放在頁面上方。 – Jeak 2015-02-24 13:20:33
代碼執行的順序是?在顯示語言鏈接的代碼(第一個代碼段)之後,您可能會執行用於分配正確會話的代碼(您發佈的第二個代碼段)。 – 2015-02-24 13:21:30