会话在页面之间不起作用

时间:2012-01-14 04:46:23

标签: php session post

我有这个问题。当我使用$ _POST时,Session不起作用。如果我添加63 manualy它将跨页面。我可以看到输出63。

$_SESSION['name'] = 63;
echo $_SESSION['name'] ;


但是当我在页面之间切换时,下面这个不起作用。 $ row ['id']输出也是63。

$cari = "SELECT  id FROM dns_soa WHERE `origin` = '".$_POST['origin']."'";
$keputusan = mysql_query($cari);

$row = mysql_fetch_array($keputusan);   

$_SESSION['name'] = $row['id'];
echo $_SESSION['name'] ;


当我进入第2页时,我可以看到输出,但当我回到第1页时输出消失了。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

因为当你回来时它会再次设置会话变量,因为这次你没有导致$ row ['id'] =“”的$ _POST [origin]变量,而且会话变量也是NULL ...

你应该做的是......

$cari = "SELECT  id FROM dns_soa WHERE `origin` = '".$_POST['origin']."'";
$keputusan = mysql_query($cari);

$row = mysql_fetch_array($keputusan);   

if(!isset($_SESSION['name']))
    $_SESSION['name'] = $row['id'];

echo $_SESSION['name'] ;

答案 1 :(得分:1)

当您返回到您已使用$_POST的网页时,$_POST将变为空,除非您的浏览器再次发布。因此SQL查询不返回任何结果。因此,$_SESSION['name']变为空。

另外,请确保在使用session_start

之前在每个页面上调用了$_SESSION