Rennanmeldung

createDbConnection();

/*session_start();
if(!isset($_SESSION[‚userid‘])) {
#die(‚Um dich zu dem Wettbewert anzumelden einloggen‚);
header(„Location: login/?pre=rennanmeldung“);
}*/
if(isset($_GET[‚code‘]))
{
confirmTeampartnerParticipant($dbConnection);
die();
}
else if(isset($_GET[‚postMessage‘]))
{
processRaceRegistration($dbConnection);
die();
}
else if(isset($_GET[‚furterData‘]))
{
processFurtherDataRegistrationInDb($dbConnection);
die();
}

$dbConnection->close();
//——————
function confirmTeampartnerParticipant($dbConnection)
{
$code = $_GET[‚code‘];

echo „Hallo, schön, dass du der Einladung gefolgt bist.
Um deine Anmdung durchzuführen gebe bitte deine E-Mail-Adresse ein:
„;

echo ‚

E-Mail:

‚;

}

function updateDbWithSecondUser($dbConnection)
{
$email = $_POST[‚ownEmail2‘];
//echo „Called updateDbWithSecondUser. Mail:“.$email.“Code: „.$_POST[‚codeCopy‘];

$raceQuery = $dbConnection->query(„SELECT ID FROM `teilnehmer` WHERE email = ‚$email'“);
$user = $raceQuery->fetch_assoc();
$userID = $user[‚ID‘];

$code = $_POST[‚codeCopy‘];
$query = „UPDATE registrations
Set confirmed=’1′, Teilnehmer2_ID=’$userID‘, Teilnehmer2_Email=“
WHERE code = ‚$code'“;
$statement = $dbConnection->query($query);

if($statement)
{
echo „Hiermit hast du deine Einladung zum Rennen bestaetigt.“;

$participent1Query = $dbConnection->query(„SELECT * FROM registrations, teilnehmer WHERE registrations.Teilnehmer1_ID = teilnehmer.ID AND code = ‚$code'“);
if ($participent1Query->num_rows > 0)
{
$participent1 = $participent1Query->fetch_assoc();
sendMail($participent1, „“, $dbConnection, „“, „“);
}
}
else
{
echo ‚Beim Bestaetigen ist leider ein Fehler aufgetreten. Bitte wende dich zur Klaering an sporttrampen@gmail.com.
‚;
return 0;
}
return 1;
}
function processRaceRegistration($dbConnection)
{
$OK = 0;
$securityCodeForTeampartner = generateRandomString();
$new = false;
$email = $_POST[‚ownEmail‘];
if ($email == „“)
{
$email = $_POST[‚ownEmail2′];
}

if($_POST[’new‘] != 1 && participantIsNew($dbConnection, $email))
{
echo „ERROR: Du hast angegeben, dass du bereits bei einem Rennen mitgemacht hast.
Deine E-Mail-Adresse befindet sich allerdings noch nicht in der Datenbank.
Das bedeutet, dass du zuvor eine andere E-Mail-Adresse zur Anmeldung genutzt hast. Bitte wiederhole die Anmeldung mit der korrekten Adresse.

Du hast vergessen mit welcher Adresse du dich angemeldet hast oder möchtest dich mit einer anderen Adresse anmelden? Dann helfen wir dir gerne per Mail weiter.“;
die();
}

if (participantIsNew($dbConnection, $email))
{
insertEMailInParticipantDB($dbConnection, $email);
$new = true;
}

checkDoubleRegistration($dbConnection, $email);

if ($_POST[‚ownEmail2‘] != „“)
{
$OK += updateDbWithSecondUser($dbConnection);
}
else
{
$OK += insertRaceRegistrationIntoDB($_POST[„race_id“], $_POST[„team“], $_POST[„selection“], $_POST[„emailaddress“], $dbConnection, $securityCodeForTeampartner, $email);
}

$participant1 = getParticipantObject($dbConnection, $_SESSION[‚userid‘]);

if ($_POST[„team“] == „single“)
{
$OK++;
}
else //If team
{
$OK += sendMail($participant1, $_POST[„emailaddress“], $dbConnection, $securityCodeForTeampartner, $_POST[„race_id“]);
if($OK == 2)
{
echo „Dein Teampartner hat soeben eine E-Mail bekommen und muss die Einladung noch bestaetigen
„;
}
}

$OK += sendMail($participant1, $email, $dbConnection, ‚0‘, $_POST[„race_id“]); //Confirmationsmail for participant and sporttrampen@gmail.com

if($OK == 3)
{
echo „Deine Anmeldung wurde erfolgreich abgeschickt.

„;
if ($new)
{
echo „Herzlich Willkommen bei deinem ersten Rennen hier bei der DTSG. Wir freuen uns schon dich kennen zu lernen.

Um deine Anmeldung Abzuschließen ergänze bitte noch folgende Daten:
„;
echo ‚

Vorname:

Nachname:

Handynummer:

‚;
}

/*die(„Zur Bestätigung haben wir dir soeben eine E-Mail geschickt.
Zurueck zum Internen bereich„);*/
}
else
{
die(„ERROR: Bei deiner Anmeldung ist etwas schief gegangen. Bitte wende dich an sporttrampen@gmail.com“);
}
}

function generateRandomString($length = 10) {
$characters = ‚0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ‘;
$charactersLength = strlen($characters);
$randomString = “;
for ($i = 0; $i < $length; $i++) { $randomString .= $characters[rand(0, $charactersLength - 1)]; } return $randomString; } function checkDoubleRegistration($dbConnection, $email) { //$query = "SELECT 'ID' FROM `teilnehmer` WHERE email = '$email'"; $raceQuery = $dbConnection->query(„SELECT ID FROM `teilnehmer` WHERE email = ‚$email'“);
$user = $raceQuery->fetch_assoc();
$userId = $user[‚ID‘];

$raceId = $_POST[„race_id“];
$query = „SELECT * FROM `registrations` WHERE (`Teilnehmer1_ID` = ‚$userId‘ || `Teilnehmer2_ID` = ‚$userId‘) && Event_ID = ‚$raceId'“;
$participent2Query = $dbConnection->query($query);

if ($participent2Query->num_rows > 0)
{
die(„Du bist bereits fuer das Rennen angemeldet und kannst dich kein weiteres mal anmelden. Weiter zum internen Bereich„);
}
}

function participantIsNew($dbConnection, $email)
{
$query = „SELECT * FROM teilnehmer WHERE email = ‚$email'“;
$statement = $dbConnection->query($query);
if ($statement->num_rows > 0)
{
return false;
}
return true;
}

function insertEMailInParticipantDB($dbConnection, $email)
{
$passwort_hash = password_hash(generateRandomString($length = 10), PASSWORD_DEFAULT);
$securitycode = generateRandomString();

$query = „INSERT INTO teilnehmer (email, passwort, securitycode) VALUES (‚$email‘, ‚$passwort_hash‘, ‚$securitycode‘)“;
$statement = $dbConnection->query($query);//

if($statement) {
return 1;
} else {
return 0;
}
}

function insertRaceRegistrationIntoDB($raceID, $isTeam, $partnerID, $partnerMail, $dbConnection, $code, $email)
{
$raceQuery = $dbConnection->query(„SELECT ID FROM `teilnehmer` WHERE email = ‚$email'“);
$user = $raceQuery->fetch_assoc();
$userId = $user[‚ID‘];

if($isTeam == „team“)
{
$query = „INSERT INTO registrations (Event_ID, Teilnehmer1_ID, Teilnehmer2_ID, Teilnehmer2_Email, code) VALUES (‚$raceID‘, ‚$userId‘, ‚$partnerID‘, ‚$partnerMail‘, ‚$code‘)“;
}
else
{
$query = „INSERT INTO registrations (Event_ID, Teilnehmer1_ID) VALUES (‚$raceID‘, ‚$userId‘)“;
}
$result = $dbConnection->query($query);//
if($result) {
return 1;
} else {
echo ‚ERROR: Beim Abspeichern in die Datenbank ist leider ein Fehler aufgetreten
‚;
return 0;
}
}

function getParticipantObject($dbConnection, $participantID)
{
$participent2Query = $dbConnection->query(„SELECT * FROM teilnehmer WHERE ID = ‚$participantID'“);
if ($participent2Query->num_rows > 0)
{
return $participent2Query->fetch_assoc();
}
return false;
}

function wpdocs_set_html_mail_content_type()
{
return ‚text/html‘;
}

function sendMail($participent1, $address, $dbConnection, $code, $raceID)
{
$racesubject = „“;
if($code != „“)
{
$race = getRaceObject($dbConnection, $raceID);
$startdate = (new DateTime($race[‚Startdate‘]))->format(‚d.m.Y‘);
$enddate = (new DateTime($race[‚Enddate‘]))->format(‚d.m.Y‘);
$racesubject = $race[‚Name‘].“ ($startdate – $enddate)“;
}
else
{
$address = $participent1[„email“];
}
#$from = $participent1[‚email‘];
$name = $participent1[’name‘];
if ($name == „“)
{
$name = $participent1[„email“];
}

if($code == ‚0‘)
{
$subject = „Anmeldebestätigung zum DTSG Rennen $racesubject“;
$msg = createHTMLConfirmation($name);

add_filter( ‚wp_mail_content_type‘, ‚wpdocs_set_html_mail_content_type‘ );
wp_mail($address, $subject, $msg);
remove_filter( ‚wp_mail_content_type‘, ‚wpdocs_set_html_mail_content_type‘ );
}
else if($code != „“)
{
$subject = „Einladung zum DTSG-Rennen $racesubject“;
$msg = createHTMLInvitation($name, $code);

add_filter( ‚wp_mail_content_type‘, ‚wpdocs_set_html_mail_content_type‘ );
wp_mail($address, $subject, $msg);
remove_filter( ‚wp_mail_content_type‘, ‚wpdocs_set_html_mail_content_type‘ );
}
else
{
$subject = „Registrierungsbestaetigung deines Teampartners“;
$msg = „Hallo $name,
Dein Teampartner hat soeben deine Renneinladung bestätigt.

Deine DTSG“;
add_filter( ‚wp_mail_content_type‘, ‚wpdocs_set_html_mail_content_type‘ );
wp_mail($address, $subject, $msg);
remove_filter( ‚wp_mail_content_type‘, ‚wpdocs_set_html_mail_content_type‘ );
}

add_filter( ‚wp_mail_content_type‘, ‚wpdocs_set_html_mail_content_type‘ );
wp_mail(„sporttrampen@gmail.com“, „Registrierung eines Teilnehmers“, „Soeben hat sich „.$name.“ oder sein Teampartner für das Rennen: „.$race[‚Name‘].“angemeldet.
Kontakt: \““.$address.“\“.

Infos vom Teilnehmer an uns:
„.$_POST[„info“]);
remove_filter( ‚wp_mail_content_type‘, ‚wpdocs_set_html_mail_content_type‘ );

return 1;
}

function getRaceObject($dbConnection, $raceID)
{
$raceQuery = $dbConnection->query(„SELECT * FROM event WHERE ID = ‚$raceID'“);
if ($raceQuery->num_rows > 0)
{
return $raceQuery->fetch_assoc();
}
}

function createHTMLInvitation($name, $code)
{
return „Hallo,
zu wurdest soeben von $name zum DTSG-Rennen eingeladen.

Um die Anmeldung zu bestätigen folge bitte diesem link.
Manueller Link: http://sporttrampen.de/rennanmeldung/?code=$code

Vielen Dank und bis bald.

Deine DTSG“;
}

function createHTMLConfirmation($name)
{
return „Hallo $name,
dies ist eine Anmeldebestätigung für das DTSG Rennen.
Wir freuen uns auf das Rennen und deine Teilnahme.

Wir sehen uns beim Rennen.

Deine DTSG“;
}

function processFurtherDataRegistrationInDb($dbConnection)
{
$firstname = $_POST[„firstname“];
$lastname = $_POST[„lastname“];
$email = $_POST[„email“];

$mobilenumber = $_POST[„mobilenumber“];
$query = „UPDATE teilnehmer
Set mobilenumber=’$mobilenumber‘, name = ‚$firstname‘, lastname = ‚$lastname‘
WHERE email = ‚$email'“;
$statement = $dbConnection->query($query);
if($statement)
{
die(„Vielen Dank. Deine Daten wurden verfollständigt.“);
}
die(„Fehler beim speichern deiner Daten.“);
}
?>

Wir freuen uns, dass du dich für ein Rennen anmelden möchtest.

Deine E-Mail-Adresse:


Dies ist das erste Mal, dass ich bei der DTSG mitmache.
Info von dir an uns:

Bitte wähle das Rennen aus:

Hast du bereits einen Teampartner?