You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP登录页面按用户类型跳转对应落地页的实现问题

实现用户登录后按类型跳转不同页面的修改方案

需要移除的代码

  1. 登录成功分支里的固定跳转语句:
    header("Location:dashboard.php");
    
  2. 你之前错误添加到查询语句中的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 06:55:16