我的PHP会话变量不是';t设置
我需要有三种不同的用户类型:guest、author和admin。 当用户注册时,他们通过下拉列表选择自己是作者还是管理员。这三种不同的类型具有不同的功能 目前,无论他们是否登录,它都会在他们登录后分配guest我的PHP会话变量不是';t设置,php,session,Php,Session,我需要有三种不同的用户类型:guest、author和admin。 当用户注册时,他们通过下拉列表选择自己是作者还是管理员。这三种不同的类型具有不同的功能 目前,无论他们是否登录,它都会在他们登录后分配guest <?php include("dbconnect.php"); $con = new dbconnect(); $con->connect(); session_start(); if (isset($_POST['submit'])) { $s
<?php
include("dbconnect.php");
$con = new dbconnect();
$con->connect();
session_start();
if (isset($_POST['submit']))
{
$sql = "SELECT type FROM Users WHERE username = '".$_POST["username"]."' AND password = ('". sha1($_POST["password"]) ."')";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 1) {
$type_num=0;
while ($info = mysql_fetch_array($result)) {
$type =$info['type'];
}
if($type == "admin")
{
$_SESSION['type']=2;
$_SESSION['username']= $_POST["username"];
header("Location: viewPosts.php");
}
if($type == "author")
{
$_SESSION['type']=1;
$_SESSION['username']= $_POST["username"];
header("Location: viewPosts.php");
}
else
{
$_SESSION['type']= $type_num;
$_SESSION['username']="guest";
header("Location: viewPosts.php");
}
} else {
//redirect back to login form if not authorized
header("Location: loginfailed.html");
exit;
}
}
?>
我如何获得它,以便它正确地分配这些变量??
谢谢 问题的根源:
if($type==“author”)
将其更改为
elseif($type==“author”)
。这将使条件检查线程适当地一直持续到最后。否则,如果$type==“admin”
,则它将始终调用您在那里的最后一个else
语句。您是否检查以确保您的用户得到正确的$type
?哦,我明白了。这是一个简单的解决办法。哈哈。非常感谢。