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

如何在登录注册场景下无include/SQL/session实现PHP文件间传数据

无SQL、Session、Include的登录注册表单实现方案

因为不能使用数据库、Session和Include,我们可以将注册的用户信息存储到本地文本文件中,登录时读取文件内容进行校验。以下是具体实现:

一、修正注册流程代码

首先修复原代码的语法问题,并调整提交方式为更安全的POST:

注册页面(index.html)

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Gleacc</title>
        <link rel="stylesheet" href="styles.css">
    </head>
    <body>
        <h1>Gleacc GG</h1>
        <br>
        <form action="data/signedup.php" method="post">
            <label for="usn">
                <input placeholder="Username" name="usn" required>
            </label>
            <br>
            <label for="psw">
                <input placeholder="Password" name="psw" required>
            </label>
            <br>
            <input type="submit" value="注册">
        </form>
        <script src="scripts.js"></script>
    </body>
</html>

signedup.php(注册处理)

将用户信息写入本地文本文件,并输出登录表单:

<?php
$usn = $_POST['usn'];
$psw = $_POST['psw'];

// 存储用户信息的文件,确保data目录有写入权限
$userFile = '../users.txt';

// 以"用户名:密码"格式追加写入文件,加锁避免并发问题
file_put_contents($userFile, "$usn:$psw\n", FILE_APPEND | LOCK_EX);

// 输出登录表单
echo '<form action="data/logined.php" method="post">
        <input placeholder="Username" name="usn" required><br>
        <input placeholder="Password" name="psw" required><br>
        <input type="submit" value="登录">
      </form>';
?>

二、登录处理代码(logined.php)

读取存储的用户信息,校验登录凭证:

<?php
$loginUsn = $_POST['usn'];
$loginPsw = $_POST['psw'];

$userFile = '../users.txt';

// 读取所有用户信息,忽略空行和换行符
$users = file($userFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

$loginSuccess = false;
foreach ($users as $user) {
    list($storedUsn, $storedPsw) = explode(':', $user);
    if ($storedUsn === $loginUsn && $storedPsw === $loginPsw) {
        $loginSuccess = true;
        break;
    }
}

if ($loginSuccess) {
    echo '登录成功!';
} else {
    echo '用户名或密码错误,请重试。<br><a href="../index.html">返回登录</a>';
}
?>

关键注意事项

  • 安全优化:示例中密码为明文存储,生产环境必须使用password_hash()加密存储,登录时用password_verify()校验。
  • 文件权限:确保users.txt所在目录有PHP的写入权限,否则无法存储用户信息。
  • 重复注册校验:可在signedup.php中先读取文件,检查用户名是否已存在,避免重复注册。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 09:36:25