<?php
/**
* iLP System Hauptseite
*
* Autor: Florian "ApoY2k" Peschka
* Projekt: iLP System
* Paket: apoy2k.ilp.wrynn
* Lizenz: CreativeCommons (by-nc-sa)
* Kontakt: hide@address.com
*
* Datei-Version: $Id: index.php 8 2009-10-03 18:13:30Z apoy2k $
*/
session_start();
/**
* Set a new constant to define the user is currently active on the officer panel so
* the correct templates are loaded
*/
define('BACKEND_ACTIVE', false);
// Run configuration
require_once('lib/lib.config.php');
// URL entschlüsseln und im Template-Array speichern.
// Wenn die URL keine Informationen erhält, wird das Start-Template eingebunden
isset($_GET['ilp']) ? $tpl['url'] = ilpUrlDecode($_GET['ilp']) : $tpl['url'][0] = 'start';
/**
* Login über Cookies überprüfen. Wenn die Daten übereinstimmen, wird der User
* in die laufende Session eingeloggt und das normale Session-Array gespeichert.
*
* Wenn kein Cookie gesetzt ist, werden die nötigen Logindaten aus der Session
* ermittelt.
*/
// Gast-Benutzer erstellen
$tpl['user'] = array(
'id' => 0,
'login' => 'Gast',
'pw' => '',
'email' => '',
'locked' => 1,
'officer' => 0,
'char' => array(
'name' => 'Gast',
'class' => 'none',
'spec' => '0'
),
'lang' => $_SESSION['config']['locale'],
'tooltip_locale' => $_SESSION['config']['lang_tooltip'],
'logged' => false,
);
if (isset($_COOKIE['ilp']))
{
$login_info = unserialize(base64_decode($_COOKIE['ilp']));
}
elseif (isset($_SESSION['user']))
{
$login_info = $_SESSION['user'];
}
// Die ermittelten Logindaten verarbeiten und prüfen.
if (isset($login_info))
{
/**
* Daten des Benutzers mit dem in der Session angegebenen Namen suchen.
* Um MySQL-Injection zu vermeiden, wird die Anfrage vorher vorbereitet.
*/
$get_info = $db->prepare("SELECT * FROM `ilp_users` WHERE `id` = ?");
$get_info->execute(array($login_info['id']));
/**
* Wenn ein Benutzer mit dem Namen gefunden wurde, prüfen, ob das Passwort sowie
* der beim Einloggen gespeicherte Browserhash übereinstimmen.
*/
if (0 != $get_info->rowCount())
{
$arr_info = $get_info->fetch(PDO::FETCH_ASSOC);
if ($arr_info['pw'] == $login_info['pw'])
{
if (md5($_SERVER['HTTP_USER_AGENT']) == $login_info['agent'])
{
// Gefundene Informationen in die Session speichern.
$user = $arr_info;
$user['agent'] = $login_info['agent'];
$_SESSION['user'] = $user;
// Benutzerdaten in die Template-Engine weitergeben
$tpl['user'] = $user;
$tpl['user']['logged'] = true;
$tpl['user']['char'] = unserialize($tpl['user']['char']);
}
}
}
}
/**
* Vom User eingestellte Sprachen anpassen
*
* Wenn der Benutzer in den Einstellungen andere Sprachen eingestellt hat,
* wie es vom System vorgesehen ist, werden diese Einstellungen überschrieben und
* die vom Benutzer eingestellte Sprache verwendet.
*/
isset($tpl['user']['lang']) ? $lang['locale'] = $tpl['user']['lang'] : null;
isset($tpl['user']['tooltip_locale']) ? $lang['tooltip_locale'] = $tpl['user']['tooltip_locale'] : null;
// Includes the current localization file
if ('deDE' == $lang['locale'])
{
require_once(BASEDIR.'lib/lib.lang.'.$lang['locale'].'.php');
}
else
{
require_once(BASEDIR.'lib/lib.lang.deDE.php');
require_once(BASEDIR.'lib/lib.lang.'.$lang['locale'].'.php');
}
/**
* Spezielle Zusatzseiten laden
*
* Um möglichst wenige Code-Overhead zu laden, wird jede Seite einzeln angesprochen
* und nur geladen, wenn sie benötigt wird.
*/
if (isset($tpl['url'][0]))
{
if ('search' == $tpl['url'][0]) require_once('search.php');
if ('settings' == $tpl['url'][0]) require_once('settings.php');
if ('start' == $tpl['url'][0]) require_once('welcome.php');
if ('complete' == $tpl['url'][0]) require_once('complete.php');
if ('statistics' == $tpl['url'][0]) require_once('statistics.php');
if (isset($tpl['url'][1]))
{
if ('list' == $tpl['url'][1]) require_once('list.php');
if ('reqs' == $tpl['url'][1]) require_once('reqs.php');
if ('events' == $tpl['url'][1]) require_once('events.php');
if ('login' == $tpl['url'][1] && isset($tpl['url'][2]) && 'do' == $tpl['url'][2])
{
require_once('login.php');
}
}
}
else
{
require_once('welcome.php');
}
// Hauptseite einbinden
showTemplate('index', $tpl, $lang);
?>