麻辣家族討論版版's Archiver

小誌 發表於 2010-5-16 13:51

(PHP+IIS+MsSQL教學第20篇) 資料儲存與檔案管理 上篇(實做)

[color=DarkOrange][size=5][b]瀏覽者的語言版本[/b][/size][/color]
「網路無國界,世界是一家」,您以為網路上的資訊有國別或地域的區分嗎?當然沒有!世界各國使用各種語言的網友都有可能光臨您的網站,以小誌的網站來說,有來自台灣、香港、中國大陸、甚至加拿大的網友來參觀,因此,為服務世界各國使用各種語言的網友,您可能將網站規劃成有多國語言的版本,當網友來參觀時,可自由選擇他適合的語言版本來瀏覽。

[attach]458[/attach]


當世界各國使用各種語言的網友每次來到您的網站,如果網友第一次光臨網站請人家選擇適當的語言版本來瀏覽,這是無可厚非的,但網友若是再度光臨,您又要人家選擇一次語言版本來瀏覽,這太麻煩了,好像不是很好的待客之道,所以,我們可以利用Cookie來做記錄ㄚ,當網友第一次光臨時,請他選擇適當的語言版本來瀏覽,如上圖,而他再度光臨我們網站時,不需要再選擇一次語言版本,我們會直接轉向網頁到適合他的語文版本去。

[attach]459[/attach]
在本範例程式中,我們只需要一個Cookie,它的名稱是:「languagename」,它是用來記錄瀏覽者的語言版本,其值有下列三種可能:
[list]
[*]big5:曾經來參觀過網站,而且,所選擇的語言版本為中文繁體。
[*]gb:曾經來參觀過網站,而且,所選擇的語言版本為中文簡體。
[*]沒有Cookie變數:以前沒來過,是第一次來訪,必須選擇語言版本。
[/list]



[color=Green][size=4][b]身份判斷[/b][/size][/color]
當訪客進入您的首頁,我們第一件要做的事是先去確認Cookies「languagename」的值,如果Cookie「languagename」存在,則代表訪客曾經來過,接著才開始判斷Cookie「languagename」的值,如果其值為「big5」,代表訪客要瀏覽的是『中文繁體』版本的網頁,我們就直接將瀏覽位置轉向到『中文繁體』版本的網頁去;而其值若是「gb」,代表訪客要瀏覽的是『中文簡體』版本的網頁,就將瀏覽位置轉向到『中文簡體』版本的網頁去。[code]<?
ob_start();
//取得語言版本的Cookie變數值
if (isset($_COOKIE["languagename"]))
//決定該到何處去
{
  $languagename=$_COOKIE["languagename"];
  if ($languagename=="big5")
   {
    header("Location: big5.php");
   }
  else
   {
    header("Location: gb.php");
   }
}
?>
[/code]在程式碼第8與第15行中,我們利用If判斷敘述去幫我們判斷語言版本Cookies「languagename」的值,如果「languagename」的值是「big5」,就直接將瀏覽位置轉向到『中文繁體』版本的網頁去;若是「gb」,就直接將瀏覽位置轉向到『中文簡體』版本的網頁去。ㄚ!如果「languagename」的值不是「big5」或「gb」怎麼辦?那就不做任何動作,等待瀏覽者選擇適當的版本。
[attach]460[/attach]


[color=Green][size=4][b]設定語言版本的Cookie[/b][/size][/color]當網友第一次光臨時,我們會請他進行語言版本的設定,在網頁中我們放置了兩個語言版本的選擇圖片,並且為圖片加上了超鏈結依不同選擇連結到不同語言版本的網頁。
在不同語言版本的網頁中,我們加上了判斷語言版本Cookies「languagename」值的設定敘述,如果Cookies「languagename」的值是空字串,就將語言版本寫入Cookies「languagename」內,並將此Cookies值設定為使用後的日期起算,90天內都有效,以中文繁體網頁為例:[code]<?
ob_start();
//取得語言版本的Cookie變數值,若無語言版本設定
//將語言版本設為繁體中文,語言版本設定90天內有效
if (!isset($_COOKIE["languagename"]))
  {
   setcookie("languagename","big5",time()+7776000);
  }
?>[/code]上例中,只有在Cookie變數languagename不存在,也就是在瀏覽器中沒有我們所需要的Cookies「languagename」時,才寫入Cookies!


in.php(首頁、語言版本判斷)[code]<?
ob_start();
//取得語言版本的Cookie變數值
if (isset($_COOKIE["languagename"]))
//決定該到何處去
{
  $languagename=$_COOKIE["languagename"];
  if ($languagename=="big5")
   {
    header("Location: big5.php");
   }
  else
   {
    header("Location: gb.php");
   }
}
?>

<html>
<head>
<meta http-equiv="Content-Language" content="zh-tw">
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>網頁版本檢查</title>
</head>
<body background="bg.gif">
<p align="center">
<img border="0" src="twbtsb1.gif"></p>
<p align="center">
<img border="0" src="choose.gif"></p>
<p align="center">
<!-- 中文繁體的鏈結 -->
<a href="big5.php">
<img border="0" src="big5.gif"></a></p>
<p align="center">
<!-- 中文簡體的鏈結 -->
<a href="gb.php">
<img border="0" src="gb.gif"></a></p>
</body>
</html>[/code]big5.php(繁體網頁、繁體版本設定)[code]<?
ob_start();
//取得語言版本的Cookie變數值,若無語言版本設定
//將語言版本設為繁體中文,語言版本設定90天內有效
if (!isset($_COOKIE["languagename"]))
  {
   setcookie("languagename","big5",time()+7776000);
  }
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>中文繁體網頁</title>
</head>
<body background="bg.gif">
<p>你好!!歡迎光臨麻辣學園</p>
<p><font color="#0000FF" size="5"><b>BIG5碼繁體網頁</b></font></p>
</body>
</html>[/code]gb.php(簡體網頁、簡體版本設定)[code]<?
ob_start();
//取得語言版本的Cookie變數值,若無語言版本設定
//將語言版本設為簡體中文,語言版本設定90天內有效
if (!isset($_COOKIE["languagename"]))
  {
   setcookie("languagename","gb",time()+7776000);
  }
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>中文簡體網頁</title>
</head>
<body background="mainbg.gif">
<p>您好!!歡迎光臨麻辣學園</p>
<p><font color="#008000" size="5"><b>GB碼簡體網頁</b></font></p>
</body>
</html>[/code][color=Red][b]本實做範例完整原始碼檔案下載:[/b][/color][attach]461[/attach]

頁: [1]

麻辣家族討論版版為 麻辣學園 網站成員  由 昱得資訊工作室 © Since 1993 所提供