Ik heb een script toevoegen aan database gaat prima, betreft reserveringen voor woningen maar de administrator moet mail krijgen er heeft iemand gereserveerd voor die en die woning. Ik krijg het niet voor elkaar heb geprobeerd code voor email versturen er tussen te zetten maar dan geeft ie de pagina niet weer of er komt niets aan. Onderstaande deel van het script waar ik denk dat de het ergens moet tussen geplaatst worden maar ik kom er niet uit.

if(isset($_POST['naam'])) {
$cal_checkname = checkname($_POST['naam'], 5);
$cal_checkstreet = checkstreet($_POST['straat']);
$cal_checkcity = checkcity($_POST['plaats']);
$cal_checkpostalcodeNL = checkpostalcodeNL($_POST['postcode']);
$cal_checkphonenrNL = checkphonenrNL($_POST['telefoonnummer']);
$cal_checkmailaddress = checkmailaddress($_POST['mailadres']);
$cal_checkfromtilldates = checkfromtilldates($_POST['van'], $_POST['tot'], $_POST['huisnaam']);
$cal_checkhouse = checkhouse($_POST['huis'], $_POST['huisnaam']);
$cal_checkhousenr = checkhousenr($_POST['huisnr']);

$cal_name = mysql_real_escape_string($_POST['naam']);
$cal_street = mysql_real_escape_string($_POST['straat']);
$cal_city = mysql_real_escape_string($_POST['plaats']);
$cal_postalcode = mysql_real_escape_string($_POST['postcode']);
$cal_phonenr = mysql_real_escape_string($_POST['telefoonnummer']);
$cal_mailaddress = mysql_real_escape_string($_POST['mailadres']);
$cal_from = $_POST['van'];
$cal_till = $_POST['tot'];
$cal_housenr = mysql_real_escape_string($_POST['huisnr']);
$cal_housename = mysql_real_escape_string($_POST['huisnaam']);
$cal_housedispname = mysql_real_escape_string($_POST['huis']);

if($cal_checkname && $cal_checkstreet && $cal_checkcity && $cal_checkpostalcodeNL && $cal_checkphonenrNL && $cal_checkmailaddress && $cal_checkfromtilldates && $cal_checkhouse && $cal_checkhousenr) {
//save in database
$cal_from = explode('-', $cal_from);
$cal_till = explode('-', $cal_till);
for($cal_i = 0; $cal_i < 3; $cal_i++) {
if(strlen($cal_from[$cal_i]) < 2) {
$cal_from[$cal_i] = '0' . $cal_from[$cal_i];
}

if(strlen($cal_till[$cal_i]) < 2) {
$cal_till[$cal_i] = '0' . $cal_till[$cal_i];
}
}

$cal_from = mysql_real_escape_string($cal_from[2] . '-' . $cal_from[1] . '-' . $cal_from[0]);
$cal_till = mysql_real_escape_string($cal_till[2] . '-' . $cal_till[1] . '-' . $cal_till[0]);

$cal_query = "SELECT calendar_id
FROM calendars
WHERE calendar_name = '" . $cal_housename . "'
AND calendar_dispname = '" . $cal_housedispname . "';";

$cal_resource = mysql_query($cal_query);
if($cal_resource) {
$cal_result = mysql_fetch_assoc($cal_resource);
$cal_calendar_id = intval($cal_result['calendar_id']);
} else {
//mysql error
print "Helaas is er een fout opgetreden.";
//print "De foutmelding is: " . mysql_error();
exit;
}

$cal_query = "INSERT INTO reservations
VALUES(NULL, '" . $cal_from . "', '" . $cal_till . "', " . $cal_calendar_id . ", 'r', '" . $cal_name . "', '" . $cal_street . "', '" . $cal_housenr . "',
'" . $cal_postalcode . "', '" . $cal_city . "', '" . $cal_phonenr . "', '" . $cal_mailaddress . "');";
if(mysql_query($cal_query)) {
?>Uw reservering is toegevoegd, <a href="showcalendar.php?c=<?php print $cal_housename ?>">keer terug</a>.<?php
} else {
//mysql error
print "Helaas is er een fout opgetreden.";
//print "De foutmelding is: " . $cal_mysql_error();
exit;
}
} else {
$cal_nameerror = !$cal_checkname;
$cal_streeterror = !$cal_checkstreet;
$cal_cityerror = !$cal_checkcity;
$cal_postalcodeerror = !$cal_checkpostalcodeNL;
$cal_phonenrerror = !$cal_checkphonenrNL;
$cal_mailaddresserror = !$cal_checkmailaddress;
$cal_fromtilldateserror = !$cal_checkfromtilldates;
$cal_houseerror = !$cal_checkhouse;
$cal_housenrerror = !$cal_checkhousenr;
$cal_showform = true;
print "<strong style=\"color: red;\">Niet alle velden zijn goed ingevuld!</strong><br><br>";
}
} else {
$cal_showform = true;
$cal_name = "";
$cal_street = "";
$cal_city = "";
$cal_postalcode = "";
$cal_phonenr = "";
$cal_mailaddress = "";
$cal_till = "";
$cal_housenr = "";
}

if($cal_showform) {
$cal_query = "SELECT *
FROM calendars
WHERE calendar_name = '" . mysql_real_escape_string($_GET['c']) . "';";
$cal_resource = mysql_query($cal_query);
if($cal_resource) {
if(mysql_num_rows($cal_resource) == 1) {
$cal_result = mysql_fetch_assoc($cal_resource);
$cal_house = $cal_result['calendar_dispname'];
} else {
print "Dit huis bestaat niet!";
exit;
}
} else {
print "Helaas is er een fout opgetreden!";
//print "De volgende fout trad op: " . mysql_error();
exit;
}
Heb je al een kant-en-klare oplossing om e-mail te gaan versturen?

Een erg veel gebruikte oplossing is phpmailer.
Ook vrij makkelijk om te gebruiken.

Maak eerst even een test script met phpmailer erin, als dit allemaal goed gaat kun je dat in dit script bouwen.
Voor gewone contact formulieren gebruik ik formmail en dat werkt prima. Maar dat gaat hier niet helemaal samen mee omdat dan de formulier actie anders is. Hier voeg ik iets toe en dan moet de admin een bericht krijgen en bezoeker alleen een melding u reservering is toegevoegd. Bij een contactformulier wordt het afgehandeld door formmail die je dan redirect naar een opgegeven pagina.
Wat ik kan verzinnen is dit:

<?php
// De mail die wordt verzonden wannneer er een bericht gepost is
mail($email, $bericht, $messagebericht, $headers);
?>

neer te zetten daar waar staat dat wanneer er zoals bij de opmerking de melding wordt gegeven dat de data correct is ingevoerd in je database.

Niet vergeten de benodigde informatie van de vars op te geven zoals:
<?php
$email, $bericht, $messagebericht, $headers
?>

Omdat je dit nu allemaal zelf moet doen werd voorgesteld gebruik te maken van phpmailer omdat dit hier allemaal voor je geregeld wordt.


Reageren