новый запрос PDO всегда истекает - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь создать сценарий - login.php - который проверяет, существует ли введенное имя пользователя в базе данных, затем сравнивает, совпадают ли введенный пароль и пароль в базе данных, и должен ли печатать результат этих операций навеб-страница (на данный момент).

Прежде всего, страница входа в систему:

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require_once("scripts/config.php");
require_once("scripts/helperClass.php");
$username = strip_tags($_POST["username"]);
$password = strip_tags($_POST["password"]);
echo helperClass::checkCredentials($username, $password);
?>

Теперь класс помощника: (или хотя бы соответствующая функция):

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
class helperClass {
    public static function checkCredentials($UserName, $Password) {
        try {
            $pdo = new PDO("mysql:host=".mydbhost.";dbname=".mydbname, myuname, mydbpw);
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }
        catch(PDOException $ex) {
            throw(new PDOException($ex->getMessage(), (int) $ex->getCode()));
        }
        $statement = $pdo->prepare("SELECT UserId, Password FROM ChatUsers WHERE (? = UserName) OR (? = E_Mail)");
        $statement->execute(array($UserName, $UserName));
        $foundUser = $statement->fetch(PDO::FETCH_ASSOC);
        if($foundUser) {
            $pwCorrect = $foundUser["Password"] == $Password;
            if(pwCorrect) {
                $statement = $pdo->prepare("UPDATE ChatUsers SET LoggedIn = true WHERE ? = UserId");
                $statement->execute(array($foundUser["UserId"]));
                return true;
            } 
            else {
                return false; 
            } 
        } 
        else {
            return false;
        }
    }
}
?>

In config.php Iопределить фактические данные подключения.Он хорошо компилируется локально, но затем в конечном итоге завершается с PDOException по истечении времени ожидания запроса.(Мой PHP-редактор поддерживает pDO, поэтому даже локальное подключение к внешней базе данных должно работать).В сети я просто вижу белый экран смерти.

Я реализовал отображение ошибок сейчас и вижу, что он работает, так как я получаю дополнительные уведомления, которые ранее были беззвучными.Судя по времени загрузки страницы входа в систему, SQL-запрос выполняется, но страница все еще пуста, ошибок нет, возврата нет.Есть что-то еще, что я упустил из виду?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...