我开发了一个PHP登录系统,当用户登录并且帐户仍未被管理员激活时,它将显示message2
,如果用户输入了错误的凭据,它将显示mesage1
我差不多完成了这项工作。但我很困惑为什么条件总是低于message1
。
这是我的代码。
<?php
session_start();
if(isset($_POST["submit"])){
// windows
// $servername = "localhost";
// $username = "root";
// $password = "";
// $dbname = "loginDB";
// linux
$servername = "localhost";
$username = "root";
$password = "gmg0ddepfrxs";
$dbname = "loginDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn){
die("Connection failed: " . mysqli_connect_error());
}
$uname = $_POST["name"];
$password = $_POST["pwd"];
$sql = "SELECT * FROM user WHERE user_name='$uname' AND password='$password'";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)){
$utype = $row["user_type"]; //1
$status = $row["user_status"]; //0
$username = $row["user_name"]; //USERNAME
$password = $row["password"]; //PASSWORD NG USER
}
if (mysqli_num_rows($result) > 0 AND $utype == '1'){
// session_start();
$_SESSION["login"] = "access";
setcookie("name",$uname,false);
echo "<script>window.location.href=\"member.php\"</script>";
}elseif (mysqli_num_rows($result) <= 0) {
echo "<script>window.location.href=\"index.php?msg=1\"</script>";
}elseif ($utype == '0') {
echo "<script>window.location.href=\"index.php?msg=2\"</script>";
}
}
?>
这是我的HTML代码。
<html>
<form action='login.php' method="post">
<table cellspacing='5' align='center'>
<tr>
<td>Username:</td>
<td>
<input required type='text' name='name' />
</td>
</tr>
<tr>
<td>Password:</td>
<td>
<input required type='password' name='pwd' />
</td>
</tr>
<tr>
<td></td>
<td>
<input type='submit' name='submit' value='Submit' />
</td>
</tr>
</table>
<?php if(isset($_GET[ "msg"])){
$errmsg=$ _GET[ "msg"];
if($errmsg==1 ){ echo "<div style='text-align: center;'><h5> <font color = \"red\ "> Incorrect username and/or password! have you registered? </font></div>"; }
elseif ($errmsg==2 ) { echo
"<div style='text-align: center;'><h5> <font color = \"red\ "> Contact admin to activate your account. </font></div>"; } } ?>
</form>
<div style="text-align: center;">
<a href="register.php">
<button>Register here</button>
</a>
</div>
</html>
答案 0 :(得分:0)
使用简单的标头位置来重定向您的用户:
<?php
session_start();
if(isset($_POST["submit"])){
$servername = "localhost";
$username = "root";
$password = "gmg0ddepfrxs";
$dbname = "loginDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn){
die("Connection failed: " . mysqli_connect_error());
}
$uname = $_POST["name"];
$password = $_POST["pwd"];
$sql = "SELECT * FROM user WHERE user_name='$uname' AND password='$password'";
$result = mysqli_query($conn, $sql);
$row = mysql_fetch_assoc($result);
$totalRows_result = mysql_num_rows($result);
if ($totalRows_result == 0) {
header("location: index.php?msg=1");}
$utype = $row["user_type"]; //1
$status = $row["user_status"]; //0
if ($utype == '1'){
$_SESSION["login"] = "access";
setcookie("name",$uname,false);
header("location: member.php");
} else {
header("location: index.php?msg=2");
}
}
?>