登录检查php

时间:2014-01-30 15:29:53

标签: php mysql

我创建了一个带有用户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页面,任何人都可以帮我这个吗?

3 个答案:

答案 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());

这样,错误就会显示在浏览器中。