我在本地主机上使用php制作登录系统。
注册新用户时,
- 用户名存储在/registration/usernames.txt,
中
- 密码存储在/registration/passwords.txt中
当我将这些内容写入文件usernames.txt
和passwords.txt
时,我会这样做:
fwrite( $file_usernames, $usernameR.', ' );
fwrite( $file_passwords, $passwordR.', ' );
所以当:
Username: John
Password: blablabla
输入,它存储在文件usernames.txt中:
John,
,在passwords.txt中,它存储为:
blablabla,
现在,当我想登录任何注册用户时,首先我要创建一个关联数组,其中“key”是用户名,“value”是密码然后在数组中循环并查找用户名和密码是对的。
我试着这样做:
// create array of: "username" => "password"
$file_usernames_read = fread( fopen( "./registration/usernames.txt", "r" ), filesize( "./registration/usernames.txt" ) );
$file_passwords_read = fread( fopen( "./registration/passwords.txt", "r" ), filesize( "./registration/passwords.txt" ) );
$usernames = array( $file_usernames_read );
$passwords = array( $file_passwords_read );
$together = array_combine( $usernames, $passwords );
但它没有以这种方式工作,我没有其他方式可以尝试。
感谢您的帮助。
答案 0 :(得分:0)
这应该这样做:
$usernames = explode(", ", file_get_contents("./registration/usernames.txt"));
$passwords = explode(", ", file_get_contents("./registration/passwords.txt"));
$map = array_combine($usernames, $passwords);
但一般情况下,您应该先将密码加密(使用password_hash),然后再将其存储在文本文件中。
您还应该考虑使用数据库系统来存储用户数据,而不是纯文本文件。