php没有mysql数据库的用户注册系统


php User registration system without mysql database

我想在我的网站上创建一个注册系统,只有有限的用户才能创建他们的帐户。我想使用一个.txt文件来存储用户名和密码。

到目前为止,我有以下代码:

$uname=$_POST['usr'];
$pass=$_POST['pwd'];
if(empty($_POST["ok"])){echo "Could not insert data!";}
 else
{$file=fopen("user.txt","w");
echo fwrite($file,$uname);
fclose($file);}

这将从表单接收用户数据,并将其放入user.txt文件中。

我的问题是,当新数据插入到txt文件时,旧数据会被删除。

我想把数据保存在像一样的txt文件中

  foo:12345~bar:1111

用户名和密码由:分隔,新用户由~隔离,稍后我将使用regex从txt文件中获取数据。

如何更正代码以保留新数据和旧数据?

您需要在附加模式中打开文件

http://php.net/manual/en/function.fopen.php

<?php
$uname = $_POST['usr'];
$pass = $_POST['pwd'];
if (empty($_POST["ok"])) {
    echo "Could not insert data!";
} else {
    $file = fopen("user.txt", "a");
    $srt="foo:".$uname."~bar:".$pass;// create your string 
    echo fwrite($file, $srt);
    fclose($file);
}

如果我们想添加到一个文件中,我们需要以附加模式打开它。

因此,您需要从只写模式更改为附加模式。

$file=fopen("user.txt","a");

要回答您的问题:您必须显式地将$mode参数传递给fopen(),函数等于'a'

但是,使用普通文件执行此任务似乎不是一个好主意。主要是因为并发写的麻烦。

这确实是一个糟糕的选择:在安全性、读/写时间、并发请求等方面都有很多缺点。使用数据库并不困难,所以我的建议是使用数据库。

无论如何,您的问题在这里被问到了:php在文本文件中创建或写入/附加

附加到文件的简单方法:

file_put_contents("C:/file.txt", "this is a text line" . PHP_EOL, FILE_APPEND | LOCK_EX);