<?php
/* Prijzen */
$prijzenArray = array(
"400" => "een fiets",
"316" => "een waardenbon",
);
/* einde prijzen */
/* MySQL Config */
$link = mysql_connect('localhost', 'root', 'root') or die('Could not connect: ' . mysql_error());
mysql_select_db('loting') or die('Could not select database');
/* End Config */
/* Mail variabelen */
$mailFrom = ""; // Wat is het e-mailadres waarvan het verstuurd moet worden
$mailName = ""; // Namens wie wordt de mail verstuurd
$mailSubject = "Loting"; // Het onderwerp van de mail
$mailBody = "--- Dit is een automatisch gegenereerd bericht ---"; // De inhoud van de mail
# HIERONDER NIET AANPASSEN, tenzij je weet wat je doet #
$mailHeaders = "MIME-Version: 1.0\r\n";
$mailHeaders .= "Content-type: text/plain; charset=utf-8\r\n";
$mailHeaders .= "From: ". $mailName ." <". $mailFrom .">\r\n";
/* Einde mail variabelen */
/* Functie voor het weergeven van "mooie" foutmeldingen */
function errorMsg($string) {
echo '<div id="errorMsg">'."\n";
echo '<h3>De volgende fouten zijn geconstateerd</h3>'."\n";
echo '<ol>'."\n";
echo $string;
echo '</ol></div>'."\n";
}
/* Einde functie */
/* Controle variable */
$process = false;
/* Eind controle variabele */
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Loting</title>
<!-- CSS -->
<style type="text/css" media="screen">
@import "uni-form.css";
.uniForm #succesMsg{
background: #66FF66;
border:1px solid #df7d7d;
border-width:1px 0;
margin:0 0 1em 0; padding:1em;
}
</style>
</head>
<body>
<form method="post" class="uniForm">
<?php
/* Check of formulier is verzonden */
if(isset($_POST['submit'])) {
$process = true;
/* Foutmelding "buffer" */
$errorMsg = array();
/* eind buffer */
//Controle(s) op naam
if(empty($_POST['naam'])) {
$errorMsg[] = 'U bent vergeten een naam in te vullen.';
}
// Controle(s) op postcode
if(empty($_POST['postcode'])) {
$errorMsg[] = 'U bent vergeten een postcode op te geven.';
}
// Controle(s) op huisnummer
if(empty($_POST['huisnummer'])) {
$errorMsg[] = 'U bent vergeten een huisnummer op te geven.';
} elseif(!is_numeric($_POST['huisnummer'])) {
$errorMsg[] = 'Het ingevoerde huisnummer is niet geldig.';
}
// Controle(s) op e-mail
// Eerst controleren op foute tekens
if(empty($_POST['email'])) {
$errorMsg[] = 'U bent vergeten een email adres op te geven.';
} elseif (!preg_match("/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)*\.([a-zA-Z]{2,6})$/", $_POST['email'])) {
$errorMsg[] = 'Het ingevoerde e-mailadres is ongeldig.';
}
// Controle(s) op code
if(empty($_POST['getal'])) {
$errorMsg[] = 'U bent vergeten het lotnummer in te voeren.';
} elseif(!is_numeric($_POST['getal'])) {
$errorMsg[] = 'Het ingevoerde lotnummer is niet geldig.';
} elseif(strlen($_POST['getal']) != 5) {
$errorMsg[] = 'Het ingevoerde getal bevat geen 5 getallen.';
}
// Kijken of er fouten zijn
if(count($errorMsg) > 0) {
$fullerror = '';
foreach($errorMsg AS $error) {
$fullerror.= '<li>'. $error .'</li>'."\n";
}
errorMsg($fullerror);
} else {
// Checken of persoon uniek is
$checkQuery = "SELECT naam, postcode, huisnummer, email
FROM deelnemers
WHERE (LOWER(postcode) ='". strtolower($_POST['postcode']) ."' AND huisnummer = '". $_POST['huisnummer'] ."')
OR LOWER(naam) = '". strtolower($_POST['naam']) ."'
OR LOWER(email) = '". strtolower($_POST['email']) ."'
";
$checkResult = mysql_query($checkQuery) or die(mysql_error());
if(mysql_num_rows($checkResult) > 0) {
errormsg('<li>U kunt maar 1x mee doen aan deze actie.</li>');
} else {
$deelnemerQuery = "INSERT INTO deelnemers (naam,postcode,huisnummer, email)
VALUES ('". $_POST['naam'] ."', '". $_POST['postcode'] ."', '". $_POST['huisnummer'] ."', '". $_POST['email'] ."')";
mysql_query($deelnemerQuery) or die(mysql_error());
$did = mysql_insert_id();
// Kijken of er een prijs op het getal is gevallen
$lotQuery = "SELECT lid, prijs FROM loten WHERE getal ='". $_POST['getal'] ."'";
$lotResult = mysql_query($lotQuery) or die(mysql_error());
if(mysql_num_rows($lotResult) > 0) {
// Er is een prijs -> kijken of die prijs niet al is vergeven
$lotRow = mysql_fetch_array($lotResult);
$lid = $lotRow['lid'];
$prijs = $lotRow['prijs'];
$winnaarQuery = "SELECT prijs
FROM winnaars w
INNER JOIN loten l
ON w.lid=l.lid";
$winnaarResult = mysql_query($winnaarQuery) or die(mysql_error());
$winnaarRow = mysql_fetch_array($winnaarResult);
if($winnaarRow['prijs'] != $prijs) {
$insertQuery = "INSERT INTO winnaars (lid, did) values ('". $lid ."','". $did ."')";
mysql_query($insertQuery) or die(mysql_error());
mail($_POST['email'], $mailSubject, $mailBody, $mailHeaders);
echo '<div id="succesMsg">Gefeliciteerd, u heeft '. $prijzenArray[$prijs] .' gewonnen.</div>';
} else {
errorMsg('Helaas, iemand voor u deze prijs al gewonnen.');
}
} else {
errorMsg('Helaas, op uw getal is geen prijs gevallen.');
}
}
}
}
?>
<fieldset class="inlineLabels" style="width:300px;">
<legend>Uw gegevens</legend>
<div class="ctrlHolder">
<label for="naam">Naam</label>
<input name="naam" id="naam" value="<?= $process ? $_POST['naam'] : '' ?>" size="25" type="text" class="textInput" />
</div>
<div class="ctrlHolder">
<label for="postcode">Postcode</label>
<input name="postcode" id="postcode" value="<?= $process ? $_POST['postcode'] : '' ?>" size="7" maxlength="6" type="text" class="textInput" />
</div>
<div class="ctrlHolder">
<label for="huisnummer">Huisnummer</label>
<input name="huisnummer" id="huisnummer" value="<?= $process ? $_POST['huisnummer'] : '' ?>" size="5" maxlength="4" type="text" class="textInput" />
</div>
<div class="ctrlHolder">
<label for="email">E-mailadres</label>
<input name="email" id="email" value="<?= $process ? $_POST['email'] : '' ?>" size="25" type="text" class="textInput" />
</div>
<div class="ctrlHolder">
<label for="getal">Code</label>
<input name="getal" id="getal" value="<?= $process ? $_POST['getal'] : '' ?>" size="6" maxlength="5" type="text" class="textInput" />
</div>
<div class="buttonHolder">
<button type="submit" name="submit" class="submitButton">Verstuur</button>
</div>
</fieldset>
</form>
</body>
</html>