2014-12-03 146 views
-3

PHP會話不工作!任何想法爲什麼它傳遞null值到senond頁面?PHP會話不工作

file1.php: 
<?php 
session_start(); 
$_SESSION['lat']=$_POST['lat']; 
$_SESSION['lng']=$_POST['lng']; 
session_write_close(); 
header('Location: http://sample.com/e_health/searchambulance.php'); 
?> 

file2: 
<?php 
session_start(); 
$lat= $_SESSION['lat']; 
$lng=$_SESSION['lng']; 
echo $lat; 
echo $lng; 
?> 
+0

兩個文件都在同一個域? – 2014-12-03 10:47:48

+3

您是否檢查$ _POST值是否真的存在?你有沒有收到任何錯誤信息? – Erik 2014-12-03 10:50:31

+0

你確定你的索引(lat,lng)存在於$ _POST中嗎?我們需要更多的代碼來進行調試。你從哪裏發佈?嘗試在你的file1.php中做一個var_dump($ _ POST); die();在最頂端。 – Dencker 2014-12-03 10:50:42

回答

0

有(至少)兩個事情,你可能想測試:
一)做文件1獲得與這兩個POST參數調用?
b)會話id的傳播是否工作? (同時適用於 「文件」 的輸出的session_id = XYZ必須是相同的或以其他方式的第二請求不緊到所述第一請求的會話)

file1的:

<?php 
if (!isset($_POST['lat'], $_POST['lng'])) { 
    die('missing parameters'); // you probably want a slightly more sophisticated error handling here 
} 
session_start(); 
$_SESSION['lat']=$_POST['lat']; 
$_SESSION['lng']=$_POST['lng']; 

//session_write_close(); 
//header('Location: http://sample.com/e_health/searchambulance.php'); 
echo 'session_id=', session_id(), '<br /><a href="http://sample.com/e_health/searchambulance.php">page #2</a>'; 

file2的:

<?php 
session_start(); 
$lat= $_SESSION['lat']; 
$lng=$_SESSION['lng']; 
echo 'session_id=', session_id(), '<br />'; 
echo $lat; 
echo $lng; 
0

以這種方式更改代碼。這將作品......

file1.php:

<?php 
session_start(); 
$_SESSION['lat']=$_POST['lat']; 
$_SESSION['lng']=$_POST['lng']; 

header('Location: http://sample.com/e_health/searchambulance.php'); 
?> 

file2: 
<?php 
session_start(); 
$lat= $_SESSION['lat']; 
$lng=$_SESSION['lng']; 
echo $lat; 
echo $lng; 
?>