簡體   English   中英

未定義的變量:php 中的 _SESSION?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM