我必须使用php文件并希望通过使用session将$ _lang发送到其他页面,无论我在两个文件中使用session_start()还是仅在第一个文件中无法发送$ _lang。如果我使用cookie
,我也有同样的问题js file:
$(document).ready(function(){
cat();
function cat(){
$.ajax({
url: "action.php",
method: "POST",
data: {menu:1},
success: function(data){
$("#get_menu").html(data);
}
})
}
});
第一个php文件:
<?php
session_start();
//get current url
$goback=$_SERVER['HTTP_REFERER'];
$GLOBALS['_lang']=$_GET['lang'];
$_SESSION['lang']=$_lang;
echo $_SESSION['lang'];
//go to current url
header("location:$goback");
?>
这是第二个文件的代码。
<?php
include ('db.php');
$_lang=$_SESSION['lang'];
//$_lang= 'us';
if(isset($_POST["menu"])){
//function display_menu(){
$category_query="SELECT * FROM menu WHERE parent_id=0";
$run_query=mysqli_query($con,$category_query);
if(mysqli_num_rows($run_query)>0){
while($row=mysqli_fetch_array($run_query)){
$menu_id=$row["menu_id"];
$menu_name=$row[$_lang];
$menu_icon=$row["icon"];
...
答案 0 :(得分:0)
不要使用$ _GLOBALS ...
试试这个..
<?php
session_start();
//get current url
$goback=$_SERVER['HTTP_REFERER'];
$_SESSION['lang']=$_GET['lang'];
echo $_SESSION['lang'];
//go to current url
header("location:$goback");
?>
答案 1 :(得分:0)
将session_start()
添加到第二个文件。由于您要重定向浏览器,因此您有一个新请求,如果没有session_start()
,则$_SESSION
对象将无法使用。
<?php
session_start(); <-- Add this
include ('db.php');
$_lang=$_SESSION['lang'];
...
答案 2 :(得分:0)
我遇到了这个问题,尝试了不同的方法,终于找到了解决方案:
PHP区分大小写,请在所有php文件中使用$ _SESSION而不是$ _session。肯定可以。