Notice: Undefined variable: username in C:\xampp\htdocs\test_class.php
on line 20
Notice: Undefined variable: password in C:\xampp\htdocs\test_class.php
on line 20
Run Code Online (Sandbox Code Playgroud)
当我使用这段代码检查我的数据库的用户名和密码时,我收到上述错误.
<?php
class test_class {
public function __construct() {
}
public function doLogin() {
include("connection.php");
if (isset($_POST['username']))
{
$username= $_POST['username'];
}
if (isset($_POST['password']))
{
$password= $_POST['password'];
}
$query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$result = mysql_fetch_array(mysql_query($query));
if(!$result)
{
return 'assa';
}else{
return 'assa112121212';
}
}
}
?>
Run Code Online (Sandbox Code Playgroud)
sou*_*rge 11
这很可能意味着您的表单尚未提交.您应该确保只使用变量(如果存在).此外,如果没有验证,您永远不应该使用用户的输入.请尝试以下操作,例如:
if (isset($_POST['username']) && isset($_POST['password']))
{
$username= $_POST['username'];
$password= $_POST['password'];
$query = "SELECT *
FROM users
WHERE username = '".mysql_real_escape_string($username)."'
AND password = '".mysql_real_escape_string($password)."'";
$result = mysql_fetch_array(mysql_query($query));
# ...
}
else
{
return NULL;
}
Run Code Online (Sandbox Code Playgroud)
Aid*_*ell 10
这只是一个通知,即变量在查询中被引用而不在范围内.
在doLogin()的顶部定义$ username和$ password并将它们初始化为Null或类似.然后再检查一下.
无论是否设置了$ username和$ password,您似乎也在执行查询.你应该做更多的事情:
if( isset($_POST['username']) && isset($_POST['password'])){
//create vars, do query
}else{
// Nothing to process
}
Run Code Online (Sandbox Code Playgroud)
这两个错误都发生在第20行,我假设是查询字符串插值.这里的问题是:
另外:在将它们像热煤一样转储到SQL中之前,先将变量转义为 PDO(我会选择)或mysql_escape_string()
祝你好运!