我是php和mysql的新手,我已经开始编写一个简单的社交媒体网络。因此,我目前正在我的login.php页面上工作,该页面似乎没有错误,但是它没有按预期方式工作,我认为这是因为查询未被识别为语句。即“密码”不应突出显示为关键字,而是数据库中的一个字段。我也知道我没有考虑注射。当我在浏览器中运行此程序时,没有错误,但是即使用户在数据库中,它也会返回“ User notregistered”。任何见解将非常感谢!
这是我的代码:
<?php
include('classes/DB.php');
if (isset($_POST['login'])) {
$username = $_POST['username'];
$password = $_POST['password'];
if (DB::query('SELECT username FROM users WHERE username=:username',
array(':username'=>$username))) {
if (password_verify($password, DB::query("SELECT password FROM
users WHERE username=:username", array(':username'=>$username))[0]
['password'])) {
echo 'Logged in!';
} else {
echo 'Incorrect Password!';
}
} else {
echo 'User not registered!';
}
}
这是我的DB.php类:
<?php
class DB {
private static function connect() {
$pdo = new PDO('mysql:host=127.0.0.1;dbname=SocialNetwork;charset=utf8', 'root', '');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;
}
public static function query($query, $params = array()) {
$statement = self::connect()->prepare($query);
$statement->execute($params);
if (explode(' ', $query)[0] == 'SELECT') {
$data = $statement->fetchAll();
return $data;
}
}
}
答案 0 :(得分:-2)
python setup.py build