【发布时间】:2014-06-22 08:20:19
【问题描述】:
我有一个带有 2 个字段的 html 表单:用户名和密码。
还有一个预定义了用户名和密码的数据库。还有一个验证文件,用于检查用户输入的用户名和密码是否正确。验证码是这样的:
<?php
session_start();
$host="host_name";
$username="urn";
$password="pass";
$db_name="db";
$tbl_name="tbl";
mysql_connect($host, $username, $password) or die ("Could not connect");
mysql_select_db($db_name) or die ("could not select");
$username= mysql_real_escape_string($_POST['username']);
$password= mysql_real_escape_string($_POST['password']);
$result = mysql_query("SELECT * FROM `users` WHERE `username` = '$username'
AND `password` = '$password' INTO OUTFILE log.txt LIMIT 1;");
$count=mysql_num_rows($result);
if($count==1){
session_register("username");
session_register("password");
header("location:file.php");
}
else {
echo "Wrong Username or Password";
echo '</br> <a href="/index.php" > Try again </a>';
}
mysql_close();
?>
我需要将某人尝试使用的任何用户名和密码保存到 .txt 文件中。 INTO OUTFILE 东西不起作用,但我不知道我是否输入正确。
任何帮助表示赞赏。谢谢
【问题讨论】:
-
出于安全原因,mysql 不会追加或覆盖已经存在的文件。它只能为
into outfile目标创建新文件。您可以使用file_put_contents()或其他正常的文件系统操作来写出您的日志文件。 -
只需设置另一个查询来跟踪该文件,就像一个计数器。
-
离题但非常重要:使用 PDO 或 MySQLi | mysql 函数已过时 - sql 可注入 - 从 php 中删除
-
因此,除了不对数据库中的密码进行加盐和散列处理之外,您还希望将用户密码存储在文本文件和会话中。我想知道您的用户对此有何看法。
-
@MarcB file_put_contents() 必须插入到表单文件或验证文件中?