我想在我的网站上创建一个注册系统,只有有限的用户才能创建自己的帐户。我想使用.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
用户名和密码由:分隔,新用户由〜分隔,稍后我将使用正则表达式从txt文件中获取数据。
如何更正我的代码以保留新旧数据?
答案 0 :(得分:2)
您需要以附加模式打开文件
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);
}
答案 1 :(得分:1)
如果我们想要添加到文件,我们需要在追加模式下打开它。
因此您需要从只写模式更改为追加模式。
$file=fopen("user.txt","a");
答案 2 :(得分:1)
要回答您的问题:您必须明确地将$mode
参数传递给fopen()
函数等于'a'
。
但是,使用普通文件执行此任务看起来不错。主要是因为concurent写的麻烦。
答案 3 :(得分:1)
这真是一个糟糕的选择:安全性,读/写时间,并发请求等等都有很多缺点。 使用数据库并不困难,所以我的建议是使用数据库。
无论如何,您的问题仍在此处提出:php create or write/append in text file
答案 4 :(得分:1)
附加到文件的简单方法:
file_put_contents("C:/file.txt", "this is a text line" . PHP_EOL, FILE_APPEND | LOCK_EX);