我有多个PHP文件,需要使用session_start()
来跟踪网站语言。有两个按钮ENG和GRE分配给$_SESSION['lang']
的默认语言是ENG。当用户单击希腊语时,需要更新$_SESSION['lang']
,并且需要显示所有希腊语数据库内容。
functions.php
<?php
include "connection.php";
session_start();
function getLang(){
if (isset($_GET['lang'])){
return $lang = $_GET['lang'];
}
else{
return $lang='ENG';
}
}
function getValue($name,$connection){
$lang = getLang();
$query = "SELECT Text FROM users WHERE Nickname='$name' AND Lang='$lang'";
$result = mysqli_query($connection, $query);
$text = mysqli_fetch_assoc($result);
return checkText($text['Text'],$name,$connection);
}
function checkText($text,$name,$connection){
if ($text==null){
$sql = "SELECT Text FROM users WHERE Nickname='$name' AND Lang='Eng'";
$result = mysqli_query($connection,$sql);
$text = mysqli_fetch_assoc($result);
return $text['Text'];
}
else{
return $text;
}
}
function getPk($name,$connection){
$lang = getLang();
$query = "SELECT id FROM users WHERE Nickname='$name' AND Lang='$lang'";
$result = mysqli_query($connection,$query);
$text = mysqli_fetch_assoc($result);
return $text['id'];
}
index.php
<?php include "functions.php";
session_start();
$_SESSION['lang'] = 'ENG';
?>
这就是我开始上课的地方。
<script>
$(document).ready(function(){
$('.lang').on('click',function(){
var lang = $(this).attr('id');
});
});
</script>
<script>
var pks = [];
var nicks = [];
$(document).ready(function(){
$('#bt').on('click',function(){
$('.to_edit').each(function(){
var a = $(this).attr('data-pk');
var nick = $(this).attr('data-name');
$(this).wrapInner("<a class='edit1'></a>");
$('.edit1').attr('data-type','text');
pks.push(a);
nicks.push(nick);
});
var i=0;
$('.edit1').each(function() {
$(this).attr('data-pk', pks[i]);
$(this).attr('data-name',nicks[i]);
i++;
});
$.fn.editable.defaults.mode='inline';
var options = {};
options.url = 'update.php';
$('.edit1').editable(options);
});
});
</script>
第一个脚本是我迄今为止为具有ENG和GRE文字的按钮编写的,第二个脚本是使用x-editable进行内联编辑。
按钮如下:
<button class="lang" id="En"><a href="?lang=ENG">ENG</a></button>
<button class="lang" id="Gr"><a href="?lang=GRE">GRE</a></button>
我的问题是如何获得ENG和GRE按钮的id,如何更新$_SESSION[lang']
,我是否需要在所有文件中使用session_start()?
在connection.php
或functions.php
的开头使用session_start()
,因为它们中的一些应该始终包含在您拥有的每个文件中。
<?php
session_start();
$servername = "localhost";
$username = "root";
..
在每个其他文件中包含的同一个文件中,如果语言发生变化,请添加条件:
if(!isset($_SESSION['lang'])) { $_SESSION['lang'] = 'ENG'; }
if(isset($_GET['lang'])) {
$_SESSION['lang'] = $_GET['lang'];
}