从文本文件中读取PHP读取(我知道不安全)帮助读取文件

时间:2017-04-27 23:56:03

标签: php json login

这是我将注册数据保存到txt文件的代码。 但是,在登录页面上,我想要读取并验证此数据,以便用户可以登录。

    <?php
if (isset($_POST['submit'])) {
    $name = $_POST['forename'];
    $password = $_POST['password'];
    $email = $_POST['email'];
    $surname = $_POST['surname'];
    $text = $name . "|" . $password . "\n";
    $file = fopen('logins.txt', 'a+');

    if (fwrite($file, $text)) {
        echo 'saved';
    }
    fclose($file);
}

上面是保存数据的代码,读取它的方法还是最有效的方法?

非常感谢

2 个答案:

答案 0 :(得分:0)

我通常使用file_get_contents()file_put_contents(),即:

将文件内容读取到string

$file_contents = file_get_contents("some_file.txt"); # read the file contents

string附加到文件

$text = "some Text";
file_put_contents("some_file.txt", $text, FILE_APPEND); # use the FILE_APPEND flag to append to a file

答案 1 :(得分:0)

如果您正在从文本文件中读取数据,则可以使用file,将文本文件复制到一个行数组中。

要检查您的文件是否包含匹配的条目,您可以使用如下函数:

<?php
    function checkLogin($email,$password) {
        $logins=file('logins.txt'); //  read data into an array
        foreach($logins as $login) {
            $login=trim($login);    //  remove trailing line break
            $fields=explode('|',$login);    //  split a|b|c|d into an array
            if($fields[?]==$email && $fields[?]==$password) return true;
        }
        return false;
    }
?>

请注意,?占位符($fields[?])代表电子邮件和密码的位置,从0开始。例如,在您的代码中,如果按顺序添加它们,则它们将是$fields[1]$fields[2]

trim函数是在PHP的file函数中超越一个怪癖,其中包含以行结尾的行。

以此为例,从文本文件中读取数据。

这不是你应该如何处理密码。您永远不应该以纯文本形式存储密码,即使在数据库中也是如此!