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