update relative links and other things

This commit is contained in:
Andreas 2019-09-23 12:30:13 +02:00
parent 72319118a4
commit fbffa866f1
29 changed files with 103 additions and 148 deletions

View File

@ -12,28 +12,28 @@ class MVCController{
self::$mvcController = $this;
//prepare current view and view model
if(isset($_GET['p']) && $_GET['p'] != ''){
$this->view = "./view/webcontent/content_".$_GET['p'].".php";
$this->viewmodel = "./viewmodel/viewmodel_".$_GET['p'].".php";
$this->view = ROOT_DIR."./view/webcontent/content_".$_GET['p'].".php";
$this->viewmodel = ROOT_DIR."./viewmodel/viewmodel_".$_GET['p'].".php";
}
else{
$this->view = "./view/webcontent/content_home.php";
$this->viewmodel = "./viewmodel/viewmodel_home.php";
$this->view = ROOT_DIR."./view/webcontent/content_home.php";
$this->viewmodel = ROOT_DIR."./viewmodel/viewmodel_home.php";
}
//prepare current action model
if(isset($_POST['action'])){
$this->model = "./model/actions/model_".$_POST['action'].".php";
$this->model = ROOT_DIR."./model/actions/model_".$_POST['action'].".php";
}
else if(isset($_GET['action'])){
$this->model = "./model/actions/model_".$_GET['action'].".php";
$this->model = ROOT_DIR."./model/actions/model_".$_GET['action'].".php";
}
else{
$this->model = "./model/actions/model_empty.php";
$this->model = ROOT_DIR."./model/actions/model_empty.php";
}
if(isset($_POST['testaction'])){
$this->testaction = "./model/testactions/TA_".$_POST['testaction'].".php";
$this->testaction = ROOT_DIR."./model/testactions/TA_".$_POST['testaction'].".php";
}
@ -44,8 +44,8 @@ class MVCController{
}
function overrideView($view_target):void
{
$this->view = "./view/webcontent/content_".$view_target.".php";
$this->viewmodel = "./viewmodel/viewmodel_".$view_target.".php";
$this->view = ROOT_DIR."./view/webcontent/content_".$view_target.".php";
$this->viewmodel = ROOT_DIR."./viewmodel/viewmodel_".$view_target.".php";
$this->viewOverridden = true;
}
function executeAction():void
@ -102,7 +102,7 @@ class MVCController{
include_once($this->view);
}
else{
include_once("./view/webcontent/content_404.php");
include_once(ROOT_DIR."./view/webcontent/content_404.php");
echo("view: ".$this->view." not found.");
}
}

View File

