我正在处理基于平面文件的登录会话。我将其修改为仅需要MD5
密码。这是包含用户和密码{t}的txt文件。
MD5
这是我的PHP代码的一部分。
admin:5f4dcc3b5aa765d61d8327deb882cf99
user1:7c6a180b36896a0a8c02787eeafb0e4c
user2:6cb75f652a9b52798eb6cf2201057c73
我的问题:它只允许我访问列表txt中的最后一个密码。 第一个和第二个密码不起作用。
你能发现代码中的任何错误吗?
答案 0 :(得分:1)
我不太了解PHP,但是我的代码中的问题出现在$this->userData['password'] = $password; }
中,并且您正在循环遍历文件内容以及您分配的每次迭代。
//Pass in user name to fetch password for the user
function parseUserFile($userName) {
$this->userData = array();
if(is_readable($this->userFile)) {
$lines = file($this->userFile);
foreach($lines as $line) {
$line = trim($line);
if($line == "") { continue; }
$parts = preg_split('/:/', trim($line));
if(count($parts) >= 2) {
list($user, $password) = $parts;
//Get password for the user.
if($user == $userName)
$this->userData['password'] = $password; } } }
return((count($this->userData)) ? count($this->userData) : FALSE );
}// end parseUserFile()
因此,在每次迭代中,userData数组的相同项目(即带有密钥'密码'的项目)将被该行中的密码值覆盖。因此,在循环完成文件中的所有项目之后,它只保留最后一个密码的值。
相反,你应该做的是:
<div data-sly-test="${properties.reduceImage}" data-sly-unwrap>
<div class="reduce-image">
</div>
</div>