Php 单击相应链接时从.txt文件中删除两行

Php 单击相应链接时从.txt文件中删除两行,php,Php,我正在尝试创建一种从user_accounts.txt中删除帐户的方法,该文件将用户名和密码存储在单独的行中 我正在尝试创建一个未删除帐户的列表,以替换.txt文件。。。因此,当点击链接时,帐户将被删除 我已经设法让用户名显示为链接。然而,当我点击一个链接时,它不会删除它,它会将我转移到一个错误为404的页面 有人知道我做错了什么吗 在任何人提到在.txt文件中存储帐户详细信息的安全问题之前,我完全知道这一点。我仍然在学习PHP,我首先专注于学习和理解基础知识。我将在以后的某个日期,一旦我有了它

我正在尝试创建一种从user_accounts.txt中删除帐户的方法,该文件将用户名和密码存储在单独的行中

我正在尝试创建一个未删除帐户的列表,以替换.txt文件。。。因此,当点击链接时,帐户将被删除

我已经设法让用户名显示为链接。然而,当我点击一个链接时,它不会删除它,它会将我转移到一个错误为404的页面

有人知道我做错了什么吗

在任何人提到在.txt文件中存储帐户详细信息的安全问题之前,我完全知道这一点。我仍然在学习PHP,我首先专注于学习和理解基础知识。我将在以后的某个日期,一旦我有了它的工作重点安全。我的网站仅用于教育目的

非常感谢您的帮助

我的代码是:

<?php

if ($_SERVER['REQUEST_METHOD'] == 'GET')
{
$delete = htmlspecialchars($_GET["account"]);

$newAccountList = "";

$file = fopen("user_accounts.txt", "r") or exit ("Unable to open file");

while(!feof($file))
{
$accountUsername = trim(str_replace("\n", "", fgets($file)));
$accountPassword = trim(str_replace("\n", "", fgets($file)));

if($delete != $accountUsername)
{
if($newAccountList == "")
{
$newAccountList = $accountUsername;
}
else
{
$newAccountList = $newAccountList."\n".$accountUsername;
}

$newAccountList = $newAccountList."\n".$accountPassword;
}
}
$file = fopen("user_accounts.txt", "w") or exit ("Unable to open file");

fwrite($file, $newAccountList);

fclose($file);
}
?>

<?php

$file = fopen("user_accounts.txt", "r") or exit ("Unable to open file");    
while(!feof($file))
{
$username = fgets($file);
$password = fgets($file);

echo "<a href='user_accounts.php?account=".$username."'>".$username."</a><br><br>";
}

fclose($file);

?>
问题可能是因为您正在使用的链接,因为您可能忘记输入脚本的正确名称。 我不认为您的代码中有任何错误,但在运行没有GET变量的脚本时,您可能会遇到一些问题,因此请替换以下行: 与:

if(isset($_GET['account'])){
...
}

在盯着这个代码看了几个小时后,我终于明白我做错了什么。我回错页了!应该是“remove_user.php”而不是“user_accounts.php”。此页面是一个.txt文件,而不是.php


感谢您的宝贵意见:

为什么不使用数据库?此外,将密码存储为纯文本也是非常糟糕的,特别是当您的文件位于根目录中且未受保护时。这是一项大学作业。我的导师要求将其保存在.txt文件中。我还在学习基础知识。正如我在最初的帖子中提到的,我意识到了安全问题;但是如果你不能使用数据库来完成任务,我会理解的,但是你至少应该加密你的密码。如果你得到的是404,那就意味着它根本找不到你的php。这表明问题出在你的链接上。出现404错误的页面是否在浏览器中显示与第一个包含用户名列表的页面相同的URL?此外,在运行之前先步行…不要担心加密内容。你知道这不是正确的方法,在这个阶段已经足够了=我已经更改了我的链接并使用了ifisset$_GET['account']{,但我仍然得到了/error_404?的东西。
if(isset($_GET['account'])){
...
}