3

我有一个链接,例如:

<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;
?>

它改变 URL 以index.php?lang=gr读取参数LANG并根据此参数翻译页面。

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

4

2 回答 2

1

如下所示;

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

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

于 2014-12-07T02:04:30.730 回答
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'];
于 2013-06-12T16:47:12.737 回答