$eeid = getOrDie("eeid"); /** * Check the total to be a float */ $total = postOrDie("total"); $users = array_keys(postOrDie("user")); $payer = postOrDie("payer"); $total_f = floatval(str_replace(",", ".", $total)); if ($total_f == 0) { die("Fatal: Bad total (not a float)!"); } $user_c = sizeof($users); /** * Get the +X for ATTENDING users! */ $plus = postOrDie("plus"); $pp = 0; foreach ($users as $u) { $pp += $plus[$u]; } $user_c += $pp; //make sure we have no +X for NON-ATTENDING users: if (array_sum($plus) != $pp) { die("Specified a +X for someone who is not attending!"); } /** * Per user cost */ $per_user = ceil($total_f / (double) $user_c * 100); /** * Check specified user IDs vs DB
} $mode = $_GET['mode']; if ($mode == "forgot") { print <<<EOP Bitte gib deine E-Mail Adresse ein. Falls die Adresse im System hinterlegt ist, bekommst du einen Link zugesendet, um dein Passwort zurück zu setzen:<br> <form method="post" action="password.php?mode=mail"><input type="text" name="mail"><br> <input type="submit" value="Absenden"> </form> EOP; exit; } if (!isset($_DB)) { $_DB = new SQLite3($_CONFIG["DATABASE"]); } if ($mode == "mail") { $addr = postOrDie("mail"); $random = openssl_random_pseudo_bytes(32); $random = base64_encode($random); $q = $_DB->prepare("UPDATE Users SET Token = :1 WHERE Mail = :2"); $q->bindParam(":1", $random); $q->bindParam(":2", $addr); $q->execute(); if ($_DB->changes() > 0) { $link = $_CONFIG["URL"] . "password.php?mode=token&token=" . urlencode($random); mail($addr, "Passwort vergessen", wordwrap("Hallo, fuer deinen Account bei " . $_CONFIG["URL"] . " wurde von der IP " . $_SERVER["REMOTE_ADDR"] . " ein neues Passwort angefordert.\n\n<a href=\"{$link}\">Klicke hier, um ein neues Passwort zu setzen</a>\n\nSollte der Link nicht funktionieren, kopiere ihn in deinen Browser:\n\n{$link}\n\nSolltest du kein neues Passwort angefordert haben, wende dich bitte an einen Administrator!\n", 70), "From: " . $_CONFIG["MAIL_FROM"]); } print "Sollte die angegebene Adresse in der Datenbank hinterlegt sein, so solltest du gleich eine E-Mail mit einem Link für ein neues Passwort bekommen.<br><br>Bis dein Anbieter die Mail empfangen hat, könnten bis zu 15 Minuten vergehen. Vergess auch nicht, mal einen Blick in deinen Spam-Ordner zu werfen, da die Mail dort einsortiert werden könnte.<br><br>Sollte auch nach längerer Zeit keine E-Mail gekommen sein, kontaktiere bitte einen Administrator."; exit; } $token = "auth"; if ($mode == "token") {