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

PHP实现用户输入存储、管理后台搭建及权限控制作业问题

PHP作业问题解决方案

首先修正原有代码的两处基础问题:

  1. process.php存在重复冗余,重复写了两次HTML头部和表单校验逻辑,可直接删除后半段重复内容
  2. process.php中变量名拼写错误,$EmailAdressErr 需修改为 $EmailAddressErr,否则会触发未定义变量报错
  3. 将content.php的form表单action属性改为action="process.php",让表单提交到校验处理文件

1. 存储用户提交的表单信息

作业场景推荐用CSV文件存储,无需配置数据库,实现简单。在process.php的校验逻辑末尾添加如下代码,校验通过后将数据写入CSV文件:

// 放在表单校验逻辑结束后
if (empty($FirstNameErr) && empty($LastNameErr) && empty($EmailAddressErr)) {
    // 打开csv文件,a模式为追加写入
    $file = fopen('users.csv', 'a');
    // 仅首次创建文件时写入表头
    if (filesize('users.csv') == 0) {
        fputcsv($file, ['First Name', 'Last Name', 'Email', '提交时间']);
    }
    // 写入用户提交的数据
    fputcsv($file, [$FirstName, $LastName, $EmailAddress, date('Y-m-d H:i:s')]);
    fclose($file);
}

需确保代码所在目录有写入权限,避免文件写入失败。

2. 提交成功的确认提示

在上述校验通过的判断分支里添加成功提示即可,还可增加跳转逻辑避免用户刷新重复提交:

if (empty($FirstNameErr) && empty($LastNameErr) && empty($EmailAddressErr)) {
    // 上方存储逻辑保留
    echo '<p style="color: green;">表单提交成功!感谢您的填写。</p>';
    // 可选:3秒后跳转回表单页
    header("refresh:3;url=content.php");
    exit;
}

3. 管理后台拉取数据展示

新建admin.php作为管理后台文件,读取CSV文件内容输出为表格:

<!DOCTYPE html>
<html>
<head>
    <title>用户提交数据管理</title>
    <style>
        table {border-collapse: collapse;}
        th, td {border: 1px solid #ccc; padding: 8px 12px;}
    </style>
</head>
<body>
<h2>用户提交的表单数据</h2>
<table>
<?php
$file = fopen('users.csv', 'r');
$line = 0;
while ($row = fgetcsv($file)) {
    echo '<tr>';
    foreach ($row as $col) {
        // 第一行是表头用th标签
        $tag = $line == 0 ? 'th' : 'td';
        echo "<$tag>".htmlspecialchars($col)."</$tag>";
    }
    echo '</tr>';
    $line++;
}
fclose($file);
?>
</table>
</body>
</html>

4. 管理后台密码访问权限控制

用HTTP基础认证实现,代码最简单适配作业需求,将以下代码放在admin.php最顶部即可:

<?php
// 配置管理员账号密码,可自行修改
$admin_account = 'admin';
$admin_password = 'test123';

// 校验账号密码
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) || 
    $_SERVER['PHP_AUTH_USER'] !== $admin_account || $_SERVER['PHP_AUTH_PW'] !== $admin_password) {
    header('WWW-Authenticate: Basic realm="管理后台"');
    header('HTTP/1.0 401 Unauthorized');
    echo '请输入正确的管理员账号密码后访问';
    exit;
}
// 后续接上面的表格展示逻辑
?>

如果需要自定义登录页面,可改用Session实现:校验账号密码通过后写入Session标识,后续访问后台时判断Session是否存在即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:54:06