571 lines
17 KiB
PHP
571 lines
17 KiB
PHP
<?php
|
|
|
|
|
|
// diese Seite stellt die Anmeldefunktion für die eh2007-Seite zur Verfügung
|
|
// (Topics: ~ heißt geplant, - heißt im Bau, + heißt implementiert.)
|
|
// + diese Seite liegt im öffentlichen Serverbereich, dieser darf *.php nicht als plain/text ausliefern ;)
|
|
// + diese Seite verlangt zwingend https
|
|
|
|
/*
|
|
Struktur dieser Seite:
|
|
+ write HTTP header
|
|
+ recall session
|
|
+ check, defuse and shorten input variables
|
|
+ Prüfung auf https
|
|
= OK => continue
|
|
= FAIL => Session-Zwangslogout, Abbruchmeldung und Schlußverarbeitung
|
|
+ Prüfung auf Wartungsstatus
|
|
= OK => continue
|
|
= FAIL => Abbruchmeldung und Schlußverarbeitung
|
|
+ Verarbeitung der Submit-Aktionen (POST), Anzeige des Anmeldeformulars
|
|
*/
|
|
|
|
|
|
|
|
// this script needs following additional server modules for PHP
|
|
// (none)
|
|
|
|
// write HTTP header (anti-cache)
|
|
header('Expires: Sun, 31 Dec 1989 23:59:59 GMT');
|
|
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
|
header('Cache-Control: no-store, no-cache, must-revalidate');
|
|
header('Cache-Control: post-check=0, pre-check=0');
|
|
header('Pragma: no-cache');
|
|
|
|
// recall session
|
|
session_cache_limiter('nocache');
|
|
session_cache_expire(1);
|
|
session_start();
|
|
|
|
//deactivate automatic use of addslashes
|
|
// set_magic_quotes_runtime(0);
|
|
|
|
// define general server constants
|
|
define( "SERVER_SITE_MAINTENANCE", true ); // maintenance state, set to TRUE to lock this page temporarily
|
|
define( "SERVER_LOCALHOST_IP", "127.0.0.1" ); // localhost IP, which does not need authentication
|
|
define( "SERVER_PROTOCOL_HTTPS", "HTTPS" ); // HTTPS protocol name
|
|
|
|
// define server file constants
|
|
define( "SERVER_FILE_TEMPLATE", "template.shtml" ); // template file
|
|
define( "SERVER_FILE_HEADER", "ssi_site_header.html" ); // SSI file for site header
|
|
define( "SERVER_FILE_INTRO", "ssi_site_intro.html" ); // SSI file for site intro
|
|
define( "SERVER_FILE_EXTRO", "ssi_site_extro.html" ); // SSI file for site extro
|
|
define( "SERVER_FILE_AUTOGEN", "ssi_site_autogen.html" ); // SSI file for site autogeneration warning
|
|
|
|
define( "SERVER_FILE_ANMELDUNGSLISTE", "anmeldung-data/anmeldung.csv" ); // path and file for registered participants
|
|
|
|
// define display constants
|
|
define( "DISPLAY_TEXT_NONE", " " );
|
|
define( "DISPLAY_VALUE_SEPARATOR", chr(9));
|
|
|
|
|
|
// init instance variables
|
|
$intnow = time();
|
|
|
|
$bolauthloggedin = false;
|
|
|
|
$strmsg = ''; // (status/error/etc.) message to user
|
|
$bolauthabort = false; // auth check will be aborted: show auth warning
|
|
$bolauthlogoutnow = false; // user will be logged out
|
|
|
|
$strnomailconfirmation = '';
|
|
$bolok = true; // action feedback, triggers confirmation if true or warning if false
|
|
|
|
|
|
// function library
|
|
|
|
function addmsg ($straddmsg)
|
|
{
|
|
// adds $straddmsg to $strmsg
|
|
global $strmsg;
|
|
if ( $straddmsg != '' )
|
|
{
|
|
$strmsg = $strmsg . '<li>' . $straddmsg . '</li>';
|
|
}
|
|
}
|
|
|
|
function showmsg ()
|
|
{
|
|
// shows messages in $strmsg if available
|
|
global $strmsg, $bolok;
|
|
if ( $strmsg != '' )
|
|
{
|
|
echo'
|
|
<div class="announcement">
|
|
<h1 class="';
|
|
if ( $bolok )
|
|
{
|
|
echo 'confirmation';
|
|
}
|
|
else
|
|
{
|
|
echo 'warning';
|
|
}
|
|
echo '">Feedback</h1>
|
|
<ul>' . $strmsg . '</ul>
|
|
</div>';
|
|
$strmsg = '';
|
|
$bolok = false;
|
|
}
|
|
}
|
|
|
|
// prepare input variables in six steps
|
|
// 1. init internal variable, e.g.: $strparam = '';
|
|
// 2. execute step 3 up to 6 only if external variable exists, e.g.: if ( isset($_GET['txt_param']) )
|
|
// 3. convert to correct type, e.g.: $gstrparam = (string) $_GET['param'];
|
|
// 4. defuse dangerous content, e.g.: $gstrparam = trim( addslashes( htmlentities( urldecode( $gstrparam ), ENT_QUOTES )));
|
|
// 5. limit allowed size, e.g.: if ( strlen( $gstrparam ) > 255 ) $gstrparam = substr( $gstrparam, 0, 255 );
|
|
// 6. on demand evaluate content and overwrite respective internal variables, e.g. $strparam = $gstrparam;
|
|
|
|
|
|
$strnick = '';
|
|
if ( isset($_POST['txt_nick']) )
|
|
{
|
|
$pstrnick = (string) $_POST['txt_nick'];
|
|
$pstrnick = str_replace( chr(13) . chr(10), '\n', $pstrnick );
|
|
$pstrnick = str_replace( chr(13), '\n', $pstrnick );
|
|
$pstrnick = str_replace( chr(10), '\n', $pstrnick );
|
|
$pstrnick = str_replace( chr(9), '\t', $pstrnick );
|
|
$pstrnick = trim( stripslashes( htmlentities( $pstrnick, ENT_QUOTES )));
|
|
if ( strlen( $pstrnick ) > 255 ) $pstrnick = substr( $pstrnick, 0, 255 );
|
|
$strnick = $pstrnick;
|
|
|
|
if ( $strnick == '' )
|
|
{
|
|
addmsg ( 'Bitte wähle einen Nickname, mit dem Du auf dem Easterhegg angesprochen werden möchtest.' );
|
|
$bolok = false;
|
|
}
|
|
}
|
|
|
|
$stremail = '';
|
|
if ( isset($_POST['txt_email']) )
|
|
{
|
|
$pstremail = (string) $_POST['txt_email'];
|
|
$pstremail = str_replace( chr(13) . chr(10), '\n', $pstremail );
|
|
$pstremail = str_replace( chr(13), '\n', $pstremail );
|
|
$pstremail = str_replace( chr(10), '\n', $pstremail );
|
|
$pstremail = str_replace( chr(9), '\t', $pstremail );
|
|
$pstremail = trim( stripslashes( htmlentities( $pstremail, ENT_QUOTES )));
|
|
if ( strlen( $pstremail ) > 255 ) $pstremail = substr( $pstremail, 0, 255 );
|
|
$stremail = $pstremail;
|
|
}
|
|
|
|
$strstatus = 'Normal';
|
|
if ( isset($_POST['opt_status']) )
|
|
{
|
|
$pstrstatus = (string) $_POST['opt_status'];
|
|
$pstrstatus = trim( stripslashes( htmlentities( $pstrstatus, ENT_QUOTES )));
|
|
if ( strlen( $pstrstatus ) > 255 ) $pstrstatus = substr( $pstrstatus, 0, 255 );
|
|
$strstatus = $pstrstatus;
|
|
|
|
// zusätzliche Engelprüfung, falls jemand die Sperre gehackt hat
|
|
if ( $strstatus == 'Engel' )
|
|
{
|
|
addmsg ( 'Eine Anmeldung als Engel ist nicht mehr möglich.<br />Falls Du der Meinung bist, dass dies in Deinem speziellen Fall nicht klug ist, wende Dich bitte an die Organisatoren.' );
|
|
$strstatus = 'Hacker';
|
|
$bolok = false;
|
|
}
|
|
|
|
// validate -> schöner (und aufwendiger) wären dynamische Arrays, aber das funktioniert auch so gut genug...
|
|
if ( $strstatus != 'Normal' && $strstatus != 'Mitglied' && $strstatus != 'Engel' && $strstatus != 'Ermaeszigt' )
|
|
{
|
|
$strstatus = 'Hacker';
|
|
}
|
|
|
|
// Look! Hacker ;-)
|
|
if ( $strstatus == 'Hacker' )
|
|
{
|
|
addmsg ( 'Aufgrund Deiner (fast) erfolgreichen Hackversuche gehen wir davon aus, dass Du bereits CCC-Mitglied bist. ;-)' );
|
|
$strstatus = 'Mitglied';
|
|
}
|
|
}
|
|
|
|
$intwurst = 0;
|
|
if ( isset($_POST['txt_wurst']) )
|
|
{
|
|
$pintwurst = (integer) $_POST['txt_wurst'];
|
|
if ( $pintwurst > 65535 ) $pintwurst = 0;
|
|
if ( $pintwurst >= 0 and $pintwurst <= 9 )
|
|
{
|
|
$intwurst = $pintwurst;
|
|
}
|
|
else
|
|
{
|
|
addmsg ( 'Bitte korrigiere die Anzahl der Wurstbrötchen, eine einstellige Zahl sollte genügen. ;-)' );
|
|
$bolok = false;
|
|
}
|
|
}
|
|
|
|
$intkaese = 0;
|
|
if ( isset($_POST['txt_kaese']) )
|
|
{
|
|
$pintkaese = (integer) $_POST['txt_kaese'];
|
|
if ( $pintkaese > 65535 ) $pintkaese = 0;
|
|
if ( $pintkaese >= 0 and $pintkaese <= 9 )
|
|
{
|
|
$intkaese = $pintkaese;
|
|
}
|
|
else
|
|
{
|
|
addmsg ( 'Bitte korrigiere die Anzahl der Käsebrötchen, eine einstellige Zahl sollte genügen. ;-)' );
|
|
$bolok = false;
|
|
}
|
|
}
|
|
|
|
$intmarmelade = 0;
|
|
if ( isset($_POST['txt_marmelade']) )
|
|
{
|
|
$pintmarmelade = (integer) $_POST['txt_marmelade'];
|
|
if ( $pintmarmelade > 65535 ) $pintmarmelade = 0;
|
|
if ( $pintmarmelade >= 0 and $pintmarmelade <= 9 )
|
|
{
|
|
$intmarmelade = $pintmarmelade;
|
|
}
|
|
else
|
|
{
|
|
addmsg ( 'Bitte korrigiere die Anzahl der Marmeladenbrötchen, eine einstellige Zahl sollte genügen. ;-)' );
|
|
$bolok = false;
|
|
}
|
|
}
|
|
|
|
$bolobst = false;
|
|
if ( isset($_POST['chk_obst']) )
|
|
{
|
|
$pbolobst = (bool) $_POST['chk_obst'];
|
|
$bolobst = $pbolobst;
|
|
}
|
|
|
|
$bolmuesli = false;
|
|
if ( isset($_POST['chk_muesli']) )
|
|
{
|
|
$pbolmuesli = (bool) $_POST['chk_muesli'];
|
|
$bolmuesli = $pbolmuesli;
|
|
}
|
|
|
|
$bolanmeldung = false;
|
|
if ( isset($_POST['cmd_anmeldung']) )
|
|
{
|
|
$pbolanmeldung = (bool) $_POST['cmd_anmeldung'];
|
|
$bolanmeldung = $pbolanmeldung;
|
|
}
|
|
|
|
|
|
if
|
|
(
|
|
// localhost access
|
|
(
|
|
// direkter Aufruf von localhost
|
|
htmlspecialchars( $_SERVER['HTTP_X_FORWARDED_FOR'], ENT_QUOTES ) == ''
|
|
&&
|
|
htmlspecialchars( $_SERVER['REMOTE_ADDR'], ENT_QUOTES ) == constant("SERVER_LOCALHOST_IP")
|
|
)
|
|
||
|
|
(
|
|
// indirekter Aufruf (z.B. transparenter SSL-Proxy) mit übergebenem localhost
|
|
htmlspecialchars( $_SERVER['HTTP_X_FORWARDED_FOR'], ENT_QUOTES ) == constant("SERVER_LOCALHOST_IP")
|
|
)
|
|
)
|
|
{
|
|
// localhost ist immer eingeloggt
|
|
$sbolauthloggedin = true;
|
|
}
|
|
else
|
|
{
|
|
// check protocol and timeout
|
|
// check secure connection
|
|
// possible results:
|
|
// - secure => continue
|
|
// - insecure => force logout ($bolauthlogoutnow), show error page and prepare message ($strmsg)
|
|
if
|
|
(
|
|
(
|
|
// direct connection without HTTPS
|
|
$_SERVER['HTTPS'] == ''
|
|
&&
|
|
$_SERVER['HTTP_X_FORWARDED_PROTO'] == ''
|
|
)
|
|
||
|
|
(
|
|
// indirect connection without local HTTPS proxy, e.g. orenosp
|
|
strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) != strtolower(constant("SERVER_PROTOCOL_HTTPS"))
|
|
&& $_SERVER['HTTP_X_FORWARDED_PROTO'] != ''
|
|
)
|
|
)
|
|
{
|
|
// insecure connection -> abort
|
|
if ( !$bolauthlogoutnow && $sbolauthloggedin )
|
|
{
|
|
// active login over insecure connection -> force logout
|
|
$bolauthlogoutnow = true;
|
|
addmsg ( 'Du wirst ausgeloggt, da Deine Verbindung unsicher (unverschlüsselt) geworden ist.' );
|
|
}
|
|
addmsg ( '<a href="https://' . $_SERVER['HTTP_HOST'] . $_SERVER["PHP_SELF"] . '">Dein Verbindungsprotokoll ist HTTP. Bitte verwende für die Anmeldung Verschlüsselung mittels HTTPS.</a>' );
|
|
$bolauthabort = true;
|
|
$bolok = false;
|
|
}
|
|
|
|
|
|
// check auth timeout
|
|
// possible results:
|
|
// - auth active => continue
|
|
// - auth timeout => force logout ($bolauthlogoutnow), prepare message ($strmsg) and continue
|
|
|
|
if ( $sbolauthloggedin && !$bolauthlogoutnow )
|
|
{
|
|
// write message on user authentication expired -> also fire a logout ($bolauthlogoutnow)
|
|
// echo '<div class="warning">Du wurdest ausgeloggt wegen mehr als ' . constant("AUTH_TIMEOUT_MINUTES") . ' Minuten Inaktivität.</div><br>';
|
|
$bolauthlogoutnow = true;
|
|
addmsg ( 'Du wirst ausgeloggt wegen mehr als ' . constant("AUTH_TIMEOUT_MINUTES") . ' Minuten Inaktivität.' );
|
|
}
|
|
// restart timeout
|
|
$sintauthprevtime = $intnow;
|
|
}
|
|
|
|
if ( $bolauthlogoutnow || $bollogout )
|
|
{
|
|
// logout
|
|
if ( $bolauthlogoutnow )
|
|
{
|
|
addmsg ( 'Du wurdest automatisch ausgeloggt. Bitte gegebenenfalls erneut einloggen.' );
|
|
}
|
|
$sbolauthloggedin = false;
|
|
}
|
|
|
|
// check maintenance state
|
|
if ( constant("SERVER_SITE_MAINTENANCE") )
|
|
{
|
|
// cancel because of maintenance
|
|
$strmsg = '';
|
|
addmsg ( 'Die Anmeldung ist zurzeit deaktiviert.' );
|
|
$bolok = false;
|
|
$bolauthabort = true;
|
|
}
|
|
|
|
// Well, Checkpoint.
|
|
// Now a defined and normal state of checking has been reached.
|
|
// Possible states are now:
|
|
// - $sbolauthloggedin = true: user has successfully authenticated and is still logged in
|
|
// - $sbolauthloggedin = false: user is either not (yet) authenticated or authentication has been expired
|
|
// If there were any messages on the way up to here, they are stored as list items (<li>) in variable $strmsg.
|
|
|
|
|
|
// check auth phrase if user tries to login
|
|
if ( !$bolauthabort )
|
|
{
|
|
// login accepted
|
|
$sbolauthloggedin = true;
|
|
}
|
|
|
|
|
|
// prepare page
|
|
// assume that all ssi files are there. No, I won't check _that_ explicitely.
|
|
// If they ain't there, the user gets a partial page. ...so what? ;o)
|
|
|
|
readfile( constant("SERVER_FILE_HEADER") );
|
|
echo'
|
|
<!-- begin of specific page header -->
|
|
<title>Easterhegg 2007 - Anmeldung</title>
|
|
<!-- end of specific page header -->';
|
|
|
|
readfile( constant("SERVER_FILE_INTRO") );
|
|
echo'
|
|
<!-- begin of specific page content -->
|
|
';
|
|
|
|
echo
|
|
'
|
|
<div id="main">
|
|
|
|
<h1>Anmeldung</h1>
|
|
|
|
';
|
|
showmsg();
|
|
|
|
if ( !$sbolauthloggedin )
|
|
{
|
|
// show anmeldung page and then die
|
|
|
|
if ( !$bolauthabort )
|
|
{
|
|
// show login page
|
|
}
|
|
|
|
// close page and stoprun.
|
|
echo'
|
|
|
|
<!-- end of specific page content -->
|
|
|
|
';
|
|
readfile( constant("SERVER_FILE_EXTRO") );
|
|
|
|
die();
|
|
}
|
|
|
|
// Well, Checkpoint.
|
|
// Now the user is proofed to be successfully logged in. (All others are wiped out.)
|
|
// From here on the user is authorized to enjoy all the following features.
|
|
// default sequence within each chapter:
|
|
// 1. headline
|
|
// 2. submit action
|
|
// 3. showmsg();
|
|
// 4. user forms
|
|
// 5. showmsg();
|
|
// 6. five empty rows to separate from next chapter ;)
|
|
|
|
|
|
|
|
// show anmeldung chapter
|
|
|
|
if ( $bolanmeldung )
|
|
{
|
|
if ( $bolok )
|
|
{
|
|
// prüfen, ob die Anmeldungsliste überhaupt vorhanden und beschreibbar ist
|
|
if ( !is_writable( constant("SERVER_FILE_ANMELDUNGSLISTE") ))
|
|
{
|
|
addmsg ( 'Die Anmeldungsliste ist zurzeit nicht verfügbar bzw. gesperrt.<br />Falls Du das Gefühl hast, daß dies nicht okay ist, kontaktiere bitte die Orga-Crew. Danke Dir.');
|
|
$bolok = false;
|
|
}
|
|
}
|
|
|
|
if ( $bolok )
|
|
{
|
|
// prüfen, ob dieser Nickname bereits angemeldet ist
|
|
$strfile = file_get_contents( constant("SERVER_FILE_ANMELDUNGSLISTE") );
|
|
|
|
if ( stripos( $strfile, chr(10) . html_entity_decode( $strnick, ENT_QUOTES ) . chr(9) ) !== false )
|
|
{
|
|
// Nickname existiert bereits
|
|
addmsg ( 'Mit diesem Nickname ist bereits ein Teilnehmer angemeldet.<br />Bitte wähle einen anderen Nickname.' );
|
|
$bolok = false;
|
|
}
|
|
}
|
|
|
|
if ( $bolok )
|
|
{
|
|
// Anmeldung speichern
|
|
if ( $intfileid = fopen( constant("SERVER_FILE_ANMELDUNGSLISTE"), "a" ))
|
|
{
|
|
if ( !fwrite( $intfileid, html_entity_decode( $strnick, ENT_QUOTES ) . chr(9) . $strstatus . chr(9) . html_entity_decode ( $stremail, ENT_QUOTES ) . chr(9) . $intwurst . chr(9) . $intkaese . chr(9) . $intmarmelade . chr(9) . (integer) $bolobst . chr(9) . (integer) $bolmuesli . chr(9) . date( "Y.m.d-H:i:s", $intnow ) . chr(10) ))
|
|
{
|
|
$bolok = false;
|
|
};
|
|
|
|
if ( !fclose( $intfileid ))
|
|
{
|
|
$bolok = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$bolok = false;
|
|
}
|
|
|
|
if ( $bolok )
|
|
{
|
|
if ( $stremail != '' )
|
|
{
|
|
$strnomailconfirmation = '<br />Hinweis: Es wird keine zusätzliche Bestätigungsmail verschickt.';
|
|
}
|
|
addmsg ( 'Deine Anmeldung ist hiermit erfolgt. (' . date( "d.m.Y H:i:s", $intnow ) . ')' . $strnomailconfirmation );
|
|
addmsg ( 'Vielen Dank für Dein Interesse - Bis bald in Hamburg.' );
|
|
}
|
|
else
|
|
{
|
|
addmsg ( 'Deine Anmeldung konnte nicht gespeichert werden!<br />Bitte kontaktiere die Orga-Crew! Du bist nicht angemeldet!' );
|
|
}
|
|
}
|
|
}
|
|
showmsg();
|
|
|
|
echo
|
|
'
|
|
<form id="anmeldungform" name="anmeldungform" action="' . $_SERVER["PHP_SELF"] . '" method="post">
|
|
|
|
<p>
|
|
<span class="topic">Dein Nickname:</span>
|
|
<input class="db" name="txt_nick" type="text" value="' . $strnick. '" />
|
|
<span class="topic">Deine Emailadresse (optional):</span>
|
|
<input class="db" name="txt_email" type="text" value="' . $stremail . '" />
|
|
</p>
|
|
|
|
<span class="topic">Du zahlst einmalig für den gesamten Zeitraum (vier Tage):</span>
|
|
|
|
<span class="line"><input name="opt_status" id="opt_status" class="control" type="radio" style="width:20px" value="Normal"';
|
|
if ( $strstatus == 'Normal' ) echo ' checked="checked"';
|
|
echo ' />50 Euro als Normalsterblicher</span>
|
|
|
|
<span class="line"><input name="opt_status" id="opt_status" class="control" type="radio" style="width:20px" value="Mitglied"';
|
|
if ( $strstatus == 'Mitglied' ) echo ' checked="checked"';
|
|
echo ' />35 Euro als CCC-Mitglied</span>
|
|
|
|
<span class="line"><input name="opt_status" id="opt_status" class="control" type="radio" style="width:20px" disabled="true" value="Engel"';
|
|
if ( $strstatus == 'Engel' ) echo ' checked="checked"';
|
|
echo ' /><strike>25 Euro als Engel (freiwillige Helfer)</strike> - Es haben sich ausreichend Engel angemeldet -> Danke!<span class="line" style="margin-left:50px">Falls speziell Du unbedingt noch zu den Engeln gehören solltest, wende Dich bitte an die Organisatoren.</span></span>
|
|
|
|
<span class="line"><input name="opt_status" id="opt_status" class="control" type="radio" style="width:20px" value="Ermaeszigt"';
|
|
if ( $strstatus == 'Ermaeszigt' ) echo ' checked="checked"';
|
|
echo ' />25 Euro als Schüler, erwerbslos etc. (nur gegen gültigen Nachweis)</span>
|
|
|
|
<p>
|
|
<span class="line">Im Preis enthalten ist eine Easterhegg-Tasse sowie ein tägliches Frühstück (Brötchen, Wurst, Obst, Käse, Müsli) als auch jederzeit Tee und Kaffee (Flatrate).</span>
|
|
</p>
|
|
|
|
<p>
|
|
<span class="line">Zur Kalkulation der benötigten Nahrungsmenge teile uns bitte mit, was und wieviel Du täglich zum Frühstück benötigst.</span>
|
|
</p>
|
|
|
|
<p>
|
|
';
|
|
|
|
echo
|
|
'
|
|
<span class="topic">Wurstbrötchen: </span>
|
|
<input class="right" name="txt_wurst" type="text" value="' . $intwurst . '" />
|
|
<span class="topic">Käsebrötchen: </span>
|
|
<input class="right" name="txt_kaese" type="text" value="' . $intkaese . '" />
|
|
<span class="topic">Marmeladenbrötchen: </span>
|
|
<input class="right" name="txt_marmelade" type="text" value="' . $intmarmelade . '" />
|
|
';
|
|
|
|
echo '<span class="line"><input id="chk_obst" name="chk_obst" class="control" type="checkbox" value="' . (string) true . '"';
|
|
if ( $bolobst ) echo ' checked="checked"';
|
|
echo ' /> Obst </span>';
|
|
|
|
echo '<span class="line"><input id="chk_muesli" name="chk_muesli" class="control" type="checkbox" value="' . (string) true . '"';
|
|
if ( $bolmuesli ) echo ' checked="checked"';
|
|
echo ' /> Müsli </span>';
|
|
|
|
echo
|
|
'
|
|
</p>
|
|
|
|
<p>
|
|
<input name="cmd_anmeldung" type="submit" value="Anmeldung bestätigen" />
|
|
</p>
|
|
|
|
</form>
|
|
|
|
|
|
|
|
</p>
|
|
';
|
|
|
|
showmsg();
|
|
|
|
|
|
|
|
|
|
|
|
// close page and stoprun.
|
|
echo
|
|
'
|
|
<!-- end of specific page content -->
|
|
|
|
';
|
|
readfile( constant("SERVER_FILE_EXTRO") );
|
|
|
|
die();
|
|
|
|
?>
|