从文本文件进行PHP登录

4

您好,我查看了其他关于此问题的帖子,但它们已经有2年或更多年的历史,所以我认为重新开始更好。

正如标题所述,我正在尝试使用php创建一个登录页面。用户应该能够登录到一个特殊的会员页面。用户名和密码存储在一个文本文件中(请注意,这是为了完成任务,否则我会使用SQL)。我的代码如下:

  ?php

  echo "Username: <input type=\"text\" name=\user-name\"><br>";
 echo "Password: <input type=\"text\" name=\pass-word\"><br>";
 echo "<input type=\"submit\" value=\"login\" name=\"login\"><br>";

$userN = $_POST['user-name'];
$passW = $_POST['pass-word'];
$userlist = file ('users.txt');
$checkUser =$userlist[0];

if (isset($_POST['login']))
{
if ($userN == $userlist)
{
    echo "<br> Hi $user you have been logged in. <br>";
}
else
{
echo "<br> You have entered the wrong username or password. Please try again. <br>";
}
}
?>
<form action="login.php" method="post">
Username: <input type="text" name="username">
<br />
Password: <input type="password" nme="pass"
<br />
<input type="submit" name="submitlogin" value="Login">

我知道需要使用explode函数,并且需要定义文本文件的设置方式。理想情况下,用户名|密码在名为users.txt的文件中。用户文件还必须包含诸如电子邮件(可以替换用户名)、客户姓名、客户的业务名称以及会员特价等信息。


你的确切问题是什么?那段代码有什么问题,你尝试过什么来解决它? - Nico Haase
1个回答

2
假设您的文本文件长这样:
pete|petepass|pete@somesite.com|Pete Enterprizes
john|johnpass|john@somedomain.com|John Corporation

您的代码可以如下所示:

您的代码可以像这样读取:

$userN = $_POST['user-name'];
$passW = $_POST['pass-word'];
$userlist = file ('users.txt');

$email = "";
$company = "";

$success = false;
foreach ($userlist as $user) {
    $user_details = explode('|', $user);
    if ($user_details[0] == $userN && $user_details[1] == $passW) {
        $success = true;
        $email = $user_details[2];
        $company = $user_details[3];
        break;
    }
}

if ($success) {
    echo "<br> Hi $userN you have been logged in. <br>";
} else {
    echo "<br> You have entered the wrong username or password. Please try again. <br>";
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接