我正在使用 Netbeans 在 PHP 中整理一个注册/登录表单。为了实现这一点,我在 scripts.php 文件中提供了登录、注册和数据库连接功能,该文件通过 include 调用加载。
好吧,我的登录功能使用这个
$username = mysql_real_escape_string($_POST['username']);
$password = sha1(mysql_real_escape_string($_POST['password']));
$query = sprintf("SELECT * FROM users WHERE username='%s' AND password='%s'", $username, $password);
$link = connectDB();
$results = mysqli_query($link, $query);
连接到数据库并获取结果。验证在稍后进行。
对于我的注册逻辑,我使用几乎相同的东西:
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
//check if user name and password match conditions
$link = connectDB();
$query = "SELECT * FROM users WHERE username = '" . $username . "'";
$results = mysqli_query($link, $query);
注册页面加载正常,但登录页面有一个错误文本打印输出,说明登录函数中有一个未定义的索引“用户名”。这发生在页面加载时,并且没有调用任何函数。
但是,注册功能中的布局几乎相同,我没有收到错误消息。
为什么会出现这种情况?
编辑
我发现了这个问题。
我正在使用打开数据库连接mysqli_connect
,但使用该mysql-real_escape_string
功能。两者互不相容,相加i
则截然不同。