diff --git a/preis.php b/preis.php index 6420ba2..35fa8ef 100644 --- a/preis.php +++ b/preis.php @@ -15,37 +15,46 @@ $salt = rand(1, 100000); $token = hash('ripemd160', $pwd.$salt); //mailhash which will be used for double vote check -> only hashes stuff before @tu-dresden or @mailbox.tu-dresden to avoid double vote in case of aliases. $mailHash = hash('ripemd160', strtolower(explode("+",explode("@",$empfaenger)[0])[0])); -if(strpos($empfaenger, "@mailbox.tu-dresden.de") != false and !strpos(file_get_contents('../../.hMail.txt'), $mailHash)){ - echo strpos(file_get_contents('../../.hMail.txt'), $mailHash); - //nicht bereits abgesendet (kein hash match) und eine @mailbox addr. - $betreff = 'Formular: Lehrpreise'; -$nachricht = "Hallo.\nHier ist die Umfrage für die Lehrpreis Wahl: https://bildungsportal.sachsen.de/umfragen/limesurvey/index.php/488672?lang=de&authkey=".$token."\nVielen Dank für deine Beteiligung!\n\nHi.\nHere is the Link for the teaching award voting: https://bildungsportal.sachsen.de/umfragen/limesurvey/index.php/488672?lang=de&authkey=".$token."\nThanks alot for your participation!"; -$nachricht = wordwrap($nachricht, 80, "\r\n"); -$header = 'From: fsr@ifsr.de' . "\r\n" . - 'Reply-To: fsr@ifsr.de' . "\r\n" . - 'X-Mailer: PHP/' . phpversion(); +$sem = sem_get(123, 1, 0666, 1); +if (sem_acquire($sem)) { + //critical section to avoid double vote in case of high demands + if(strpos($empfaenger, "mail.") === false and strpos($empfaenger, "@mailbox.tu-dresden.de") != false and !strpos(file_get_contents('../../.hMail.txt'), $mailHash)){ + //nicht bereits abgesendet (kein hash match) und eine @mailbox addr. + $betreff = 'Formular: Lehrpreise'; + $nachricht = "Hallo.\nHier ist die Umfrage für die Lehrpreis Wahl: https://bildungsportal.sachsen.de/umfragen/limesurvey/index.php/146778?newtest=Y&lang=de&authkey=".$token."\nVielen Dank für deine Beteiligung!\n\nHi.\nHere is the Link for the teaching award voting: https://bildungsportal.sachsen.de/umfragen/limesurvey/index.php/146778?newtest=Y&lang=en&authkey=".$token."\nThanks alot for your participation!"; + $nachricht = wordwrap($nachricht, 80, "\r\n"); + $header = 'From: fsr@ifsr.de' . "\r\n" . + 'Reply-To: fsr@ifsr.de' . "\r\n" . + 'X-Mailer: PHP/' . phpversion(); + + //mail senden + mail($empfaenger, $betreff, $nachricht, $header); + //hash speichern + file_put_contents("../../.hMail.txt", $mailHash."\n", FILE_APPEND); + sem_release($sem); + //Erfolgsmeldung + echo "