大家好我正在尝试在PHP CMS应用程序中启动新会话 但当我尝试使用用户名和密码启动会话访问main.php页面时,它会重定向到登录页面并显示没有错误
这是我的login.php脚本:
<?php
session_start();
require('../config/connect.php');
if (isset($_POST['userid']) and isset($_POST['password'])){
$username = $_POST['userid'];
$password = md5($_POST['password']);
$query = "SELECT * FROM `users` WHERE username='$username' AND password='$password'";
$result = mysql_query($query) or die(mysql_error());
$count = mysql_num_rows($result);
$row= mysql_fetch_array($result);
$userid = $row['userid'];
$usertype= $row['usertype'];
if ($count == 1){
$_SESSION['userid'] = $userid;
$_SESSION['username'] = $username;
$_SESSION['usertype'] = $usertype;
if($_SESSION['usertype'] == 'ADMIN'){
// echo "ADMIN AREA";
header("Location:../admin/index.php");
}elseif ($_SESSION['usertype'] == 'STUDENT'){
//echo "STUDENT AREA";
header("Location:../students/index.php");
}else{
echo "CLINT AREA";
}
}else{
echo "<script>
alert(' Invalid Username And Password');
window.location.href='../index.php';
</script>";
}
}
?>
这是我的会话开始代码
<?php
session_start();
if(isset($_SESSION['logged_in'])){
echo 'Start Session now';
}
else
{
header("Location:../index.php");
}
?>
答案 0 :(得分:0)
你已经放userid
$ _SESSION ['userid'] = $ userid;在会话中。你没有把logged_in
放在会议中。
所以请使用userid
代替logged_in
<?php
session_start();
if(empty($_SESSION['userid']))
{
header("location:login.php");
}
else
{
header("Location:../index.php");
}
?>
答案 1 :(得分:0)
您未在代码中使用 logged_in 索引。
所以,你应该像@ Mr7-itsurdeveloper一样改变你的代码。
OR
<?php
session_start();
if(!empty($_SESSION['userid']) && !empty($_SESSION(username)))
{
header("Location:../index.php");
}
else
{
header("location:login.php");
}
?>
答案 2 :(得分:0)
确保session_start();在调用任何会话之前调用。所以一个安全的赌注就是在开幕后立即把它放在你的页面的开头
标题重定向后,使用exit()结束当前脚本; (其他人也建议使用session_write_close();和session_regenerate_id(true),你也可以尝试这些,但我会使用exit();)
确保在您用于测试的浏览器中启用了Cookie。