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

PHP从$_SESSION获取邮箱失败:解决未定义数组键错误

问题:PHP中$_SESSION邮箱未定义导致PDF存储时无法关联邮箱

我正在学习PHP,尝试搭建一个可将PDF与$_SESSION中存储的邮箱一并存储的网站,但始终出现**"undefined array key error"(未定义数组键错误)**。以下是核心代码:

注册表单

<form action="insert.php" method="post">
    <div class="container" style="margin-left: 30%; margin-top: 15%">
        <div class="card align-content-center" style="width: 50%; padding-left: 13%">
            <div class="form-row mb-2"></div>
            <div class="form-row mb-2">
                <div class="col-2">
                    <label for="firstName">Nome:</label>
                </div>
                <div class="col-3">
                    <input type="text" name="first_name" id="firstName" required>
                </div>
            </div>
            <div class="form-row mb-2">
                <div class="col-2">
                    <label for="email">Email:</label>
                </div>
                <div class="col-3">
                    <input type="email" name="email" id="email" required>
                </div>
            </div>
            <div class="form-row mb-2">
                <div class="col-2">
                    <label for="Password">Password:</label>
                </div>
                <div class="col-3">
                    <input type="password" name="password" id="Password" required>
                </div>
            </div>
            <div class="form-row mb-2">
                <div class="col-2 offset-4">
                    <input type="submit" value="Invia" class="btn btn-outline-primary" onclick="return verifica();">
                </div>
            </div>
        </div>
    </div>
</form>

这部分很基础,表单会将数据提交至insert.php页面进行存储。

insert.php代码

<?php

include('conn.inc');

$first_name = $_REQUEST['first_name'];
$email      = $_REQUEST['email'];
$password   = password_hash($_REQUEST['password'], PASSWORD_DEFAULT);

// 表名: ListaUtenti
$sql = "INSERT INTO ListaUtenti (first_name, email, password) VALUES ('$first_name','$email','$password')";

if(mysqli_query($conn, $sql)){
    echo "<h3>Dati immagazzinati correttamente in SQL.</h3>";

    echo nl2br("
$first_name
 $email
 $password");
} else{
    echo "ERRORE: Qualcosa non è andato come doveva."
        . mysqli_error($conn);
}

// 关闭连接
mysqli_close($conn);
?>

登录代码

<?php

$_SESSION['connesso'] = false;
if (isset($_POST['username']) && isset($_POST['password'])) {
    $first_name = $_POST['username'];
    $password = $_POST['password'];
    $email = $_POST['email'];
    // 获取表单中的用户名和密码

    // 检查用户名和密码是否匹配数据库中的记录
    $result = mysqli_query($conn, "SELECT * FROM listautenti WHERE first_name = '$first_name' AND password = '$password'");
    if (mysqli_num_rows($result) == 1) {
        // 将用户名存入会话,标记用户已登录
        $_SESSION['username'] = $first_name;
        $_SESSION['connesso'] = true;
        header("Location: index.php");
        exit;
    } else {
        $error = "Nome o password errati.";
    }
}
?>

首页PDF存储代码(邮箱存储功能异常)

<?php

$message = "File caricato correttamente.";
if(isset($_POST['email'])){
    $_SESSION['email'] = $_POST['email'];
}
// 连接字符串
if (isset($_POST["submit"])) {
    if (is_uploaded_file($_FILES["file"]["tmp_name"]) && ($_FILES["file"]["type"] == 'application/pdf')) {
        echo "";
        // 文件名添加随机数,避免被覆盖
        $pname = rand(1000, 10000) . "-" . $_FILES["file"]["name"];
        // 文件临时存储名
        $tname = $_FILES["file"]["tmp_name"];
        // 上传路径
        $uploads_dir = 'img';
        // 将文件移动到指定目录
        move_uploaded_file($tname, $uploads_dir . '/' . $pname);
        // 插入数据库的SQL语句
        $sql = "INSERT into fileup(pdf, email) VALUES('$pname', '".$_SESSION['email']."')";
        if (mysqli_query($conn, $sql)) {
            echo "<script type='text/javascript'>alert('$message');</script>";
        } else {
            echo "Errore.";
        }
    } else {
        echo "Il file è di tipo errato.";
    }
}
?>

我一直无法理解为何邮箱无法存储,提前感谢解答。


问题解决

我仅在登录部分添加了以下代码:

$row = mysqli_fetch_assoc($result);
$_SESSION['email'] = $row['email'];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:50:31