我目前正在制作一个多级登录系统。我有表'admin'包含'level'字段。我想根据'admin'表中的'level'字段将管理员重定向到页面。如果级别 1 将重定向到 SIPP-Litbang / admin.php 页面,那么如果级别为2将重定向到 SIPP-Litbang / admin-pp-sipp -litbang.php 即可。 第一步,我在class.admin.php页面上创建方法,这里是代码:
public function login($email, $password)
{
$stmt = $this->conn->prepare("SELECT * FROM admin WHERE email_admin = :email");
$stmt->bindParam(':email',$email);
$adminRow = $stmt->fetch(PDO::FETCH_ASSOC);
if ($stmt->rowCount() == 1) {
if ($adminRow['pass_admin'] == md5($password)) {
$_SESSION['is_logged_in']=true;
$_SESSION['adminSession'] = $adminRow['id_admin'];
$_SESSION['levelSession'] = $adminRow['level'];
return true;
}
} else {
return false;
}
}
public function cekSession(){
if (isset($_SESSION['adminSession'])&&$_SESSION['levelSession']==1) {
header('Location: \SIPP-Litbang\admin.php');
return true;
}
elseif (isset($_SESSION['adminSession'])&&$_SESSION['levelSession']==2) {
header('Location: \SIPP-Litbang\admin-pp-sipp-litbang.php');
return true;
}
}
loginadmin.php页面:
<?php
session_start();
include_once ('class.admin.php');
$admin = new Admin();
if (isset($_POST['login'])){
$user = trim(strip_tags($_POST['email']));
$pass = trim(strip_tags($_POST['pass']));
if ($admin->login($user, $pass)){
header("Location: \SIPP-Litbang\cekadmin.php");
}
else {
echo "GAGAL LOGIN! Email atau Password Salah";
}
}
接下来,在loginadmin.php页面上形成:
<form class="login100-form validate-form" method="post">
<span class="login100-form-title">
SIPP-Litbang Admin
</span>
<span class="login100-form-avatar">
<img src="images/lambang.png" alt="AVATAR">
</span>
<div class="wrap-input100 validate-input m-t-85 m-b-35" data-validate="Enter Email">
<input class="input100" type="text" name="email">
<span class="focus-input100" data-placeholder="Email"></span>
</div>
<div class="wrap-input100 validate-input m-b-50" data-validate="Enter Password">
<input class="input100" type="password" name="pass">
<span class="focus-input100" data-placeholder="Password"></span>
</div>
<div class="container-login100-form-btn">
<button class="login100-form-btn" type="submit" name="login">
Masuk
</button>
<li class="m-b-8">
<span class="txt1">
Lupa
</span>
<a href="lupapass.php" class="txt2">
Password?
</a>
</li>
</div>
</form>
最后,cekadmin.php页面:
<?php session_start();
require_once 'class.admin.php'; $adminlevel = new Admin();
$admin_id = $_SESSION['adminSession']; $level = $_SESSION['levelSession'];
if(isset($admin_id)&&$level==1){
header('Location: \SIPP-Litbang\admin.php'); } elseif(isset($admin_id)&&$level==2){
header('Location: \SIPP-Litbang\admin-pp-sipp-litbang.php'); } ?>
我尝试登录但结果是我的密码和电子邮件不匹配。我已经更改了密码两次,以防我忘记了密码,但它没有用。我的代码出了什么问题?请帮帮我。
答案 0 :(得分:-2)
我认为您的问题是您实际上并没有执行SQL语句。添加:
$stmt->execute();
后:
$stmt->bindParam(':email',$email);
再试一次?另外,要进行调试,可以在
之后添加echo语句if ($stmt->rowCount() == 1)
声明。如果有效,请告诉我!