Location: PHPKode > projects > iLP System > Release 2.2/upload/index.php
<?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);

?>
Return current item: iLP System