Я новичок в PDO, и я пытаюсь извлечь данные, но каждый раз, когда я ввожу свои данные, я получаю неправильную информацию об ошибке. Моя регистрация работает отлично, но когда я вхожу в регистрационные данные, это показывает мне неправильные данные. Здесь я прикрепляю код. подключение файлаЯ пытаюсь создать логин через pdo sqlsrv
class Database {
private $host = "*****";
private $dbname = "*****";
private $username = "*****";
private $password = "*****";
public $conn;
public function dbConnection() {
$this->conn = null;
try {
$this->conn = new PDO("sqlsrv:Server=" . $this->host . ";Database=" . $this->dbname, $this->username, $this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $exception) {
echo "Connection error: " . $exception->getMessage();
}
return $this->conn;
}
}
мой класс
require_once('dbconfig.php');
class USER {
private $conn;
public function __construct() {
$database = new Database();
$db = $database->dbConnection();
$this->conn = $db;
}
public function doLogin($uname,$umail,$upass) {
try {
$stmt = $this->conn->prepare("SELECT user_id, user_name, user_email, user_pass FROM cust WHERE user_name=:uname OR user_email=:umail ");
$stmt->execute(array(':uname'=>$uname, ':umail'=>$umail));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() == 1) {
if(password_verify($upass, $userRow['user_pass'])) {
$_SESSION['user_session'] = $userRow['user_id'];
return true;
} else {
return false;
}
}
} catch(PDOException $e) {
echo $e->getMessage();
}
}
}
вызов doLogin()
<?php
session_start();
require_once("class.user.php");
$login = new USER();
if($login->is_loggedin()!="")
{
$login->redirect('services.php');
}
if(isset($_POST['btn-login']))
{
$uname = strip_tags($_POST['txt_uname_email']);
$umail = strip_tags($_POST['txt_uname_email']);
$upass = strip_tags($_POST['txt_password']);
if($login->doLogin($uname,$umail,$upass))
{
$login->redirect('services.php');
}
else
{
$error = "Wrong Details !";
}
}
?>
Как вы сохранить пароль? Вы используете 'password_hash()'? –
Почему вы создаете новый объект соединения db в классе пользователя? Проще расширить класс db в пользовательском классе. – SuperDJ
Я не вижу вызова 'doLogin()' где угодно. Это также может быть полезно увидеть – RiggsFolly