52

我正在尝试将用户名和密码写入 txt 文件中的新行。txt 文件中的输出应该是这样的。我知道这不是很安全,但仅用于学习目的

Sebastian   password
John        hfsjaijn

这就是我到目前为止所拥有的

if(isset($_GET['register'])) //  
{
    $user  = $_GET['username'];
    $password=$_GET['password'];
    $fh = fopen("file.txt","a+");
    fwrite($fh,$user."\n"); //write to txtfile
    fwrite($fh,$password."\n"); // write to txtfile
    fclose($fh);
}

编辑:这是我的解决方案:

if (isset($_POST['register'])) {
   $user  = $_POST['username'];
   $password = $_POST['password'].PHP_EOL;
   $fh = fopen("file.txt","a+");
   fwrite($fh,$user." ".$password); //write to txtfile
  
   fclose($fh);
}
4

4 回答 4

112

使用PHP_EOL产生\r\n\n

$data = 'my data' . PHP_EOL . 'my data';
$fp = fopen('my_file', 'a');
fwrite($fp, $data);
fclose($fp);

// 文件输出

my data
my data
于 2013-02-28T08:03:55.680 回答
1

您在用户名和密码上都附加一个换行符,即输出类似于

Sebastian
password
John
hfsjaijn

fwrite($fh,$user." ".$password."\n");改为将它们放在一条线上。
或使用fputcsv()写入数据并fgetcsv()获取数据。这样,您至少可以避免编码问题,例如$username='Charles, III';

...即搁置所有关于将纯密码存储在纯文件中并使用 _GET 进行此类操作的错误(改用 _POST);-)

于 2013-02-28T08:01:55.163 回答
1
fwrite($handle, "<br>"."\r\n");

在下面添加这个

$password = $_POST['password'].PHP_EOL;

这。.

于 2014-12-02T20:53:44.240 回答
0

你这样保存怎么样?也许是用户名:密码格式,所以

sebastion:password123
anotheruser:password321

然后您可以使用它list($username,$password) = explode(':',file_get_contents('users.txt')); 来解析您的数据。

于 2019-01-26T17:05:48.563 回答