nec*_*tar 1 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");
}
Run Code Online (Sandbox Code Playgroud)
在LiggedUser.php中
<?php session_start(); //starting session
Run Code Online (Sandbox Code Playgroud)
if(!isset($ _ SESSION ['SessionId'])|| $ _SESSION ['SessionId'] ==''){header("location:index.php"); }?>
问题:它总是回到index.php页面,虽然我输入正确的用户名和密码.我认为session_id()工作不正常或??
将$ _session更改为$ _SESSION.
btw session_register已弃用,不应使用.有关详细信息,请参阅会话注册手册
顺便说一句#2.您不需要在$ _SESSION中存储sessionId,UserId就足够了.所以你的代码看起来像:
的login.php
if ($count == 1) {
$_SESSION['UserId'] = $myusername;
header ("location: LoggedUser.php");
exit;
}
Run Code Online (Sandbox Code Playgroud)
loggeduser.php
if (empty ($_SESSION['UserId'])) {
header ("location:login.php");
exit;
}
// user is logged
Run Code Online (Sandbox Code Playgroud)
编辑: 退出添加为埃米尔建议.