@ -1,5 +1,5 @@
<?php
require_once('./controller/db/Database.php');
require_once(ROOT_DIR.'./controller/db/Database.php');
Class UserSession{
public $uid = -1;
public $token = "undefined";

View File

@ -1,5 +1,5 @@
<?php
require_once './controller/db/Database.php';
require_once ROOT_DIR.'./controller/db/Database.php';
class DBBoard extends Database{
static function getBoards():array
{

View File

@ -1,5 +1,5 @@
<?php
require_once './controller/db/Database.php';
require_once ROOT_DIR.'./controller/db/Database.php';
class DBReply extends Database{
static function createReply($uid, $threadID, $content){

View File

@ -1,12 +1,13 @@
<?php
require_once './model/forum/Thread.php';
require_once ROOT_DIR.'./model/forum/Thread.php';
class DBThread extends Database {
static function getThreadByID($id){
$con = self::connectToDB();
$query = $con->prepare("SELECT * FROM thread WHERE ID = :id");
$query->bindParam(":id", $id);
$query->execute();
return $query->fetch(PDO::FETCH_BOTH);
$result = $query->fetch(PDO::FETCH_BOTH);
return new Thread($result['ID'], $result['users_ID'], $result['board_ID'], $result['title'], $result['text'], $result['date_created']);
}
static function getThreadsByBoard($boardID){
$con = self::connectToDB();

View File

@ -1,5 +1,5 @@
<?php
require_once('./model/forum/User.php');
require_once(ROOT_DIR.'./model/forum/User.php');
class DBUser extends Database
{
static function getUserByUID($uid){
@ -11,6 +11,23 @@ class DBUser extends Database
$user = new User($result['ID'], $result['username'], $result['email'], $result['password'], $result['reg_date'], $result['login_date'], $result['reg_ip'], $result['permissions'], $result['active']);
return $user;
}
static function getUserByEmail($email){
$con = self::connectToDB();
$query = $con->prepare("SELECT * FROM users WHERE email = :email");
$query->bindParam(":email", $email);
$query->execute();
$result = $query->fetch(PDO::FETCH_BOTH);
$user = new User($result['ID'], $result['username'], $result['email'], $result['password'], $result['reg_date'], $result['login_date'], $result['reg_ip'], $result['permissions'], $result['active']);
if($query->rowCount() == 1){
//Email adres is niet in gebruik, return false
return $user;
}
else{
//Email is al in gebruik of komt meer dan een keer voor. Beide gevallen zijn een probleem dus return true.
trigger_error("Multiple users for email $email returned by DB, value should be unique", E_USER_ERROR);
}
}
//Controleert of het email adres al in de database voorkomt. Returnt true indien wel.

View File

@ -1,4 +1,5 @@
<?php
define ('ROOT_DIR', __DIR__);
register_shutdown_function(function() {
$error = error_get_last();
switch($error['type']){
@ -33,15 +34,15 @@ register_shutdown_function(function() {
http_response_code(500);
} */
});
require_once('./model/testactions/TestAction.php');
require_once(ROOT_DIR.'./model/testactions/TestAction.php');
//date_default_timezone_set('Europe/Amsterdam');
require_once('./controller/MVCController.php');
require_once('./controller/UserSession.php');
require_once(ROOT_DIR.'./controller/MVCController.php');
require_once(ROOT_DIR.'./controller/UserSession.php');
session_start();
$mvcController = new MVCController();
$mvcController->executeModel();
if(!isset($_POST['testaction'])){
include_once("./view/content_pagetemplate.php");
include_once(ROOT_DIR."./view/content_pagetemplate.php");
}
//require_once('aaaadea');
//http_response_code(200);

View File

@ -1,8 +1,8 @@
<?php
require_once './controller/UserSession.php';
require_once('./controller/HUtils.php');
require_once './controller/db/DBReply.php';
require_once './model/forum/Reply.php';
require_once ROOT_DIR.'./controller/UserSession.php';
require_once(ROOT_DIR.'./controller/HUtils.php');
require_once ROOT_DIR.'./controller/db/DBReply.php';
require_once ROOT_DIR.'./model/forum/Reply.php';
//dit bestand bestaat grotendeels uit dummy code.
//Ik heb onvoldoende tijd gehad tijdens de afgelopen paar weken en het was extreem druk in de klas tijdens de les.
$uid = $_SESSION['usersession']->uid;

View File

@ -1,8 +1,8 @@
<?php
require_once './controller/UserSession.php';
require_once('./controller/HUtils.php');
require_once './controller/db/DBThread.php';
require_once './model/forum/Thread.php';
require_once ROOT_DIR.'./controller/UserSession.php';
require_once(ROOT_DIR.'./controller/HUtils.php');
require_once ROOT_DIR.'./controller/db/DBThread.php';
require_once ROOT_DIR.'./model/forum/Thread.php';
//dit bestand bestaat grotendeels uit dummy code.
//Ik heb onvoldoende tijd gehad tijdens de afgelopen paar weken en het was extreem druk in de klas tijdens de les.
$uid = $_SESSION['usersession']->uid;

View File

@ -1,8 +1,8 @@
<?php
//Include classes
require_once("./controller/db/Database.php");
require_once("./controller/db/DBUser.php");
require_once("./controller/HUtils.php");
require_once(ROOT_DIR."./controller/db/Database.php");
require_once(ROOT_DIR."./controller/db/DBUser.php");
require_once(ROOT_DIR."./controller/HUtils.php");
if(HUtils::issetPost(['email', 'pass', 'pass2', 'name'])){
$email = $_POST['email'];
$pass = $_POST['pass'];
@ -17,8 +17,8 @@ if(HUtils::issetPost(['email', 'pass', 'pass2', 'name'])){
}
//TO DO: Create verification key
DBUser::registerUser($email, $pass, $name);
$uid = DBUser::getUID($email, $pass);
DBUser::registerActivationKey($uid,$verificationKey);
$user = DBUser::getUserByEmail($email);
DBUser::registerActivationKey($user->getId(),$verificationKey);
$message = 'Please follow the link to verify your account: http://localhost/webforum_redux/hforumphp/dev_mvc/index.php?p=verify&key='.$verificationKey;
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .

View File

@ -1,12 +1,13 @@
<?php
$debuginfo = false;
require_once("./controller/UserSession.php");
require_once("./controller/db/Database.php");
require_once("./controller/db/DBUser.php");
require_once("./controller/HUtils.php");
require_once(ROOT_DIR."./controller/UserSession.php");
require_once(ROOT_DIR."./controller/db/Database.php");
require_once(ROOT_DIR."./controller/db/DBUser.php");
require_once(ROOT_DIR."./controller/HUtils.php");
$skipoverride = false;
if(!UserSession::isUserSignedIn()){
if(HUtils::issetPost(['email','password'])){
$user =
if(DBUser::isLoginValid($_POST['email'], $_POST['password'])){
//obtain UID
$uid = DBUser::getUID($_POST['email'], $_POST['password']);

View File

@ -1,5 +1,5 @@
<?php
require_once('./controller/db/Database.php');
require_once(ROOT_DIR.'./controller/db/Database.php');
$_SESSION['usersession'] = null;
Database::invalidateSession($_COOKIE['usersession']);
session_destroy();

View File

@ -59,6 +59,7 @@ class Thread {
public function setOwner($owner) {
$this->owner = $owner;
}
public function getId():int {
return $this->id;
}

View File

@ -10,7 +10,7 @@ class User {
public $reg_ip;
public $permissions;
public $active;
function User($id, $username, $email, $password, $reg_date, $login_date, $reg_ip, $permissions, $active){
function __construct($id, $username, $email, $password, $reg_date, $login_date, $reg_ip, $permissions, $active){
$this->id = $id;
$this->username = $username;
$this->email = $email;
@ -24,28 +24,28 @@ class User {
/**
* @return mixed
*/
public function getId() {
public function getId():int {
return $this->id;
}
/**
* @return mixed
*/
public function getUsername() {
public function getUsername():string {
return $this->username;
}
/**
* @return mixed
*/
public function getEmail() {
public function getEmail():string {
return $this->email;
}
/**
* @return mixed
*/
public function getPassword() {
public function getPassword():string {
return $this->password;
}

View File

@ -1,4 +1,6 @@
<?php
require_once(ROOT_DIR.'./controller/db/DBUser.php');
require_once(ROOT_DIR.'./model/forum/User.php');
class TA_TestDBUser extends TestAction{
public function __construct()
{
@ -6,6 +8,9 @@ class TA_TestDBUser extends TestAction{
}
public function execute()
{
$user = DBUser::getUserByUID(0 );
$user = DBUser::getUserByUID(9 );
self::logMessage($user->getUsername());
self::logMessage($user->getEmail());
self::logMessage($user->getPassword());
}
}

View File

@ -1,6 +1,6 @@
<?php
class TestAction{
function TestAction(){
function __construct(){
if(isset($_POST['auth'])){
if($_POST['auth'] == getenv('ADMIN_ACTION_KEY')){
$this->execute();
@ -32,7 +32,7 @@ class TestAction{
echo("[".self::$log[$i]['status']."] ".self::$log[$i]['message']."\n");
if(self::$log[$i]['status'] == 'FAILURE'){
echo('<div id="test_exitstatus">ACTION FAILED</div>');
break;
return;
}
}
echo('<div id="test_exitstatus">ACTION SUCCESSFUL</div>');

View File

@ -1,58 +0,0 @@
<?php
if(isset($_POST['auth'])){
if($_POST['auth'] == getenv('ADMIN_ACTION_KEY')){
populateDB();
}
}else{
self::logMessage('you have no authorization to do that', "OK");
}
function populateDB(){
try{
if(getenv("SQL_CREDENTIALS") !== false){
$sql_server = getenv("SQL_SERVER");
$sql_username = getenv("SQL_USERNAME");
$sql_password = getenv("SQL_PASSWORD");
$sql_database = getenv("SQL_DATABASE");
}
else{
$sql_server = "localhost";
$sql_username = "root";
$sql_password = "kankerlow";
$sql_database = "webforum";
}
$host = $sql_server;
$db = $sql_database;
$user = $sql_username;
$pass = $sql_password;
//connect to sql server
$con = new PDO( "mysql:host=$host;charset=utf8", $user, $pass );
$con->exec("USE $db");
self::logMessage('table doesnt exist', "OK");
$query = $con->query("INSERT INTO users (username, email, password, login_date, reg_ip, active) VALUES ( 'andreas', 'andreas@andreas.nl', 'jenk', '2019-01-01 14:35:33', '192.168.0.2', 1),
( 'bram', 'bram@bram.nl', 'jenk', '2019-01-01 14:35:33', '192.168.0.1', 1)");
self::logMessage("created test users", "OK");
$query = $con->query("INSERT INTO `board` (`name`, `description`, `permLevel`) VALUES ('General Discussion', 'Plek om algemene discussie te voeren.', '0'),
('Off Topic', 'Voor alle irrelevante zooi.', '0')");
self::logMessage("created test boards", "OK");
$query = $con->query("INSERT INTO `thread` (`users_ID`, `board_ID`, `title`, `text`, `date_created`) VALUES ('1', '1', 'Test thread', 'Deze thread is een test.', '2019-06-20 13:55:37'),
('1', '2', 'Waa', 'Frist niffo', '2019-06-20 13:56:42')");
self::logMessage("created test threads", "OK");
$query = $con->query("INSERT INTO `reply` (`thread_ID`, `users_ID`, `content`, `date_created`) VALUES ('1', '1', 'heehee eks dee', '2019-06-21 11:01:57'),
('1', '1', 'hoi\r\n', '2019-06-21 11:07:25'),
('2', '2', 'fristi niBBa', '2019-06-21 11:08:08'),
('1', '1', 'was jouw prebleem', '2019-06-21 14:41:00'),
('1', '2', 'Mijn naam is bram', '2019-06-21 17:58:12'),
('1', '2', 'huh wuddufuq', '2019-06-21 17:58:29'),
('1', '1', 'huts a neef', '2019-06-21 17:59:27')");
self::logMessage("created test replies", "OK");
}
catch(PDOException $e){
self::logMessage("created test replies", "FAILURE");
die("pdo exception, cannot connect to sql:<br> $e");
}
}

View File

@ -1,11 +0,0 @@
<?php
if(isset($_POST['auth'])){
if($_POST['auth'] == getenv('ADMIN_ACTION_KEY')){
execute();
}
}else{
echol('you have no authorization to do that');
}
function execute(){
}

View File

@ -1,5 +1,5 @@
<?php
require_once("./controller/MVCController.php");
require_once(ROOT_DIR."./controller/MVCController.php");
require_once("index.php");
?>
<!DOCTYPE html>
@ -10,7 +10,7 @@ require_once("index.php");
<body>
<header class="row">
<?php
include_once("./view/webcontent/content_header.php");
include_once(ROOT_DIR."./view/webcontent/content_header.php");
?>
</header>
<div class="main">

View File

@ -1,6 +1,6 @@
<?php
require_once './model/forum/Thread.php';
require_once './model/forum/User.php';
require_once ROOT_DIR.'./model/forum/Thread.php';
require_once ROOT_DIR.'./model/forum/User.php';
foreach (MVCController::$viewData['boards'] as $board){
include './view/webcontent/modules/modules_boards/module_boardtable.php';
}

View File

@ -1,4 +1,4 @@
Incorrect Email or Password.
<?php
include_once('./view/webcontent/content_signin.php');
include_once(ROOT_DIR.'./view/webcontent/content_signin.php');
?>

View File

@ -1,9 +1,9 @@
<?php
require_once('./controller/UserSession.php');
require_once(ROOT_DIR.'./controller/UserSession.php');
if(UserSession::isUserSignedIn()){
include('./view/webcontent/header/header_signedin.php');
include(ROOT_DIR.'./view/webcontent/header/header_signedin.php');
}
else{
include('./view/webcontent/header/header_signedout.php');
include(ROOT_DIR.'./view/webcontent/header/header_signedout.php');
}
?>

View File

@ -1,7 +1,7 @@
<?php
require_once './model/forum/Thread.php';
require_once './model/forum/Reply.php';
require_once './model/forum/User.php';
require_once ROOT_DIR.'./model/forum/Thread.php';
require_once ROOT_DIR.'./model/forum/Reply.php';
require_once ROOT_DIR.'./model/forum/User.php';
//$thread = new Thread();
$thread = MVCController::$viewData['thread'];
$replies = $thread->getReplies();

View File

@ -1,11 +1,11 @@
<?php
require_once './controller/db/DBBoard.php';
require_once './controller/db/DBThread.php';
require_once './controller/db/DBUser.php';
require_once './model/forum/Board.php';
require_once './model/forum/Thread.php';
require_once './model/forum/User.php';
require_once './model/forum/Reply.php';
require_once ROOT_DIR.'./controller/db/DBBoard.php';
require_once ROOT_DIR.'./controller/db/DBThread.php';
require_once ROOT_DIR.'./controller/db/DBUser.php';
require_once ROOT_DIR.'./model/forum/Board.php';
require_once ROOT_DIR.'./model/forum/Thread.php';
require_once ROOT_DIR.'./model/forum/User.php';
require_once ROOT_DIR.'./model/forum/Reply.php';
$boardTable = DBBoard::getBoards();
$threadsTable = [];

View File

@ -1,6 +1,6 @@
<?php
require_once './controller/UserSession.php';
require_once './controller/MVCController.php';
require_once ROOT_DIR.'./controller/UserSession.php';
require_once ROOT_DIR.'./controller/MVCController.php';
if(UserSession::isUserSignedIn()){
MVCController::getMVCController()->overrideView("boards");
}

View File

@ -1,17 +1,16 @@
<?php
require_once './controller/db/DBThread.php';
require_once './controller/db/DBReply.php';
require_once './controller/db/DBUser.php';
require_once './model/forum/User.php';
require_once './model/forum/Reply.php';
require_once ROOT_DIR.'./controller/db/DBThread.php';
require_once ROOT_DIR.'./controller/db/DBReply.php';
require_once ROOT_DIR.'./controller/db/DBUser.php';
require_once ROOT_DIR.'./model/forum/User.php';
require_once ROOT_DIR.'./model/forum/Reply.php';
if(isset($_GET['thread'])) {
$threadid = $_GET['thread'];
} else {
$threadid = - 1;
}
// Get what we need from the database
$threadData = DBThread::getThreadByID($threadid);
$thread = new Thread($threadData['ID'], $threadData['users_ID'], $threadData['board_ID'], $threadData['title'], $threadData['text'], $threadData['date_created']);
// Get what we need from the databas
$thread = DBThread::getThreadByID($threadid);
$replyData = DBReply::getRepliesByThreadID($threadid);
// array to store our reply objects in
$replies = [ ];
@ -31,4 +30,3 @@ $thread->setOwner($threadOwner);
// Store data so it can be used in the view
MVCController::$viewData['thread'] = $thread;
?>

View File

@ -1,5 +1,5 @@
<?php
require_once('./controller/db/Database.php');
require_once(ROOT_DIR.'./controller/db/Database.php');
Database::invalidateSession($_COOKIE['usersession']);
session_destroy();
?>

View File

@ -1,6 +1,6 @@
<?php
require_once './controller/db/Database.php';
require_once './controller/db/DBUser.php';
require_once ROOT_DIR.'./controller/db/Database.php';
require_once ROOT_DIR.'./controller/db/DBUser.php';
$key = '';
if(isset($_GET['key'])){
$key = $_GET['key'];