当密码错误时,我的代码的else部分正在工作。但是,当密码正确时,它不会转到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> </p>
</div>
<br />
<br />
<br />
</div>
</div>
</body>
</html>
我被困在这里..请让我从这里出来。
答案 0 :(得分:2)
我无法测试您的代码。但是,我正在使用mysqli给你一个样本。希望它有所帮助。
Unknown CMake command "enable_langauge".
答案 1 :(得分:1)
Hello 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
}
希望,能帮助你。祝你好运.. [&#39;}