我有以下php代码
<?php
if (isset($_POST['submit_btn']))
{
$username = $_POST['name'];
$password = $_POST['pwd'];
if (empty($username))
{
echo "Please enter a username<br>";
} else $username = $username;
if (empty($password))
{
echo "Please enter a password<br>";
} else $password = $password;
$text = $username . "," . $password . "\n";
$fp = fopen('accounts.txt', 'a+');
if(!empty($username) && !empty($password) && fwrite($fp, $text)) {
header('Location: login.html');
}
fclose ($fp);
}
?>
我要求用户为我的页面创建一个登录名,这样他们就必须输入用户名和密码。我正在获取用户信息并将其存储在一个文本文件中(我知道这很糟糕,但它是出于教育目的,所以我必须这样做),格式如下:
user1,password1
user2,password2
我也在进行错误检查,以确保用户在输入字段中输入内容,如果他们不在屏幕上显示消息,告诉他们输入用户名或密码。 我的问题是如何阻止用户使用与其他一些用户名相同的用户名
A user enter the following data
simon,password123
and another user enters
simon,adminpassword
现在这是允许的,但是如何制作它以便我的代码中不允许这样做。
答案 0 :(得分:1)
尝试这样的事情:
$path = 'accounts.txt';
if (file_exists($path)) {
$contents = file_get_contents($path);
$contents = explode("\n", $contents);
$users = array();
foreach ($contents as $value) {
$user = explode(',', $value);
$users[$user[0]] = $user[1];
}
if (isset($users[$_POST['name']])) {
// User exists!
}
}