function getWebsiteHead(){
global $website;
?>
$website->getHead();?>
$website->getHeader();
?>
}
function getWebsiteFoot(){
global $website;
?>
$website->getFooter();
$website->getJavascriptIncludes();
?>
}
?>
class feedback {
var $debug = false;
var $feedback = array();
var $userinfo = array();
var $imgAlert = '';
var $imgInfo = '';
var $feedbackId = 0;
var $last = 0;
function __construct() {
$_SESSION['feedback_id'] = $this->feedback;
if ($_SESSION['admin_info']) {
$this->last = $_SESSION['admin_info'];
}
}
function addFeedback($fb, $from) {
$this->feedback[count($this->feedback)] = $fb." (".get_class($from).")";
$_SESSION['admin_info'] = $this->feedback;
}
function addUserInfo($fb, $type='notify') {
$i = count($this->userinfo);
$this->userinfo[$i][0] = $fb;
$this->userinfo[$i][1] = $type;
$_SESSION['user_info'] = $this->userinfo;
}
function add($fb, $type='notify'){
$this->addUserInfo($fb, $type);
}
/*
Toont alle relevante feedback voor de gebruiker
*/
function getUserInfo($icons=true) {
if ($this->debug) {
if ($_SESSION['admin_info']) {
foreach ($_SESSION['admin_info'] as $row) {
echo ''."\n";;
echo $row;
echo '
'."\n";
}
unset($_SESSION['admin_info']);
echo '| |
';
}
if ($this->last) {
foreach ($this->last as $row) {
echo ''."\n";
echo $row;
echo '
'."\n";
}
unset($this->last);
}
}
if($_SESSION['user_info']){
if (count($_SESSION['user_info']) > 0) {
$success = '';
$danger = '';
foreach ($_SESSION['user_info'] as $row) {
if($row[1] == 'notify') {
$success .= ''.(($icons)?' ':'').$row[0].'
';
} else {
$danger .= ''.(($icons)?' ':'').$row[0].'
';
}
}
if($success) {
echo ''."\n";
echo $success;
echo '
'."\n";
}
if($danger) {
echo ''."\n";
echo $danger;
echo '
'."\n";
}
}
}
unset($_SESSION['user_info']);
}
function getFeedback($icons=true) {
$this->getUserInfo($icons);
/*
if (count($_SESSION['user_info']) > 0) {
echo '';
foreach ($_SESSION['user_info'] as $row) {
echo $row[0]."
\n";
}
echo '
';
unset($_SESSION['user_info']);
}
*/
}
/*
Checkt of er informatie is die weergegeven moet worden
*/
function check(){
if (isset($_SESSION['user_info'])) {
return 1;
} else {
return 0;
}
}
}
$feedback = new feedback;
?>
/*****************************************************\
| DBASE CLASS |
\*****************************************************/
class db_connection {
var $handle;
var $connected = false;
var $settings = array();
function __construct($settings) {
$this->settings = $settings;
}
function connect() {
extract($this->settings);
if ($this->handle = new mysqli($db_host,$db_user,$db_pass,$db_db)) {
$this->connected = true;
$this->query("SET SESSION sql_mode = '';");
return true;
} else {
exit("- Error: ".mysqli_error());
return false;
}
}
function Qq($query) {
if (list($field) = @mysqli_fetch_array(mysqli_query($this->handle, $query))) {
return $field;
} else {
return 0;
}
}
function Query($q) {
if (mysqli_query($this->handle, $q)) {
return true;
} else {
return false;
}
}
function query_assoc($query) {
if ($res = mysqli_query($this->handle, $query)) {
$ar = array();
while ($row = mysqli_fetch_assoc($res)) {
$ar[count($ar)] = $row;
}
return $ar;
} else {
return false;
}
}
function Query_Array($query, $assoc = MYSQLI_BOTH) {
if ($res = mysqli_query($this->handle, $query)) {
$ar = array();
while ($row = mysqli_fetch_array($res, $assoc)) {
$ar[count($ar)] = $row;
}
return $ar;
} else {
return false;
}
}
function query_array_first($query){
$ar = $this->Query_Array($query);
if($ar){
return $ar[0];
}
else{
return false;
}
}
function escape($string){
return $this->handle->real_escape_string($string);
}
function getInsertID() {
return $this->handle->insert_id;
}
function getError() {
return $this->handle->error;
}
function disconnect() {
if($this->connected) mysqli_close($this->handle);
$this->connected = false;
}
}
?>
class users {
/*
Variabelen
*/
var $db;
var $sessionname;
var $usertable = "users";
var $userfield = "username";
var $pasfield = "password";
var $rightsfield = "admin";
var $id_field = "";
var $namefield = "";
var $loginpage = "index.php";
var $hash = true;
var $expire = 36000;
var $cookie = false;
var $sessionName = "Auth";
var $salt ="doe#maar";
var $arRechten = array(
'Beheerder' => 20,
'Content' => 1
);
/*
Constructor
Expects: Array with MySQL information
$userdb = array(
"db_host" => 'localhost',
"db_port" => '3306',
"db_user" => 'USER',
"db_pass" => 'PASS',
"db_db" => 'DBASE'
);
*/
function __construct() {
global $userdb;
$this->db = new db_connection($userdb);
}
function setUserTable($value){
$this->usertable = $value;
}
function setUserField($value){
$this->userfield = $value;
}
function setPasswdField($value){
$this->pasfield = $value;
}
function setIdField($value){
$this->id_field = $value;
}
function setNameField($value){
$this->namefield = $value;
}
function setRightField($value){
$this->rightsfield = $value;
}
function setSessionName($value){
$this->sessionName = $value;
}
function setHash($value){
$this->hash = $value;
}
function setCookie($value){
$this->cookie = $value;
}
function setExpireTime($value){
$this->expire = $value;// //60*60*10*1 = 36000 = 10 uur;
}
function getRechten(){
return $_SESSION[$this->sessionName."rechten"];
}
function getUserId() {
return $_SESSION[$this->sessionName."id"];
}
function getUserName() {
return $_SESSION[$this->sessionName."naam"];
}
// Paswd Genereren kan via: http://www.sevenmiles.nl/genpas/
function getHashPassword($passwd, $pepper) {
return hash('whirlpool',$passwd.$pepper.$this->salt,false);
}
/*
Login() Function, called by login form.
Executes Function StartSession($rights)
*/
function login() {
global $feedback;
if ($this->connect()) {
$user = trim($_POST["login"]);
if ($this->hash) $pas = $this->getHashPassword(trim($_POST["pass"]), $user);
else $pas = trim($_POST["pass"]);
$q = "SELECT * FROM `".$this->usertable."` WHERE `".$this->userfield."`='".$this->db->escape(htmle($user))."' AND `".$this->pasfield."`='".$this->db->escape(htmle($pas))."' AND `".$this->pasfield."`!='' LIMIT 1";
//exit($q);
$arUser = $this->db->query_array( $q );
$this->disconnect();
$rechten = $arUser[0][$this->rightsfield];
$user_id = $arUser[0][$this->id_field];
$username = $arUser[0][$this->userfield];
$this->startSession($rechten, $user_id, $username);
$_SESSION['login_user'] = htmle($user);
}
}
function scriptLogin($userID, $username, $rechten) {
global $feedback;
if($this->startSession($rechten, $userID, $username, true)) {
//echo ''; print_r($_SESSION); print_r($_COOKIE); echo '
';
//exit('LOGIN..');
} else {
//exit('FOUT!??'.$userID.'-'.$username);
}
}
/*
startSession() Function, calles by Login() Function
Checks is users is valid and sets SESSION vars
*/
function startSession($rechten, $user_id, $username, $script=false) {
global $feedback, $fb;
if ($rechten > 0) {
$_SESSION[$this->sessionName] = 1;
$_SESSION[$this->sessionName."rechten"] = $rechten;
$_SESSION[$this->sessionName."id"] = $user_id;
$_SESSION[$this->sessionName."naam"] = $username;
$_SESSION[$this->sessionName."script"] = $script;
if($this->cookie) {
$encriptedValue = sha1( 1 + $this->shakey );
setcookie($this->sessionName, $encriptedValue, time()+$this->expire,'/'); //60*60*10*1 = 36000 = 10 uur;
setcookie($this->sessionName."rechten", $rechten, time()+$this->expire,'/');
setcookie($this->sessionName."id", $user_id, time()+$this->expire,'/');
setcookie($this->sessionName."naam", $username, time()+$this->expire,'/');
setcookie($this->sessionName."script", $script, time()+$this->expire,'/');
}
$_SESSION['FAILED_LOGIN'] = false;
return true;
} else {
$fb = "Gebruikersnaam of wachtwoord niet juist ";
$feedback->addUserInfo("Gebruikersnaam of wachtwoord niet juist ", 'error');
$_SESSION[$this->sessionName] = 0;
$_SESSION[$this->sessionName."rechten"] = 0;
$_SESSION[$this->sessionName."id"] = 0;
$_SESSION['FAILED_LOGIN'] = true;
if($this->cookie) {
setcookie($this->sessionName, "", time() - 3600,'/');
setcookie($this->sessionName."rechten", 0, time() - 3600,'/');
setcookie($this->sessionName."id", 0, time() - 3600,'/');
setcookie($this->sessionName."naam", "", time() - 3600,'/');
setcookie($this->sessionName."script", "", time() - 3600,'/');
}
return false;
}
}
/*
Logout() Function
Logs out de current user
*/
function logout() {
//@session_destroy();
if($this->cookie){
unset($_COOKIE[$this->sessionName]);
setcookie($this->sessionName, "", time() - 3600,'/');
unset($_COOKIE[$this->sessionName."rechten"]);
setcookie($this->sessionName."rechten", "", time() - 3600,'/');
unset($_COOKIE[$this->sessionName."id"]);
setcookie($this->sessionName."id", "", time() - 3600,'/');
unset($_COOKIE[$this->sessionName."naam"]);
setcookie($this->sessionName."naam", "", time() - 3600,'/');
}
session_start();
unset($_SESSION[$this->sessionName]);
unset($_SESSION[$this->sessionName."rechten"]);
unset($_SESSION[$this->sessionName."id"]);
unset($_SESSION[$this->sessionName."naam"]);
//exit();
}
/*
LoginTable($fb) Function
Shows the login form. Optional parameter: $fb for showing feedback
*/
function loginTable() {
?>
/*?>
*/
}
/*
LoginTable($fb) Function
Shows the login form. Optional parameter: $fb for showing feedback
*/
function clientLoginTable($options=2, $action='') {
global $T, $feedback;
$feedback->getFeedback();
if(!$action) $action = '';//BASEURL.PHP_SELF;
$username = '';
if(isset($_SESSION['login_user'])) {
$username = $_SESSION['login_user'];
unset($_SESSION['login_user']);
}
?>