Hallo allemaal,
Ik ben een site aan het maken in OOP.
Nu ben ik bezig met een login functie.
Login.php
PHP
<?php
include 'framework/framework.php';
$framework = new Framework();
// example:
$email = 'test';
try {
if ($framework->account->login($email, 'test') == false) {
throw new Exception($framework->account->error);
} else {
// $framework->session->addSession($email);
// header('/game.php');
}
} catch (Exception $e) {
echo $e->getMessage();
}
?>
Toon Meer
Laad mijn framework!!
framework/framework.php
PHP
<?php
function __autoload($name) {
$file = 'framework/classes/' . $name . '.class.php';
try {
if (!file_exists($file)) {
throw new Exception('Class "' . $name . '" bestaat niet.');
} else {
include $file;
}
} catch (Exception $e) {
echo $e->getMessage();
}
}
// class Framework extends Database?
class Framework {
public $account, $database, $session;
public function __construct() {
$this->account = new Account();
$this->database = new Database();
$this->session = new Session();
}
}
?>
Toon Meer
framework/classes/Account.class.php
PHP
<?php
class Account {
public $error;
public function __construct() {
// check if the session "member" exists
//if ($this->session->member()) {
// update online time, the user should be online
// }
}
public function login($email, $password, $time = null) {
try {
if (empty($email) || empty($password)) {
throw new Exception('Leeg');
}
elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
throw new Exception('Leeg');
}
elseif (count($password) < 6) {
throw new Exception('Leeg');
} else {
$query = $this->database->query('SELECT `email`, `password` FROM `accounts` WHERE `email` = "' . $email . '"');
if ($query->num_rows == 0) {
throw new Exception('Bestaat niet.');
}
else {
$res = $query->fetch_assoc();
if ($password != $res['password']) {
throw new Exception('Wachtwoord komt niet overeen.');
}
}
}
// always return false?
return false;
} catch (Exception $e) {
$this->error = $e->getMessage();
}
}
}
Toon Meer
Gebruik ik zo de try-catch methode goed?
In de login functie moet altijd false terugkomen lijkt me?
Ik hoop dat iemand mij wat positieve kritiek kan geven, omdat OOP redelijk nieuw voor mij is. ![]()
Alvast bedankt!
Youri van Mill