这是我将注册数据保存到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);
}
上面是保存数据的代码,读取它的方法还是最有效的方法?
非常感谢答案 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
函数中超越一个怪癖,其中包含以行结尾的行。
以此为例,从文本文件中读取数据。
这不是你应该如何处理密码。您永远不应该以纯文本形式存储密码,即使在数据库中也是如此!