[英]Undefined variable: _SESSION in php?
我必須使用 php 文件並希望通過使用會話將 $_lang 發送到另一個頁面,無論我在兩個文件中都使用 session_start() 還是僅在第一個文件中使用 $_lang 都無法發送。 如果我使用 cookie,我也有同樣的問題
js文件:
$(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"];
...
不要使用 $_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");
?>
將session_start()
添加到第二個文件中。 由於您正在重定向瀏覽器,因此您有一個新請求,如果沒有session_start()
,則$_SESSION
對象將不可用。
<?php
session_start(); <-- Add this
include ('db.php');
$_lang=$_SESSION['lang'];
...
我遇到了這個問題並嘗試了不同的方法,最后找到了解決方案:
PHP 區分大小寫,在所有 php 文件中使用 $_SESSION 而不是 $_session。當然可以。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.