在PHP表单多次登录不工作


Multiple login in PHP form not working

当密码错误时,我的代码的其他部分正在工作。但是,当密码正确时,它不会转到admin.php页面。它只是停留在同一页。

有人知道为什么会这样吗?

<?php
session_start();
error_reporting(E_ALL); // to see if there is error in code
include "connect_to_mysql.php";
if(isset($_POST['log'])){
    $user = $_POST['user'];
    $pass = md5($_POST['pass']);
    $sql  = mysql_query("select * from login where user= '$user' AND pass='$pass' LIMIT 3 ") or die( mysql_error());
    $data = mysql_fetch_array($sql);
    $UserName = $data['user'];
    $Password = $data['pass'];
    $type = $data['type'];
    $name = $data['name'];
    if($user==$UserName && $pass==$Password){
        session_start();
        $_SESSION['name']=$name;
        if($type=='admin'){
            header("location: admin.php");
        }else if($type=='vender1'){
            header("location: vender1.php");
        }
    }
}
?>

数据库包含:id, name, user, pass, type

所以我的问题是;输入正确的密码后,相同的页面仍然打开,但应该打开admin.php。

   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title> Log In </title>
  <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
  </head>
  <body>
  <br /><br /><br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br />
  <div id="mainWrapper">
   <?php include_once("header.php") ?>
  <div id="pageContent"><br /><br /><br />
   <div align="right" style="margin-right:24px; color:#FF0000">
   <h2>Please Log In To Manage the Inventary</h2>
   <br /><br />
   <form id="form" name="form" method="post" action="login.php">
    <h2 style="padding-right:200px;">User Name:</h2>
      <input name="user" type="text" id="user" size="40" style="height:20px;" />
     <br /><br />
     <h2 style="padding-right:210px;">Password:</h2>
    <input name="pass" type="password" id="pass" size="40" style="height:20px;" />
   <br />
   <br />
   <br />
     <input type="submit" name="log" id="log" value="Log In" />
  </form>
   <p>&nbsp; </p>
  </div>
 <br />
  <br />
 <br />
</div>
 </div>
 </body>
 </html>

我被困在这里…请把我从这儿弄出去。

我无法测试你的代码但是,我给你一个使用mysqli的例子。希望能有所帮助。

if(isset($_POST["btnLogin"]))
    {
        if(trim($_POST["txtEmail"])!=null && trim($_POST["txtPassword"])!=null)
        {
            $sql=$mysqli->prepare("select * from usermaster where email=?");
            $sql->bind_param("s",$_POST["txtEmail"]);
            $sql->execute();
            $sql->bind_result($id,$email,$password,$usertype,$registerdate,$status);
            if($sql->fetch()>0 &&  $_POST["txtPassword"]==$password)
            {
                $_SESSION["userId"]=$id;
                $_SESSION["userName"]=$email;
                $_SESSION["userType"]=$usertype;
                if(strToLower($usertype)=="admin")
                {
                    header("location:admin/manage_users.php");
                }
                else
                {
                    header("location:client/edit_user.php");
                }
            }
            else
            {
                $msg="Invalid Username and Password";
            }
        }
        else
        {
            $msg="Enter email and password";
        }
    }

你好Deep singh

试试这个

对于哈希函数使用SHA1等加密方法。

$sql=mysql_query("select * from login where user= '".$user."' AND pass='".$pass."'") or die(mysql_error());

不要求在查询中给出限制,因为用户名和密码必须是唯一的,所以我们总是只得到一条记录。

不需要再次检查用户名和密码因为我们在查询中写入了条件,只检查行数或其他选项

if(mysql_num_rows($sql) > 0 )
{  
    // store data in session 
    // some actions
}
else
{
    // some actions
}

希望,会帮助你。祝你好运. .div ['}