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

时间:2014-03-22 17:03:24

标签: 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);

?>

2 个答案:

答案 0 :(得分:0)

  1. 问题可能是由于您使用的链接,因为您可能忘记输入正确的脚本名称。
  2. 我认为您的代码中没有任何错误,但是在没有GET变量的情况下运行脚本时可能会遇到一些问题,因此请替换以下行:
  3.    if ($_SERVER['REQUEST_METHOD'] == 'GET')
           {
            ...
            }
    

    使用:

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

答案 1 :(得分:0)

在盯着这段代码几个小时之后,我终于弄清楚我做错了什么。我正在回应错误的页面!应该是&#39; remove_user.php&#39;而不是&#39; user_accounts.php&#39; (这个页面是.txt文件,而不是.php!)。

感谢所有有输入的人:)