2017-03-06 21 views
-1

Ich muss PHP-Dateien und möchte senden Sie die $ _lang auf die andere Seite mit Sitzungssitzung, ob ich Session_start() in beiden Dateien oder nur nur in der ersten Datei die $ _lang kann nicht gesendet werden. Ich habe gleiches Problem, wenn ich CookieUndefinierte Variable: _SESSION in PHP?

js Datei:

$(document).ready(function(){ 
cat(); 
function cat(){ 
    $.ajax({ 
     url: "action.php", 
     method: "POST", 
     data:  {menu:1}, 
     success: function(data){ 
      $("#get_menu").html(data); 

     } 
    }) 
} 

}); 

erste PHP-Datei:

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


?> 

hier ist der Code für die zweite Datei.

<?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"]; 
     ... 

Antwort

0

Sie $ nicht _GLOBALS ...

Versuchen mit diesem verwenden ..

<?php 
session_start(); 

//get current url 
$goback=$_SERVER['HTTP_REFERER']; 
$_SESSION['lang']=$_GET['lang']; 
echo $_SESSION['lang']; 

//go to current url 
header("location:$goback"); 

?> 
+0

Ich versuchte, immer noch gleichen Fehler. –

+0

Wenn Sie nur eine minimale Datei haben (session_start() adn, dann print_r ($ _ SESSION)), erhalten Sie den gleichen Fehler? – Scovetta

+0

@scovetta Ich fügte hinzu, die print_r ($ SESSION)) in der zweiten Datei und ich habe Array ([lang] => us) das Array vorhanden ist, aber ich weiß nicht, warum dieser Teil nicht $ arbeitet _lang = $ _ SESSION ['lang']; –

0

session_start() in der zweiten Datei hinzufügen. Da Sie den Browser umleiten, haben Sie eine neue Anfrage, und ohne session_start() ist das Objekt $_SESSION nicht verfügbar.

<?php 
session_start(); <-- Add this 

include ('db.php'); 

$_lang=$_SESSION['lang']; 

... 
+0

Richtig, es hat funktioniert! Vielen Dank –