php会话无法启动

时间:2014-09-03 10:53:16

标签: php session

大家好我正在尝试在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");

}

?>

3 个答案:

答案 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。