Php txt数据库阅读

时间:2015-09-11 19:29:23

标签: php database text flat-file

我正在处理基于平面文件的登录会话。我将其修改为仅需要MD5密码。这是包含用户和密码{t}的txt文件。

MD5

这是我的PHP代码的一部分。

admin:5f4dcc3b5aa765d61d8327deb882cf99
user1:7c6a180b36896a0a8c02787eeafb0e4c
user2:6cb75f652a9b52798eb6cf2201057c73

我的问题:它只允许我访问列表txt中的最后一个密码。 第一个和第二个密码不起作用。

你能发现代码中的任何错误吗?

1 个答案:

答案 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>