PHP登录页面按用户类型跳转对应落地页的实现问题
实现用户登录后按类型跳转不同页面的修改方案
需要移除的代码
- 登录成功分支里的固定跳转语句:
header("Location:dashboard.php"); - 你之前错误添加到查询语句中的
and type='$type'条件,原查询语句恢复为:$query = "select * from users where email='$email' and password='$password'";
需要添加的代码
在$_SESSION['user_email'] = $email;之后、原跳转语句的位置,添加以下逻辑:
// 获取用户类型 $type = $row['type']; // 根据类型设置跳转链接 if($type == 'model'){ $link = 'model-dashboard.php'; } elseif($type == 'photographer'){ $link = 'photographer-dashboard.php'; } else { // 未知类型的默认跳转,可根据需求调整 $link = 'dashboard.php'; } // 执行跳转 header("Location: $link");
修改后的完整代码
if(loggedIn()){ // 已登录状态下也同步按类型跳转 $email = $_SESSION['user_email']; $query = "select type from users where email='$email'"; $result = $db->query($query); if($row = $result->fetch_assoc()){ $type = $row['type']; if($type == 'model'){ $link = 'model-dashboard.php'; } elseif($type == 'photographer'){ $link = 'photographer-dashboard.php'; } else { $link = 'dashboard.php'; } header("Location: $link"); } else { header("Location:dashboard.php"); } exit(); } if(isset($_POST['login'])){ $email = mysqli_real_escape_string($db , $_POST['email']); $password = mysqli_real_escape_string($db , $_POST['password']); $query = "select * from users where email='$email' and password='$password'"; $result = $db->query($query); if($row = $result->fetch_assoc()){ if($row['status'] == 1){ $_SESSION['user_email'] = $email; if(isset($_POST['remember_me'])){ setcookie("user_email" , $email , time()+60*5); } // 根据用户类型跳转 $type = $row['type']; if($type == 'model'){ $link = 'model-dashboard.php'; } elseif($type == 'photographer'){ $link = 'photographer-dashboard.php'; } else { $link = 'dashboard.php'; } header("Location: $link"); exit(); }else { header("Location:login.php?err=" . urlencode("Contul nu este activat")); exit(); } }else { header("Location:login.php?err=" . urlencode("E-mail sau parola gresita")); exit(); } }
关键说明
- 确保
users数据表存在type字段,且字段值为model或photographer(注意大小写完全匹配) - 你之前尝试失败的核心原因:查询语句中添加的
and type='$type'条件无效,因为登录请求并未传递$type参数,导致查询不到用户记录,跳转逻辑无法触发
内容的提问来源于stack exchange,提问作者afs
相关产品推荐
相关产品推荐

