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