我创建了一个带有用户ID和密码输入和登录按钮的登录表单,它链接到一个名为login in mysql的表,其中包含字段userid,password,category和department。部门字段用于指定员工的离职。如果部门字段为空,则该用户是管理员。所以,当我点击我的登录按钮时,我希望它检查是否$ department ==“”如果这是真的,我应该被重定向到管理页面,否则我的员工页面。这是我的checklogin.php文件:
$sql="SELECT * FROM login WHERE userid='$myid' and password='$mypassword'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1)
{
$_SESSION['myid'];
$_SESSION['mypassword'];
$get=mysql_query("SELECT department FROM login");
$mydept = mysql_fetch_assoc($get);
if($mydept=="")
{
header("location:admain.php");
}
else
{
header("location:stmain.php");
}
}
else
{
header("location:main_err.php");
}
现在无论我提供什么登录ID和密码我都被重定向到admain.php页面,任何人都可以帮我这个吗?
答案 0 :(得分:0)
有很多错误
您稍后在访问它们时开始会话,您还在查询中选择部门并访问
$result3['category'];
我不知道你的表结构,错误启动顶部的会话替换
$sql1="SELECT department FROM login WHERE id='$myid' and password='$mypassword'";
使用
$sql1="SELECT category FROM login WHERE id='$myid' and password='$mypassword'";
修改强>
使用此
$sql="SELECT * FROM login WHERE userid='$myid' and password='$mypassword'";
$result = mysqli_query($con,$sql)or die(mysqli_error());
$count=mysqli_num_rows($result);
if($count==1)
{
$row = mysqli_fetch_array($result);
$mydept=$row['department'];
if($mydept=="")
{
header("location:admain.php");
}
else
{
header("location:stmain.php");
}
}
else
{
header("location:main_err.php");
}
答案 1 :(得分:0)
你所做的事情有很多不妥之处,我没有时间讨论这个问题,而是回答你的主要问题。
$sql = "SELECT * FROM login WHERE userid='$myid' and password='$mypassword' LIMIT 1";
$result = mysql_query($sql);
$count = mysql_num_rows($results);
if($count == 1){
session_start();
$_SESSION['myid'];
$_SESSION['mypassword'];
$row = mysql_fetch_assoc($result);
if($row['category'] == "admin"){
header("location:admain.php");
} else {
header("location:stmain.php");
}
} else {
header("location:main_err.php");
}
答案 2 :(得分:0)
这可能是一个简单的列名问题。您的第一个查询使用" userid"第二个使用" id"。我猜你应该改变那个" id" to" userid"。
如果不是这样,请尝试在查询中放置一个(mysql_error) (例如$ result2 = mysql_query($ sql1)或die(mysql_error());
这样,错误就会显示在浏览器中。