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

PHP登录系统输入正确凭证仍自定向问题求助

登录成功后仍跳转回登录页的问题修复方案

核心问题及修复

  1. Session未初始化
    login.php中操作$_SESSION前未调用session_start(),导致会话变量无法存储。需在文件最顶部添加:

    <?php
    session_start(); // 新增这行
    require 'database.php';
    if(!empty($_SESSION['id'])){
        header("Location: index.php");
        exit();
    }
    ?>
    
  2. Session校验键不匹配
    login_index.php中校验的是$_SESSION['user'],但login.php中仅设置了$_SESSION['id']和$_SESSION['login'],导致校验失败跳转回登录页。修改login_index.php的校验逻辑:

    <?php
    session_start();
    // 改为校验已设置的session键
    if (!isset($_SESSION['id']) || !$_SESSION['login']) {
        header("Location: login.php");
        exit();
    }
    ?>
    
  3. 跳转后未终止代码执行
    login.php中登录成功后的header("Location: login_index.php")后未加exit(),可能导致后续代码干扰会话状态,需补充:

    if($password == $row['password']){
        $_SESSION["login"] = true;
        $_SESSION["id"] = $row["id"];
        header("Location: login_index.php");
        exit(); // 新增这行
    }
    

重要安全与逻辑优化

  • SQL注入防护:直接拼接用户输入到SQL语句存在注入风险,改用mysqli预处理语句:

    $stmt = $conn->prepare("SELECT * FROM cargo WHERE email = ?");
    $stmt->bind_param("s", $email);
    $stmt->execute();
    $result = $stmt->get_result();
    $row = $result->fetch_assoc();
    
  • 密码明文存储风险:数据库中存储明文密码极不安全,注册时需用password_hash()加密,登录时用password_verify()校验:

    // 注册时存储密码
    $hashedPassword = password_hash($password, PASSWORD_DEFAULT);
    // 登录时校验
    if(password_verify($password, $row['password'])){
        // 登录成功逻辑
    }
    
  • 表单验证逻辑调整:先检查字段是否为空,再查询数据库,避免无效查询:

    if(isset($_POST["login"])){
        $email = trim($_POST["email"]);
        $password = trim($_POST["password"]);
    
        if(empty($email) || empty($password)){
            echo"<div class='alert alert-danger'>所有字段不能为空</div>";
        } else {
            // 数据库查询逻辑
        }
    }
    
  • 错误提示样式修正:错误提示使用alert-danger而非alert-success,符合语义:

    echo"<div class='alert alert-danger'>密码错误</div>";
    

内容的提问来源于stack exchange,提问作者Ricardo Domingo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 01:38:09