0

我的網站是通過以下方式構成:PHP的URL處理與語言菜單/ POST方法

的index.php

  • fileA.php
  • fileB.php
  • fileC.php
  • ecc。

這些文件中的每一個都有關聯的3個語言文件(英文,德文和意大利文),存儲在一個文件夾中。 的語言與選擇菜單動態變化:

<form name="switch_menu" id="lang" action="" method="post"> 
<select name="lingua" class="switch" onchange="this.form.submit()"> 
<option value="lang_it" <?php if($lang == "lang_it"){ echo "selected=\"selected\""; }?>>Italiano</option> 
<option value="lang_de" <?php if($lang == "lang_de"){ echo "selected=\"selected\""; }?>>Deutsch</option> 
<option value="lang_en" <?php if($lang == "lang_en"){ echo "selected=\"selected\""; }?>>English</option> 
</select> 
</form> 

,並在文件中的代碼是這一個:

switch($lang){ 
case 'lang_it': include_once('folder/it/fileA.it.php'); break; 
case 'lang_de': include_once('folder/de/fileA.de.php'); break; 
case 'lang_en': include_once('folder/en/fileA.en.php'); break; 
default: include_once('folder/en/fileA.en.php'); break; 
} 

其中fileA.en.php,fileA.it.php和的fileA。 de.php是語言內容。

是否有可能通過一些if語句或類似操作來處理代碼的第二部分,因此所選語言顯示在url中?否則,搜索引擎將不會看到其他語言(意大利語和德語)。 否則我可以添加一些代碼來達到目的嗎?

在此先感謝您的任何提示。

回答

0

爲什麼不在表單中使用GET而不是POST?這將使$lang變量在您的網址,像http://yourdomain.com/fileA.php?lang=it

然後,抓取工具在不同的語言更有效地尋找,你可以使用URL與郎GET變量使該網站的內部鏈接。

另外,看看Gettext,這是一個更好的實施國際化的方法。

+0

帖子比獲得更安全...是否可能與$ _POST做到這一點? – Someone33

+0

通過選擇列表即可。 –

+0

好吧,我不得不不同意那裏(並且我[不是唯一一個](http://stackoverflow.com/questions/198462/is-either-get-or-post-more-secure-than-the-其他))。唯一的區別是POST沒有顯示在URL中,但是因爲在這種情況下你希望它被顯示,所以沒什麼可說的:) GET正是你在這種情況下需要的。 – JuanXarg