0

login.php、User.php (ユーザー クラス)、messages.php (メッセージの配列) の 3 つのファイルがあります。問題は、ユーザークラスでメッセージを使用するにはどうすればよいですか? いくつかの方法を試しましたが、どれもうまくいきませんでした...「アカウントがブロックされました」などのエラーメッセージをエコーする必要があります...

ユーザー.php

<?php

include_once 'connection.php';
include_once 'messages.php';

class User {

    private $db;
    private $messages;

    public function __construct() {
        $this->db = new Connection();
    }

    public function setMessages($messages) {
        $this->messages = $messages;
    }
    /*
    public function getMessage() {
        return $this->$messages;
    }
    */

    public function authenticateUser($username, $password) {
        if(empty($username) OR empty($password)) {
            echo $this->messages[fieldsMustBeFilled]; // <- doesn't echo     anything
        } else {
            $username = $_POST['username'];
            $password = MD5($_POST['password']);

            $stmt = $this->db->prepare('SELECT * FROM users WHERE username=? AND     password=?');
            $stmt->bindParam(1, $username, PDO::PARAM_STR);
            $stmt->bindParam(2, $password, PDO::PARAM_STR, 32);
            $stmt->execute();

            if($stmt->rowCount() == 1) {
                $row = $stmt->fetch(PDO::FETCH_OBJ);
                if($row->blocked == 0) {
                    $userId = $row->userId;             
                    if($row->admin == 1) {
                        session_start();
                        $_SESSION['userId'] = $userId;
                        $_SESSION['admin'] = $row->admin;
                        $_SESSION['username'] = $username;
                        header('Location: index.php');

                    } else {
                        session_start();
                        $_SESSION['userId'] = $userId;
                        $_SESSION['admin'] = $row->admin;
                        $_SESSION['username'] = $username;
                        header('Location: index.php');
                    }
                } else {
                    echo $this->messages[accountBlocked]; // <- doesn't      echo anything
                }
            } else {
                echo $this->messages[wrongUsernameOrPassword]; // <- doesn't     echo anything
            }
        }
    }

    public function logout() {
        session_start();
        session_destroy();
        header('location: login.php');
    }

    public function onlineList() {
        echo 'I use this in future';
    }
}

?>

メッセージ.php

<?php

$messages = array(
    'fieldsMustBeFilled' => 'Mõlemad väljad peavad olema täidetud!',
    'wrongUsernameOrPassword' => 'Vale kasutajanimi või parool!',
    'accountBlocked' => 'Sinu kontole on kohaldatud blokeering!',
);

?>

ところで接続は次のとおりです。

<?php

class Connection extends PDO {

    public function __construct() {
        parent::__construct ("mysql:host=localhost; dbname=vestleja", "root", "");
    }
}

?>
4

0 に答える 0