链接点击更改语言

时间:2013-06-12 16:26:00

标签: php html post parameters get

我有一个链接,例如:

<a href="index.php?lang=en"><img src="images/uk.png" style="height:20px"/></a>

并且index.php中的包含页面:

<?php
session_start();
header('Cache-control: private'); // IE 6 FIX

if(isSet($_GET['lang']))
{
$lang = $_GET['lang'];

// register the session and set the cookie
$_SESSION['lang'] = $lang;

setcookie("lang", $lang, time() + (3600 * 24 * 30));
}
else if(isSet($_SESSION['lang']))
{
$lang = $_SESSION['lang'];
}
else if(isSet($_COOKIE['lang']))
{
$lang = $_COOKIE['lang'];
}
else
{
$lang = 'en';
}

switch ($lang) {
  case 'en':
  $lang_file = 'lang.en.php';
  break;

  case 'gr':
  $lang_file = 'lang.gr.php';
  break;

  default:
  $lang_file = 'lang.en.php';

}

include_once 'languages/'.$lang_file;
?>

它将网址更改为index.php?lang=gr读取参数LANG并翻译页面取决于此参数。

如何在不将参数传递给Url的情况下更改代码来执行此操作?我的意思是,我希望用户留在同一页面上并更改页面刷新时的语言。

2 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点,其中一种方法是使用表单并将“提交”按钮设置为您的图像。表单将使用POST方法,该方法不包括URL中的变量。获取请求将添加?lang=en

<div id="buttons">
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
        <input type="hidden" name="lang" value="en">
        <button type="submit">
            <img src="images/uk.png" style="height:20px"/>
        </button>
    </form>
</div>

更改您的代码以使用$ _POST变量:

if(isSet($_POST['lang']))
{
$lang = $_POST['lang'];

答案 1 :(得分:0)

如下所示;

        <input type="submit" value="" class=<?php if( $_SESSION['lang']  == "tr" ) { echo "submittr";  } else { echo "submiten";} ?>>

在这种情况下,您将更改类的类型