30c3 theme
parent
bfb0cacd54
commit
3c4321ff76
@ -1,110 +1,109 @@
|
||||
<?php
|
||||
|
||||
|
||||
// Testet ob ein User eingeloggt ist und lädt die entsprechenden Privilegien
|
||||
function load_auth() {
|
||||
global $user, $privileges;
|
||||
|
||||
$user = null;
|
||||
if (isset ($_SESSION['uid'])) {
|
||||
$user = sql_select("SELECT * FROM `User` WHERE `UID`=" . sql_escape($_SESSION['uid']) . " LIMIT 1");
|
||||
if (count($user) > 0) {
|
||||
// User ist eingeloggt, Datensatz zur Verfügung stellen und Timestamp updaten
|
||||
list ($user) = $user;
|
||||
sql_query("UPDATE `User` SET " . "`lastLogIn` = '" . time() . "'" . " WHERE `UID` = '" . sql_escape($_SESSION['uid']) . "' LIMIT 1;");
|
||||
} else
|
||||
unset ($_SESSION['uid']);
|
||||
}
|
||||
|
||||
$privileges = isset ($user) ? privileges_for_user($user['UID']) : privileges_for_group(-1);
|
||||
global $user, $privileges;
|
||||
|
||||
$user = null;
|
||||
if (isset($_SESSION['uid'])) {
|
||||
$user = sql_select("SELECT * FROM `User` WHERE `UID`=" . sql_escape($_SESSION['uid']) . " LIMIT 1");
|
||||
if (count($user) > 0) {
|
||||
// User ist eingeloggt, Datensatz zur Verfügung stellen und Timestamp updaten
|
||||
list ($user) = $user;
|
||||
sql_query("UPDATE `User` SET " . "`lastLogIn` = '" . time() . "'" . " WHERE `UID` = '" . sql_escape($_SESSION['uid']) . "' LIMIT 1;");
|
||||
} else
|
||||
unset($_SESSION['uid']);
|
||||
}
|
||||
|
||||
$privileges = isset($user) ? privileges_for_user($user['UID']) : privileges_for_group(- 1);
|
||||
}
|
||||
|
||||
// generate a salt (random string) of arbitrary length suitable for the use with crypt()
|
||||
function generate_salt($length = 16) {
|
||||
$alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
$salt = "";
|
||||
for ($i = 0; $i < $length; $i++) {
|
||||
$salt .= $alphabet[rand(0, strlen($alphabet)-1)];
|
||||
}
|
||||
return $salt;
|
||||
$alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
$salt = "";
|
||||
for($i = 0; $i < $length; $i ++) {
|
||||
$salt .= $alphabet[rand(0, strlen($alphabet) - 1)];
|
||||
}
|
||||
return $salt;
|
||||
}
|
||||
|
||||
// set the password of a user
|
||||
function set_password($uid, $password) {
|
||||
return sql_query("UPDATE `User` SET `Passwort` = '" . sql_escape(crypt($password, CRYPT_ALG . '$' . generate_salt(16) . '$')) . "' WHERE `UID` = " . intval($uid) . " LIMIT 1");
|
||||
return sql_query("UPDATE `User` SET `Passwort` = '" . sql_escape(crypt($password, CRYPT_ALG . '$' . generate_salt(16) . '$')) . "' WHERE `UID` = " . intval($uid) . " LIMIT 1");
|
||||
}
|
||||
|
||||
// verify a password given a precomputed salt.
|
||||
// if $uid is given and $salt is an old-style salt (plain md5), we convert it automatically
|
||||
function verify_password($password, $salt, $uid = false) {
|
||||
$correct = false;
|
||||
if (substr($salt, 0, 1) == '$') // new-style crypt()
|
||||
$correct = crypt($password, $salt) == $salt;
|
||||
elseif (substr($salt, 0, 7) == '{crypt}') // old-style crypt() with DES and static salt - not used anymore
|
||||
$correct = crypt($password, '77') == $salt;
|
||||
elseif (strlen($salt) == 32) // old-style md5 without salt - not used anymore
|
||||
$correct = md5($password) == $salt;
|
||||
|
||||
if($correct && substr($salt, 0, strlen(CRYPT_ALG)) != CRYPT_ALG && $uid) {
|
||||
// this password is stored in another format than we want it to be.
|
||||
// let's update it!
|
||||
// we duplicate the query from the above set_password() function to have the extra safety of checking the old hash
|
||||
sql_query("UPDATE `User` SET `Passwort` = '" . sql_escape(crypt($password, CRYPT_ALG . '$' . generate_salt() . '$')) . "' WHERE `UID` = " . intval($uid) . " AND `Passwort` = '" . sql_escape($salt) . "' LIMIT 1");
|
||||
}
|
||||
return $correct;
|
||||
$correct = false;
|
||||
if (substr($salt, 0, 1) == '$') // new-style crypt()
|
||||
$correct = crypt($password, $salt) == $salt;
|
||||
elseif (substr($salt, 0, 7) == '{crypt}') // old-style crypt() with DES and static salt - not used anymore
|
||||
$correct = crypt($password, '77') == $salt;
|
||||
elseif (strlen($salt) == 32) // old-style md5 without salt - not used anymore
|
||||
$correct = md5($password) == $salt;
|
||||
|
||||
if ($correct && substr($salt, 0, strlen(CRYPT_ALG)) != CRYPT_ALG && $uid) {
|
||||
// this password is stored in another format than we want it to be.
|
||||
// let's update it!
|
||||
// we duplicate the query from the above set_password() function to have the extra safety of checking the old hash
|
||||
sql_query("UPDATE `User` SET `Passwort` = '" . sql_escape(crypt($password, CRYPT_ALG . '$' . generate_salt() . '$')) . "' WHERE `UID` = " . intval($uid) . " AND `Passwort` = '" . sql_escape($salt) . "' LIMIT 1");
|
||||
}
|
||||
return $correct;
|
||||
}
|
||||
|
||||
// JSON Authorisierungs-Schnittstelle
|
||||
function json_auth_service() {
|
||||
global $CurrentExternAuthPass;
|
||||
|
||||
header("Content-Type: application/json");
|
||||
|
||||
$User = $_REQUEST['user'];
|
||||
$Pass = $_REQUEST['pw'];
|
||||
$SourceOuth = $_REQUEST['so'];
|
||||
|
||||
if (isset ($CurrentExternAuthPass) && $SourceOuth == $CurrentExternAuthPass) {
|
||||
$sql = "SELECT `UID`, `Passwort` FROM `User` WHERE `Nick`='" . sql_escape($User) . "'";
|
||||
$Erg = sql_select($sql);
|
||||
|
||||
if (count($Erg) == 1) {
|
||||
$Erg = $Erg[0];
|
||||
if (verify_password($Pass, $Erg["Passwort"], $Erg["UID"])) {
|
||||
$user_privs = sql_select("SELECT `Privileges`.`name` FROM `User` JOIN `UserGroups` ON (`User`.`UID` = `UserGroups`.`uid`) JOIN `GroupPrivileges` ON (`UserGroups`.`group_id` = `GroupPrivileges`.`group_id`) JOIN `Privileges` ON (`GroupPrivileges`.`privilege_id` = `Privileges`.`id`) WHERE `User`.`UID`=" . sql_escape($UID) . ";");
|
||||
foreach ($user_privs as $user_priv)
|
||||
$privileges[] = $user_priv['name'];
|
||||
|
||||
$msg = array (
|
||||
'status' => 'success',
|
||||
'rights' => $privileges
|
||||
);
|
||||
echo json_encode($msg);
|
||||
die();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo json_encode(array (
|
||||
'status' => 'failed',
|
||||
'error' => "JSON Service GET syntax: https://engelsystem.de/?auth&user=<user>&pw=<password>&so=<key>, POST is possible too"
|
||||
));
|
||||
die();
|
||||
global $CurrentExternAuthPass;
|
||||
|
||||
header("Content-Type: application/json");
|
||||
|
||||
$User = $_REQUEST['user'];
|
||||
$Pass = $_REQUEST['pw'];
|
||||
$SourceOuth = $_REQUEST['so'];
|
||||
|
||||
if (isset($CurrentExternAuthPass) && $SourceOuth == $CurrentExternAuthPass) {
|
||||
$sql = "SELECT `UID`, `Passwort` FROM `User` WHERE `Nick`='" . sql_escape($User) . "'";
|
||||
$Erg = sql_select($sql);
|
||||
|
||||
if (count($Erg) == 1) {
|
||||
$Erg = $Erg[0];
|
||||
if (verify_password($Pass, $Erg["Passwort"], $Erg["UID"])) {
|
||||
$user_privs = sql_select("SELECT `Privileges`.`name` FROM `User` JOIN `UserGroups` ON (`User`.`UID` = `UserGroups`.`uid`) JOIN `GroupPrivileges` ON (`UserGroups`.`group_id` = `GroupPrivileges`.`group_id`) JOIN `Privileges` ON (`GroupPrivileges`.`privilege_id` = `Privileges`.`id`) WHERE `User`.`UID`=" . sql_escape($UID) . ";");
|
||||
foreach ($user_privs as $user_priv)
|
||||
$privileges[] = $user_priv['name'];
|
||||
|
||||
$msg = array (
|
||||
'status' => 'success',
|
||||
'rights' => $privileges
|
||||
);
|
||||
echo json_encode($msg);
|
||||
die();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo json_encode(array (
|
||||
'status' => 'failed',
|
||||
'error' => "JSON Service GET syntax: https://engelsystem.de/?auth&user=<user>&pw=<password>&so=<key>, POST is possible too"
|
||||
));
|
||||
die();
|
||||
}
|
||||
|
||||
function privileges_for_user($user_id) {
|
||||
$privileges = array ();
|
||||
$user_privs = sql_select("SELECT `Privileges`.`name` FROM `User` JOIN `UserGroups` ON (`User`.`UID` = `UserGroups`.`uid`) JOIN `GroupPrivileges` ON (`UserGroups`.`group_id` = `GroupPrivileges`.`group_id`) JOIN `Privileges` ON (`GroupPrivileges`.`privilege_id` = `Privileges`.`id`) WHERE `User`.`UID`=" . sql_escape($user_id) . ";");
|
||||
foreach ($user_privs as $user_priv)
|
||||
$privileges[] = $user_priv['name'];
|
||||
return $privileges;
|
||||
$privileges = array ();
|
||||
$user_privs = sql_select("SELECT `Privileges`.`name` FROM `User` JOIN `UserGroups` ON (`User`.`UID` = `UserGroups`.`uid`) JOIN `GroupPrivileges` ON (`UserGroups`.`group_id` = `GroupPrivileges`.`group_id`) JOIN `Privileges` ON (`GroupPrivileges`.`privilege_id` = `Privileges`.`id`) WHERE `User`.`UID`=" . sql_escape($user_id) . ";");
|
||||
foreach ($user_privs as $user_priv)
|
||||
$privileges[] = $user_priv['name'];
|
||||
return $privileges;
|
||||
}
|
||||
|
||||
function privileges_for_group($group_id) {
|
||||
$privileges = array ();
|
||||
$groups_privs = sql_select("SELECT * FROM `GroupPrivileges` JOIN `Privileges` ON (`GroupPrivileges`.`privilege_id` = `Privileges`.`id`) WHERE `group_id`=" . sql_escape($group_id));
|
||||
foreach ($groups_privs as $guest_priv)
|
||||
$privileges[] = $guest_priv['name'];
|
||||
return $privileges;
|
||||
$privileges = array ();
|
||||
$groups_privs = sql_select("SELECT * FROM `GroupPrivileges` JOIN `Privileges` ON (`GroupPrivileges`.`privilege_id` = `Privileges`.`id`) WHERE `group_id`=" . sql_escape($group_id));
|
||||
foreach ($groups_privs as $guest_priv)
|
||||
$privileges[] = $guest_priv['name'];
|
||||
return $privileges;
|
||||
}
|
||||
?>
|
||||
|
@ -1,10 +1,11 @@
|
||||
<?php
|
||||
|
||||
function counter() {
|
||||
global $p;
|
||||
global $p;
|
||||
|
||||
if (sql_num_query("SELECT `Anz` FROM `Counter` WHERE `URL`='" . sql_escape($p) . "'") == 0)
|
||||
sql_query("INSERT INTO `Counter` ( `URL` , `Anz` ) VALUES ('" . sql_escape($p) . "', '1');");
|
||||
else
|
||||
sql_query("UPDATE `Counter` SET `Anz` = `Anz` + 1 WHERE `URL` = '" . sql_escape($p) . "' LIMIT 1 ;");
|
||||
if (sql_num_query("SELECT `Anz` FROM `Counter` WHERE `URL`='" . sql_escape($p) . "'") == 0)
|
||||
sql_query("INSERT INTO `Counter` ( `URL` , `Anz` ) VALUES ('" . sql_escape($p) . "', '1');");
|
||||
else
|
||||
sql_query("UPDATE `Counter` SET `Anz` = `Anz` + 1 WHERE `URL` = '" . sql_escape($p) . "' LIMIT 1 ;");
|
||||
}
|
||||
?>
|
||||
|
@ -1,89 +1,109 @@
|
||||
<?php
|
||||
|
||||
function page_link_to($page) {
|
||||
return '?p=' . $page;
|
||||
return '?p=' . $page;
|
||||
}
|
||||
|
||||
function page_link_to_absolute($page) {
|
||||
return (isset ($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . preg_replace("/\?.*$/", '', $_SERVER['REQUEST_URI']) . page_link_to($page);
|
||||
return (isset($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . preg_replace("/\?.*$/", '', $_SERVER['REQUEST_URI']) . page_link_to($page);
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders the header toolbar containing search, login/logout, user and settings links.
|
||||
*/
|
||||
function header_toolbar() {
|
||||
global $p, $privileges, $user;
|
||||
|
||||
$toolbar_items = array();
|
||||
|
||||
if(in_array('register', $privileges))
|
||||
$toolbar_items[] = toolbar_item_link(page_link_to('register'), 'register', "Register", $p == 'register');
|
||||
|
||||
if(in_array('user_myshifts', $privileges))
|
||||
$toolbar_items[] = toolbar_item_link(page_link_to('user_myshifts'), 'engel', $user['Nick'], $p == 'user_myshifts');
|
||||
|
||||
if(in_array('user_settings', $privileges))
|
||||
$toolbar_items[] = toolbar_item_link(page_link_to('user_settings'), 'settings', "Settings", $p == 'user_settings');
|
||||
|
||||
if(in_array('login', $privileges))
|
||||
$toolbar_items[] = toolbar_item_link(page_link_to('login'), 'login', "Login", $p == 'login');
|
||||
|
||||
if(in_array('logout', $privileges))
|
||||
$toolbar_items[] = toolbar_item_link(page_link_to('logout'), 'logout', "Logout", $p == 'logout');
|
||||
|
||||
return toolbar($toolbar_items);
|
||||
}
|
||||
|
||||
function make_navigation() {
|
||||
global $p;
|
||||
global $privileges;
|
||||
$menu_items = $privileges;
|
||||
$menu_items[] = "faq";
|
||||
$menu = "";
|
||||
|
||||
// Standard Navigation
|
||||
$menu .= make_navigation_for(Get_Text('/'), array (
|
||||
"login",
|
||||
"logout",
|
||||
"register",
|
||||
"faq"
|
||||
));
|
||||
|
||||
// Engel Navigation
|
||||
$menu .= make_navigation_for(Get_Text('inc_schicht_engel'), array (
|
||||
"news",
|
||||
"user_meetings",
|
||||
"user_myshifts",
|
||||
"user_shifts",
|
||||
"user_messages",
|
||||
"user_questions",
|
||||
"user_wakeup",
|
||||
"user_settings"
|
||||
));
|
||||
|
||||
// Admin Navigation
|
||||
$menu .= make_navigation_for(Get_Text('admin/'), array (
|
||||
"admin_arrive",
|
||||
"admin_active",
|
||||
"admin_user",
|
||||
"admin_free",
|
||||
"admin_usershifts",
|
||||
"admin_questions",
|
||||
"admin_angel_types",
|
||||
"admin_user_angeltypes",
|
||||
"admin_shifts",
|
||||
"admin_rooms",
|
||||
"admin_groups",
|
||||
"admin_faq",
|
||||
"admin_language",
|
||||
"admin_import",
|
||||
"admin_log"
|
||||
));
|
||||
return $menu;
|
||||
global $p;
|
||||
global $privileges;
|
||||
$menu = "";
|
||||
|
||||
$specials = array(
|
||||
"faq"
|
||||
);
|
||||
|
||||
$pages = array(
|
||||
"news",
|
||||
"user_meetings",
|
||||
"user_myshifts",
|
||||
"user_shifts",
|
||||
"user_messages",
|
||||
"user_questions",
|
||||
"user_wakeup",
|
||||
"admin_arrive",
|
||||
"admin_active",
|
||||
"admin_user",
|
||||
"admin_free",
|
||||
"admin_usershifts",
|
||||
"admin_questions",
|
||||
"admin_angel_types",
|
||||
"admin_user_angeltypes",
|
||||
"admin_shifts",
|
||||
"admin_rooms",
|
||||
"admin_groups",
|
||||
"admin_faq",
|
||||
"admin_language",
|
||||
"admin_import",
|
||||
"admin_log"
|
||||
);
|
||||
|
||||
foreach ($pages as $page)
|
||||
if (in_array($page, $privileges) || in_array($page, $specials))
|
||||
$menu .= '<li' . ($page == $p ? ' class="selected"' : '') . '><a href="' . page_link_to($page) . '">' . Get_Text($page) . '</a></li>';
|
||||
|
||||
return '<nav><ul>' . $menu . '</ul></nav>';
|
||||
}
|
||||
|
||||
function make_navigation_for($name, $pages) {
|
||||
global $privileges, $p;
|
||||
global $privileges, $p;
|
||||
|
||||
$specials = array (
|
||||
"faq"
|
||||
);
|
||||
$specials = array(
|
||||
"faq"
|
||||
);
|
||||
|
||||
$menu = "";
|
||||
foreach ($pages as $page)
|
||||
if (in_array($page, $privileges) || in_array($page, $specials))
|
||||
$menu .= '<li' . ($page == $p ? ' class="selected"' : '') . '><a href="' . page_link_to($page) . '">' . Get_Text($page) . '</a></li>';
|
||||
$menu = "";
|
||||
foreach ($pages as $page)
|
||||
if (in_array($page, $privileges) || in_array($page, $specials))
|
||||
$menu .= '<li' . ($page == $p ? ' class="selected"' : '') . '><a href="' . page_link_to($page) . '">' . Get_Text($page) . '</a></li>';
|
||||
|
||||
if ($menu != "")
|
||||
$menu = '<nav class="container"><h4>' . $name . '</h4><ul class="content">' . $menu . '</ul></nav>';
|
||||
return $menu;
|
||||
if ($menu != "")
|
||||
$menu = '<nav class="container"><h4>' . $name . '</h4><ul class="content">' . $menu . '</ul></nav>';
|
||||
return $menu;
|
||||
}
|
||||
|
||||
function make_menu() {
|
||||
return make_navigation() . make_langselect();
|
||||
return make_navigation() . make_langselect();
|
||||
}
|
||||
|
||||
function make_langselect() {
|
||||
if (strpos($_SERVER["REQUEST_URI"], "?") > 0)
|
||||
$URL = $_SERVER["REQUEST_URI"] . "&SetLanguage=";
|
||||
else
|
||||
$URL = $_SERVER["REQUEST_URI"] . "?SetLanguage=";
|
||||
|
||||
$html = '<p class="content"><a class="sprache" href="' . htmlspecialchars($URL) . 'DE"><img src="pic/flag/de.png" alt="DE" title="Deutsch"></a>';
|
||||
$html .= '<a class="sprache" href="' . htmlspecialchars($URL) . 'EN"><img src="pic/flag/en.png" alt="EN" title="English"></a></p>';
|
||||
return '<nav class="container"><h4>' . Get_Text("Sprache") . '</h4>' . $html . '</nav>';
|
||||
if (strpos($_SERVER["REQUEST_URI"], "?") > 0)
|
||||
$URL = $_SERVER["REQUEST_URI"] . "&SetLanguage=";
|
||||
else
|
||||
$URL = $_SERVER["REQUEST_URI"] . "?SetLanguage=";
|
||||
|
||||
$html = '<p class="content"><a class="sprache" href="' . htmlspecialchars($URL) . 'DE"><img src="pic/flag/de.png" alt="DE" title="Deutsch"></a>';
|
||||
$html .= '<a class="sprache" href="' . htmlspecialchars($URL) . 'EN"><img src="pic/flag/en.png" alt="EN" title="English"></a></p>';
|
||||
return '<nav class="container"><h4>' . Get_Text("Sprache") . '</h4>' . $html . '</nav>';
|
||||
}
|
||||
?>
|
||||
|
@ -1,49 +1,49 @@
|
||||
<?php
|
||||
|
||||
|
||||
/**
|
||||
* Leitet den Browser an die übergebene URL weiter und hält das Script an.
|
||||
*/
|
||||
function redirect($to) {
|
||||
header("Location: " . $to, true, 302);
|
||||
die();
|
||||
header("Location: " . $to, true, 302);
|
||||
die();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt den gefilterten REQUEST Wert ohne Zeilenumbrüche zurück
|
||||
*/
|
||||
function strip_request_item($name) {
|
||||
return strip_item($_REQUEST[$name]);
|
||||
return strip_item($_REQUEST[$name]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Testet, ob der angegebene REQUEST Wert ein Integer ist, bzw. eine ID sein könnte.
|
||||
* Testet, ob der angegebene REQUEST Wert ein Integer ist, bzw.
|
||||
* eine ID sein könnte.
|
||||
*/
|
||||
function test_request_int($name) {
|
||||
if (isset ($_REQUEST[$name]))
|
||||
return preg_match("/^[0-9]*$/", $_REQUEST[$name]);
|
||||
return false;
|
||||
if (isset($_REQUEST[$name]))
|
||||
return preg_match("/^[0-9]*$/", $_REQUEST[$name]);
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt den gefilterten REQUEST Wert mit Zeilenumbrüchen zurück
|
||||
*/
|
||||
function strip_request_item_nl($name) {
|
||||
return preg_replace("/([^\p{L}\p{S}\p{P}\p{Z}\p{N}+\n]{1,})/ui", '', strip_tags($_REQUEST[$name]));
|
||||
return preg_replace("/([^\p{L}\p{S}\p{P}\p{Z}\p{N}+\n]{1,})/ui", '', strip_tags($_REQUEST[$name]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Entfernt unerwünschte Zeichen
|
||||
*/
|
||||
function strip_item($item) {
|
||||
return preg_replace("/([^\p{L}\p{S}\p{P}\p{Z}\p{N}+]{1,})/ui", '', strip_tags($item));
|
||||
return preg_replace("/([^\p{L}\p{S}\p{P}\p{Z}\p{N}+]{1,})/ui", '', strip_tags($item));
|
||||
}
|
||||
|
||||
/**
|
||||
* Überprüft eine E-Mail-Adresse.
|
||||
*/
|
||||
function check_email($email) {
|
||||
return (bool) preg_match("#^([a-zA-Z0-9_+\-])+(\.([a-zA-Z0-9_+\-])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([\p{L}0-9])+(([\-])+([\p{L}0-9])+)*\.)+([\p{L}])+(([\-])+([\p{L}0-9])+)*))$#u", $email);
|
||||
return (bool) preg_match("#^([a-zA-Z0-9_+\-])+(\.([a-zA-Z0-9_+\-])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([\p{L}0-9])+(([\-])+([\p{L}0-9])+)*\.)+([\p{L}])+(([\-])+([\p{L}0-9])+)*))$#u", $email);
|
||||
}
|
||||
|
||||
?>
|
||||
|
@ -1,62 +0,0 @@
|
||||
function isClass(object, className) {
|
||||
return (object.className.search('(^|\\s)' + className + '(\\s|$)') != -1);
|
||||
}
|
||||
|
||||
var grossbild_an = 0
|
||||
|
||||
function grossbild_over(e) {
|
||||
if(grossbild_an) return
|
||||
grossbild_an = 1
|
||||
if(!e) e = window.event;
|
||||
body = document.getElementsByTagName("body")[0]
|
||||
i = document.createElement("img")
|
||||
i.src = e.target.src;
|
||||
i.style.position = "absolute"
|
||||
/*a = ""
|
||||
for(b in e) a += b + " "
|
||||
alert(a)*/
|
||||
i.style.top = e.clientY + window.scrollY
|
||||
i.style.left = e.clientX + window.scrollX
|
||||
i.id = "mouseoverphoto"
|
||||
i.onmouseover = grossbild_over
|
||||
i.onmouseout = grossbild_out
|
||||
//i.onmousemove = grossbild_move
|
||||
body.appendChild(i);
|
||||
}
|
||||
|
||||
function grossbild_out(e) {
|
||||
if(!grossbild_an) return
|
||||
grossbild_an = 0
|
||||
if(!e) e = window.event;
|
||||
body = document.getElementsByTagName("body")[0]
|
||||
i = document.getElementById("mouseoverphoto")
|
||||
body.removeChild(i)
|
||||
}
|
||||
|
||||
function grossbild_move(e) {
|
||||
if(!e) e = window.event;
|
||||
i = document.getElementById("mouseoverphoto")
|
||||
i.style.top = e.clientY + window.scrollY
|
||||
i.style.left = e.clientX + window.scrollX
|
||||
}
|
||||
|
||||
function grossbild_register(objekt) {
|
||||
objekt.onmouseover = grossbild_over
|
||||
objekt.onmouseout = grossbild_out
|
||||
objekt.onmousemove = grossbild_move
|
||||
}
|
||||
|
||||
function grossbild_registrieren() {
|
||||
if(grossbild_altonload)
|
||||
grossbild_altonload()
|
||||
|
||||
objekte = document.getElementsByTagName("img");
|
||||
for(var i = 0; i < objekte.length; i++) {
|
||||
if(isClass(objekte[i], "photo")) {
|
||||
grossbild_register(objekte[i])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var grossbild_altonload = window.onload
|
||||
window.onload = grossbild_registrieren
|
@ -1,83 +1,3 @@
|
||||
|
||||
body, .background {
|
||||
background-color: #131313;
|
||||
color: #424242;
|
||||
line-height: 150%;
|
||||
font-family: Trebuchet MS, Lucida Grande, Arial, sans-serif;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #424242
|
||||
}
|
||||
|
||||
td {
|
||||
font-size: small
|
||||
}
|
||||
|
||||
a:active, a:hover {
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
li {
|
||||
font-size: small
|
||||
}
|
||||
|
||||
.content {
|
||||
background-color: #131313;
|
||||
color: #424242;
|
||||
}
|
||||
|
||||
.contenttopic, h1 {
|
||||
font-weight: bold;
|
||||
font-size: small;
|
||||
color: #000000;
|
||||
background-color: #333333
|
||||
}
|
||||
|
||||
.border, .container {
|
||||
background-color: #333333;
|
||||
border: 1px solid #424242;
|
||||
}
|
||||
|
||||
.menu {
|
||||
background-color: #131313;
|
||||
color: #424242;
|
||||
font-size: small
|
||||
}
|
||||
|
||||
h4 {
|
||||
background-color: #333333;
|
||||
font-weight: bold;
|
||||
font-size: small;
|
||||
color: #000000
|
||||
}
|
||||
|
||||
.linkbox {
|
||||
background-color: #ffffff
|
||||
}
|
||||
|
||||
.linkboxtitle {
|
||||
font-weight: bold;
|
||||
background-color: #000000;
|
||||
color: #ffffff
|
||||
}
|
||||
|
||||
.question {
|
||||
font-weight: bold;
|
||||
font-size: 9pt
|
||||
}
|
||||
|
||||
.engeltreffen {
|
||||
font-weight: bold;
|
||||
font-size: 9pt;
|
||||
color: #ff0000;
|
||||
}
|
||||
|
||||
.answer {
|
||||
font-size: 9pt;
|
||||
}
|
||||
|
||||
.comment {
|
||||
font-size: 6pt;
|
||||
#logo {
|
||||
background-image: url('../pic/engelsystem_logo_30c3.png');
|
||||
}
|
||||
|
@ -1,11 +0,0 @@
|
||||
#logo {
|
||||
background: url('../pic/engelsystem_logo_cccamp2011.png') top left no-repeat;
|
||||
display: block;
|
||||
height: 69px;
|
||||
margin: 10px auto;
|
||||
width: 523px;
|
||||
}
|
||||
|
||||
tr:hover > td {
|
||||
background: #f0f0f0;
|
||||
}
|
@ -1,53 +0,0 @@
|
||||
body.background {
|
||||
background: #000532;
|
||||
}
|
||||
|
||||
footer, footer a {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#body {
|
||||
background: #fff;
|
||||
border: 1px solid #fff;
|
||||
border-radius: 2px;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.content {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
#logo {
|
||||
background: url('../pic/engelsystem_logo_29c3.png') top left no-repeat #fff;
|
||||
display: block;
|
||||
height: 100px;
|
||||
margin: 10px;
|
||||
width: 900px;
|
||||
}
|
||||
|
||||
tr:hover > td {
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
.selection ul li.heading {
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.selection ul li:nth-child(even) {
|
||||
background: #f0f0f0;
|
||||
}
|
||||
|
||||
.error {
|
||||
background: #fff;
|
||||
border-color: #ed1a3b;
|
||||
color: #ed1a3b;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.success {
|
||||
background: #fff;
|
||||
border-color: rgb(0, 178, 107);
|
||||
color: rgb(0, 178, 107);
|
||||
font-weight: bold;
|
||||
}
|
@ -1,105 +0,0 @@
|
||||
body {
|
||||
font-size : small;
|
||||
font-family : Arial;
|
||||
background-color : #f3b115;
|
||||
color : navy;
|
||||
}
|
||||
a {
|
||||
font-family : Arial;
|
||||
font-size : small;
|
||||
text-decoration : none;
|
||||
color : #0000a0;
|
||||
}
|
||||
|
||||
td {
|
||||
font-size : small;
|
||||
}
|
||||
|
||||
A:Visited {
|
||||
font-family : Arial;
|
||||
font-size : small;
|
||||
color : #0000a0;
|
||||
text-decoration : none;
|
||||
}
|
||||
|
||||
A:Active {
|
||||
text-decoration : none;
|
||||
font-family : Arial;
|
||||
font-size : small;
|
||||
}
|
||||
|
||||
A:Hover {
|
||||
font-family : Arial;
|
||||
font-size : small;
|
||||
color : #0000a0;
|
||||
text-decoration : underline;
|
||||
font-weight : bold;
|
||||
}
|
||||
|
||||
li {
|
||||
font-size: small
|
||||
}
|
||||
|
||||
|
||||
H4 {
|
||||
font-family : Arial,Verdana;
|
||||
}
|
||||
|
||||
|
||||
B {
|
||||
font-weight : bold;
|
||||
font-family : Arial;
|
||||
font-size : small;
|
||||
}
|
||||
|
||||
.content {
|
||||
background-color: #ffeba2;
|
||||
color: #000000
|
||||
}
|
||||
|
||||
.contenttopic {
|
||||
font-weight: bold;
|
||||
font-size: small;
|
||||
color: #ffa000;
|
||||
background-color: navy
|
||||
}
|
||||
|
||||
|
||||
|
||||
a.title {
|
||||
color:#ffa000;
|
||||
}
|
||||
.border {
|
||||
background-color: #050509
|
||||
}
|
||||
|
||||
.menu {
|
||||
background-color: #ffeba2;
|
||||
color: navy;
|
||||
font-size: small
|
||||
}
|
||||
|
||||
h4.menu {
|
||||
font-weight: bold;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
.question {
|
||||
font-weight: bold;
|
||||
font-size: 9pt
|
||||
}
|
||||
|
||||
.engeltreffen {
|
||||
font-weight: bold;
|
||||
font-size: 9pt;
|
||||
color: #ff0000;
|
||||
}
|
||||
|
||||
.answer {
|
||||
font-size: 9pt;
|
||||
}
|
||||
|
||||
.comment {
|
||||
font-size : 6pt;
|
||||
}
|
||||
|
@ -1,70 +0,0 @@
|
||||
|
||||
body {
|
||||
font-family: Arial;
|
||||
background-color: #00009f;
|
||||
color: #e0a09f;
|
||||
font-size: small
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #e0ffff
|
||||
}
|
||||
|
||||
td {
|
||||
font-size: small;
|
||||
color: #e0a09f
|
||||
|
||||
}
|
||||
|
||||
a:active, a:hover {
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
li {
|
||||
font-size: small
|
||||
}
|
||||
|
||||
.content {
|
||||
background-color: #90009f;
|
||||
color: #e0a09f
|
||||
}
|
||||
|
||||
.contenttopic {
|
||||
font-weight: bold;
|
||||
font-size: small;
|
||||
color: #e0e09f;
|
||||
background-color: #740057
|
||||
}
|
||||
|
||||
.border {
|
||||
background-color: #0000FF
|
||||
}
|
||||
|
||||
.menu {
|
||||
background-color: #5f0043;
|
||||
color: #e0ff9f;
|
||||
font-size: small
|
||||
}
|
||||
h4.menu {
|
||||
font-weight: bold;
|
||||
font-size: small;
|
||||
color: #e0ff9f
|
||||
}
|
||||
.question {
|
||||
font-weight: bold;
|
||||
font-size: 9pt
|
||||
}
|
||||
|
||||
.engeltreffen {
|
||||
font-weight: bold;
|
||||
font-size: 9pt;
|
||||
color: #ff0000;
|
||||
}
|
||||
|
||||
.answer {
|
||||
font-size: 9pt;
|
||||
}
|
||||
.comment {
|
||||
font-size : 6pt;
|
||||
}
|
@ -1,79 +0,0 @@
|
||||
|
||||
body {
|
||||
font-family: Verdana,Helvetica,Arial;
|
||||
background-color: #e1d6d6;
|
||||
color: #8a0000;
|
||||
font-size: small
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #583a3a
|
||||
}
|
||||
|
||||
td {
|
||||
font-size: small
|
||||
}
|
||||
|
||||
a:active, a:hover {
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
li {
|
||||
font-size: small
|
||||
}
|
||||
|
||||
.content {
|
||||
background-color: #e7e2e2;
|
||||
color: #8a0000
|
||||
}
|
||||
|
||||
.contenttopic {
|
||||
font-weight: bold;
|
||||
font-size: small;
|
||||
color: #ffeded;
|
||||
background-color: #8a0000
|
||||
}
|
||||
|
||||
.border {
|
||||
background-color: #8a0000
|
||||
}
|
||||
|
||||
.menu {
|
||||
background-color: #e7e2e2;
|
||||
color: #8a0000;
|
||||
font-size: small
|
||||
}
|
||||
h4.menu {
|
||||
font-weight: bold;
|
||||
font-size: small;
|
||||
color: #8a0000
|
||||
}
|
||||
|
||||
.linkbox {
|
||||
background-color: #e7e2e2
|
||||
}
|
||||
|
||||
.linkboxtitle {
|
||||
font-weight: bold;
|
||||
background-color: #e7e2e2;
|
||||
color: #8a0000
|
||||
}
|
||||
|
||||
.question {
|
||||
font-weight: bold;
|
||||
font-size: 9pt
|
||||
}
|
||||
|
||||
.engeltreffen {
|
||||
font-weight: bold;
|
||||
font-size: 9pt;
|
||||
color: #ff0000;
|
||||
}
|
||||
|
||||
.answer {
|
||||
font-size: 9pt;
|
||||
}
|
||||
.comment {
|
||||
font-size : 6pt;
|
||||
}
|
@ -1,76 +0,0 @@
|
||||
|
||||
body, .background {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
background-color: #121327;
|
||||
color: #FFFFFF;
|
||||
font-size: small
|
||||
}
|
||||
|
||||
#logo {
|
||||
background-image: url('../pic/himmel_w.png');
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #ff9900
|
||||
}
|
||||
|
||||
td {
|
||||
font-size: small
|
||||
}
|
||||
|
||||
a:active, a:hover {
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
li {
|
||||
font-size: small
|
||||
}
|
||||
|
||||
.content {
|
||||
background-color: #636e77;
|
||||
color: #FFFFFF
|
||||
}
|
||||
|
||||
.contenttopic {
|
||||
font-weight: bold;
|
||||
font-size: small;
|
||||
color: #FF9900;
|
||||
background-color: #333e47
|
||||
}
|
||||
|
||||
.border, .container {
|
||||
background-color: #000000
|
||||
}
|
||||
|
||||
.menu {
|
||||
background-color: #1f203f;
|
||||
color: #fff3bf;
|
||||
font-size: small
|
||||
}
|
||||
h4.menu {
|
||||
font-weight: bold;
|
||||
font-size: small;
|
||||
color: #fff3bf
|
||||
}
|
||||
.question {
|
||||
font-weight: bold;
|
||||
font-size: 9pt
|
||||
}
|
||||
|
||||
.engeltreffen {
|
||||
font-weight: bold;
|
||||
font-size: 9pt;
|
||||
color: #FF0000;
|
||||
}
|
||||
|
||||
.answer {
|
||||
font-size: 9pt;
|
||||
}
|
||||
.comment {
|
||||
font-size : 6pt;
|
||||
}
|
||||
|
||||
h4, h1, th {
|
||||
background: #333E47;
|
||||
}
|
@ -1,70 +0,0 @@
|
||||
|
||||
body {
|
||||
font-family: Arial;
|
||||
background-color: #353d87;
|
||||
color: #FFFFFF;
|
||||
font-size: small
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #832fb8
|
||||
}
|
||||
|
||||
td {
|
||||
font-size: small;
|
||||
color: #353d87
|
||||
|
||||
}
|
||||
|
||||
a:active, a:hover {
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
li {
|
||||
font-size: small
|
||||
}
|
||||
|
||||
.content {
|
||||
background-color: #fff3bf;
|
||||
color: #353d87
|
||||
}
|
||||
|
||||
.contenttopic {
|
||||
font-weight: bold;
|
||||
font-size: small;
|
||||
color: #fff3bf;
|
||||
background-color: #353daa
|
||||
}
|
||||
|
||||
.border {
|
||||
background-color: #0000FF
|
||||
}
|
||||
|
||||
.menu {
|
||||
background-color: #c5bfff;
|
||||
color: #973cff;
|
||||
font-size: small
|
||||
}
|
||||
h4.menu {
|
||||
font-weight: bold;
|
||||
font-size: small;
|
||||
color: #973cff
|
||||
}
|
||||
.question {
|
||||
font-weight: bold;
|
||||
font-size: 9pt
|
||||
}
|
||||
|
||||
.engeltreffen {
|
||||
font-weight: bold;
|
||||
font-size: 9pt;
|
||||
color: #ff0000;
|
||||
}
|
||||
|
||||
.answer {
|
||||
font-size: 9pt;
|
||||
}
|
||||
.comment {
|
||||
font-size : 6pt;
|
||||
}
|
@ -1,70 +0,0 @@
|
||||
|
||||
body {
|
||||
font-family: Arial;
|
||||
background-color: #a4ffff;
|
||||
color: #f7ff00;
|
||||
font-size: small
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #a45f9f
|
||||
}
|
||||
|
||||
td {
|
||||
font-size: small;
|
||||
color: #f7ff00
|
||||
|
||||
}
|
||||
|
||||
a:active, a:hover {
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
li {
|
||||
font-size: small
|
||||
}
|
||||
|
||||
.content {
|
||||
background-color: #bd9bff;
|
||||
color: #f7ff00
|
||||
}
|
||||
|
||||
.contenttopic {
|
||||
font-weight: bold;
|
||||
font-size: small;
|
||||
color: #f7ff00;
|
||||
background-color: #ffb2ff
|
||||
}
|
||||
|
||||
.border {
|
||||
background-color: #0000FF
|
||||
}
|
||||
|
||||
.menu {
|
||||
background-color: #ffb2ff;
|
||||
color: #f7ff00;
|
||||
font-size: small
|
||||
}
|
||||
h4.menu {
|
||||
font-weight: bold;
|
||||
font-size: small;
|
||||
color: #f7ff00
|
||||
}
|
||||
.question {
|
||||
font-weight: bold;
|
||||
font-size: 9pt
|
||||
}
|
||||
|
||||
.engeltreffen {
|
||||
font-weight: bold;
|
||||
font-size: 9pt;
|
||||
color: #ff0000;
|
||||
}
|
||||
|
||||
.answer {
|
||||
font-size: 9pt;
|
||||
}
|
||||
.comment {
|
||||
font-size : 6pt;
|
||||
}
|
@ -1,84 +0,0 @@
|
||||
|
||||
body {
|
||||
background-color: #ffffff;
|
||||
|
||||
color: black;
|
||||
|
||||
line-height: 150%;
|
||||
font-family: Trebuchet MS, Lucida Grande, Arial, sans-serif;
|
||||
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #304930
|
||||
}
|
||||
|
||||
td {
|
||||
font-size: small
|
||||
}
|
||||
|
||||
a:active, a:hover {
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
li {
|
||||
font-size: small
|
||||
}
|
||||
|
||||
.content {
|
||||
background-color: #ffffff;
|
||||
color: #000000
|
||||
}
|
||||
|
||||
.contenttopic {
|
||||
font-weight: bold;
|
||||
font-size: small;
|
||||
color: #000000;
|
||||
background-color: #A4C93C
|
||||
}
|
||||
|
||||
.border {
|
||||
background-color: #A4C93C
|
||||
}
|
||||
|
||||
.menu {
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
font-size: small
|
||||
}
|
||||
h4.menu {
|
||||
background-color: #A4C93C;
|
||||
font-weight: bold;
|
||||
font-size: small;
|
||||
color: #000000
|
||||
}
|
||||
|
||||
.linkbox {
|
||||
background-color: #ffffff
|
||||
}
|
||||
|
||||
.linkboxtitle {
|
||||
font-weight: bold;
|
||||
background-color: #000000;
|
||||
color: #ffffff
|
||||
}
|
||||
|
||||
.question {
|
||||
font-weight: bold;
|
||||
font-size: 9pt
|
||||
}
|
||||
|
||||
.engeltreffen {
|
||||
font-weight: bold;
|
||||
font-size: 9pt;
|
||||
color: #ff0000;
|
||||
}
|
||||
|
||||
.answer {
|
||||
font-size: 9pt;
|
||||
}
|
||||
.comment {
|
||||
font-size : 6pt;
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 6.5 KiB |
Binary file not shown.
After Width: | Height: | Size: 733 B |
Binary file not shown.
After Width: | Height: | Size: 714 B |
Binary file not shown.
After Width: | Height: | Size: 693 B |
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
Loading…
Reference in New Issue