如何在整个php页面中传递session id()?

时间:2010-05-15 11:13:32

标签: php session sessionid

当用户点击登录按钮(index.php)时,我正在调用 chechlogin.php ,我在这里检查loginId的密码为 -

if($count==1)
{
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword"); 
$_SESSION['UserId'] = $myusername;
$_session['SessionId'] = session_id();
header("location:LoggedUser.php");
}
LiggedUser.php

中的

<?php session_start();  //starting session

if(!isset($ _ SESSION ['SessionId'])|| $ _SESSION ['SessionId'] =='')   {    标题( “位置:的index.php”);   } ?&GT;

问题:虽然我输入了正确的用户ID和密码,但它总是回到index.php页面。我认为session_id()工作不正常或者??

2 个答案:

答案 0 :(得分:5)

将$ _session更改为$ _SESSION。

btw session_register已弃用,不应使用。有关详细信息,请参阅session-register手册。

btw#2。您不需要在$ _SESSION中存储sessionId,UserId就足够了。所以你的代码看起来像:

的login.php

if ($count == 1) {
    $_SESSION['UserId'] = $myusername;
    header ("location: LoggedUser.php");
    exit;
}

loggeduser.php

if (empty ($_SESSION['UserId'])) {
    header ("location:login.php");
    exit;
}

// user is logged 

修改 Emil建议退出。

答案 1 :(得分:1)

在每次exit;来电后,请考虑致电header('Location: ...')。否则PHP将继续解析剩余的代码,这可能会导致不可预测的错误。

header("Location: LoggedUser.php");
exit;