我制作了一个程序,可以让您输入用户名和密码,然后将其存储在文本文件中,当我要登录时,我要进行设置,以便它遍历具有usr / pass的文本文件查找您是否正确输入了凭据。我不确定该怎么做。请有人帮忙
答案 0 :(得分:0)
您可以将它们硬编码为数组:
$passwords = ['someuser' => 'password'];
如果您真的想将它们存储在文件中,那么您可以在不编辑代码的情况下更改它们(例如),一种方法是使用如下代码:
$passwords = ['someuser' => 'password'];
file_put_contents('passwords.php', '<?php return '.var_export($passwords,true).';');
这将创建一个文件,其中包含以下内容(不能使用空格):
<?php return array('someuser' => 'password');
然后,当您需要将其导入代码时,只需使用
$passwords = require 'passwords.php';
这会将文件的内容放入该变量中。然后,您可以像这样轻松地检查它们:
$passwords = require 'passwords.php';
if(isset($passwords[$user]) && $passwords[$user] == $password){
//do something when logged in
}
您还可以修改数组,然后保存它:
$passwords = require 'passwords.php';
$passwords['someuser'] = $new_password;
file_put_contents('passwords.php', '<?php return '.var_export($passwords,true).';');
当然,您甚至可以在文件中手动编辑密码。有点像配置文件。
正如我在评论中所提到的,最好使用数据库,加密以及不如您所说的那样使用
这仅适用于我和其他人
只要您没有任何第三方数据,并且可以接受这样做的安全隐患,那么您就可以通过上面的命令que窃。
解释一下:
Var Export将数组转换为有效的PHP代码,但采用字符串格式。然后,如果我们向其中添加PHP开放标记<?php
,返回调用return
和结尾;
并将其保存在PHP文件中,那么我们现在有了一个带有动态密码的有效PHP文件保存为数组。
当您有一个返回数组的文件时,可以像上面显示的那样通过设置变量将其注入到变量中。然后,检查所有内容是否匹配很简单。
从性能上来讲,您可以省下大部分代价来保存文件,像这样导入数组非常快,这是关键查找。然后遍历文件并尝试从文件中解析数据要快得多。
您必须正确设置路径和文件名以及所有Jazz,但这应该是相当困难的。
答案 1 :(得分:-1)
示例text.txt文件:
$ cat text.txt
text1|answer1 text2|answer2 text3|answer3
示例代码:
cat test2.php
<?php
$text="text1";
$file="text.txt";
$f = fopen($file, 'r');
while($data = fgets($f))
{
$ar_data=explode('|',$data);
if($ar_data[0]==$text) {
echo "looking for: ".$ar_data[1]."\n";
}
}
<?php
$text="text1";
$file="text.txt";
$f = fopen($file, 'r');
while($data = fgets($f))
{
$ar_data=explode('|',$data);
if($ar_data[0]==$text) {
echo "looking for: ".$ar_data[1]."\n";
}
}
用法示例:
文本文件不是验证用户凭据的好方法。您应该尝试sql数据库。例如sqlite3。