<?php include "inc/core.php"; include "inc/functions.php"; /** * Check the event title */ $title = htmlspecialchars(postOrDie("name")); //expected event id: $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:
$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") { $token = getOrDie("token"); if (strlen($token) < 10) { print "Token is too short!"; die; } $q = $_DB->prepare("SELECT * FROM Users WHERE Token = :1"); $q->bindParam(":1", $token); $r = $q->execute(); $_USER = $r->fetchArray(); if (!$_USER) { print "Das Token ist ungültig! Versuch doch bitte, den Link von Hand in deinen Browser zu kopieren, da manche E-Mail Clients den Link beim Anklicken abschneiden."; die; } } else { if ($mode == "change") { include "inc/core.php";