Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 单击链接更改语言_Php_Html_Post_Parameters_Get - Fatal编程技术网

Php 单击链接更改语言

Php 单击链接更改语言,php,html,post,parameters,get,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

我有一个链接,例如:

<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的情况下,如何更改代码以执行此操作?我的意思是,我希望用户保持在同一页面上,并在页面刷新时更改语言。

有几种方法可以做到这一点,其中之一是使用表单并将“提交”按钮设置为您的图像。表单将使用POST方法,该方法不会在URL中包含变量。get请求将添加
?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>
具体如下:

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

@AndreyPopov尝试将上述代码从
更改为是的,我认为它现在可以工作了,谢谢!但是…它仍然在url中添加了一个参数(这是我通过鼠标点击得到的):@AndreyPopov,不客气。但是,您所说的“它仍然将一个参数放入url”是什么意思?我不太明白你的意思。你能详细说明一下吗
GET
将始终显示一个参数。你必须重写一个
mod_
,我想不显示一个。类似于Facebook的功能,对吗?抱歉,你需要更新你的代码才能使用$\u帖子--我已经更新了答案是的,这会一直工作,直到我在URL中有另一个参数。。。例如:我在第页:点击按钮将重定向到请告诉我如何避免它?非常感谢。
        <input type="submit" value="" class=<?php if( $_SESSION['lang']  == "tr" ) { echo "submittr";  } else { echo "submiten";} ?>>