fullcircle
Nieuwe gebruiker
- Lid geworden
- 17 sep 2009
- Berichten
- 4
Dag allemaal,
Ik heb binnen een site een reserveer pagina voor gasten met een formulier. Als ik de HTML pagina test in een browser en de gegevens invul en op "Verzend" druk maakt de browser connectie met de pagina "reserveren.php" maar verzend geen bericht naar mijn default mailadres.
Zit er een fout in de code waar ik overheen kijk? PHP.ini is volgens mij goed ingesteld.
Ik heb MAMP draaien op mijn Mac en dat draait ook allemaal dus ik vermoed dat het in de code zit.
Kun je een PHP pagina trouwens helemaal stylen met HTML/Dreamweaver en de PHP code embedden in een willekeurige <div> tag of ziet de server het PHP document puur als gegevensverwerker en wordt die niet weergegeven in de browser?
Hieronder het HTML form en de PHP code
Alvast bedankt voor alle hulp,
FullCircle
<div id="maincontent">
<h1>reserveren ></h1>
<form action="reserveren.php" method="post" name="reserveren" target="_top">
<input name="datum" type="text" id="textfield" value="Datum" /><br/>
<input name="tijd" type="text" id="textfield" value="Tijd" /><br/>
<input name="pax" type="text" id="textfield" value="Aantal personen" /><br/>
<input name="naam" type="text" id="textfield" value="Naam" /><br/>
<input name="tel" type="text" id="textfield" value="Telefoonnummer" /><br/>
<input name="email" type="text" id="textfield" value="E-mailadres" /><br/>
<textarea name="message">Bijzonderheden</textarea><br/><br/>
<input name="Verzend" type="submit" value="Verzenden" />
</form>
</div>
<?php
$extra_info = false; // wil je dat er ook extra informatie over de verzender wordt meegestuurd (ip-adres etc.) ? (ja = true en nee = false)
$to = 'helpmij@helpmij.nl'; // je eigen e-mailadres
if ( isset($_POST['submit']) ) { // is er wel iets verzonden?
function check_email($p_sEmail = NULL) // E-mailadres checken
{
if ( ( preg_match('~^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$~i', $p_sEmail) ) && ( strlen($p_sEmail) < 150 ) ) {
return $p_sEmail; // E-mail juiste patroon en niet langer dan 150 karakters
} else {
return false;
}
}
// variabelen ophalen en aan een php-variabele toewijzen, php variabelen beginnen altijd met een $ en hier
// komen ze uit de superglobal $_POST, dit is een soort van ingebouwde array waar al je vars uit flash in
// worden gestoken
$errors = array();
$sender_datum = $_POST['datum'];
$sender_tijd = $_POST['tijd'];
$sender_pax = $_POST['pax'];
$sender_naam = $_POST['naam'];
$sender_phone = $_POST['phone'];
$sender_mail = $_POST['email'];
$sender_message = utf8_decode($_POST['message']);
$sender_msg = str_replace(chr(13),chr(10),$sender_msg);
$sender_key = $_POST['myKey'];
if ( ! ctype_print(sender_name) ) {
$errors[] = 1;
}
if ( ! ctype_print(sender_phone) ) {
$errors[] = 2;
}
if ( ! ctype_print($sender_mail) || !check_email($sender_mail) ) {
$errors[] = 3;
}
if ( ! ctype_print(sender_datum) ) {
$errors[] = 4;
}
if ( ! ctype_print(sender_aantal) ) {
$errors[] = 5;
}
if ( ! ctype_print(sender_msg) ) {
$errors[] = 6;
}
if ( $myKey != $sender_key ) {
$errors[] = 7;
}
//de headers voor de E-mail
$mail_header = 'MIME-Version: 1.0' . "\r\n";
$mail_header .= 'Reply-To: ' . $sender_name . ' <' . $sender_mail . '>' . "\r\n"; // reply-adres
$mail_header .= 'From: ' . $sender_name . ' <' . $sender_mail . '>' . "\r\n"; // afzender van de mail
$mail_header .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
if ( $extra_info ) { // indien de optie "extra informatie" op true staat halen we de gegevens op
$extra_lang = ( strlen($_SERVER['HTTP_ACCEPT_LANGUAGE']) ) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : 'Detectie mislukt';
$extra_browser = ( strlen($_SERVER['HTTP_USER_AGENT']) ) ? $_SERVER['HTTP_USER_AGENT'] : 'Detectie mislukt';
$mail_extra = "\n\n" . 'Extra informatie:'
. "\n" . 'IP-adres: ' . $_SERVER['REMOTE_ADDR'] . ' (' . gethostbyaddr($_SERVER['REMOTE_ADDR']) . ')'
. "\n" . 'Taal: ' . $extra_lang
. "\n" . 'Browser: ' . $extra_browser;
}
$mail_content =
'Date: ' . date('d m Y H:i:s')
. "\n" . '______________________'
. "\n" . 'From: ' . $sender_naam
. "\n" . 'Telefoon: ' . $sender_phone
. "\n" . 'E-mail: ' . $sender_email
. "\n" . 'Datum: ' . $sender_datum
. "\n" . 'Aantal personen: ' . $sender_pax
. "\n" . '______________________'
. "\n" . 'Message: '
. "\n" . $sender_msg
. "\n" . $mail_extra;
echo "Bedankt voor uw reservering!"
if ( count($errors) ) {
die('&success=false&errorCode=' . implode(',', $errors) . '&');
} else {
$mail_send = mail($admin_mail, 'Message from ' . $sender_name, $mail_content, $mail_header);
die('&success=true&');
}
} // end if isset
?>
Ik heb binnen een site een reserveer pagina voor gasten met een formulier. Als ik de HTML pagina test in een browser en de gegevens invul en op "Verzend" druk maakt de browser connectie met de pagina "reserveren.php" maar verzend geen bericht naar mijn default mailadres.
Zit er een fout in de code waar ik overheen kijk? PHP.ini is volgens mij goed ingesteld.
Ik heb MAMP draaien op mijn Mac en dat draait ook allemaal dus ik vermoed dat het in de code zit.
Kun je een PHP pagina trouwens helemaal stylen met HTML/Dreamweaver en de PHP code embedden in een willekeurige <div> tag of ziet de server het PHP document puur als gegevensverwerker en wordt die niet weergegeven in de browser?
Hieronder het HTML form en de PHP code
Alvast bedankt voor alle hulp,
FullCircle
<div id="maincontent">
<h1>reserveren ></h1>
<form action="reserveren.php" method="post" name="reserveren" target="_top">
<input name="datum" type="text" id="textfield" value="Datum" /><br/>
<input name="tijd" type="text" id="textfield" value="Tijd" /><br/>
<input name="pax" type="text" id="textfield" value="Aantal personen" /><br/>
<input name="naam" type="text" id="textfield" value="Naam" /><br/>
<input name="tel" type="text" id="textfield" value="Telefoonnummer" /><br/>
<input name="email" type="text" id="textfield" value="E-mailadres" /><br/>
<textarea name="message">Bijzonderheden</textarea><br/><br/>
<input name="Verzend" type="submit" value="Verzenden" />
</form>
</div>
<?php
$extra_info = false; // wil je dat er ook extra informatie over de verzender wordt meegestuurd (ip-adres etc.) ? (ja = true en nee = false)
$to = 'helpmij@helpmij.nl'; // je eigen e-mailadres
if ( isset($_POST['submit']) ) { // is er wel iets verzonden?
function check_email($p_sEmail = NULL) // E-mailadres checken
{
if ( ( preg_match('~^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$~i', $p_sEmail) ) && ( strlen($p_sEmail) < 150 ) ) {
return $p_sEmail; // E-mail juiste patroon en niet langer dan 150 karakters
} else {
return false;
}
}
// variabelen ophalen en aan een php-variabele toewijzen, php variabelen beginnen altijd met een $ en hier
// komen ze uit de superglobal $_POST, dit is een soort van ingebouwde array waar al je vars uit flash in
// worden gestoken
$errors = array();
$sender_datum = $_POST['datum'];
$sender_tijd = $_POST['tijd'];
$sender_pax = $_POST['pax'];
$sender_naam = $_POST['naam'];
$sender_phone = $_POST['phone'];
$sender_mail = $_POST['email'];
$sender_message = utf8_decode($_POST['message']);
$sender_msg = str_replace(chr(13),chr(10),$sender_msg);
$sender_key = $_POST['myKey'];
if ( ! ctype_print(sender_name) ) {
$errors[] = 1;
}
if ( ! ctype_print(sender_phone) ) {
$errors[] = 2;
}
if ( ! ctype_print($sender_mail) || !check_email($sender_mail) ) {
$errors[] = 3;
}
if ( ! ctype_print(sender_datum) ) {
$errors[] = 4;
}
if ( ! ctype_print(sender_aantal) ) {
$errors[] = 5;
}
if ( ! ctype_print(sender_msg) ) {
$errors[] = 6;
}
if ( $myKey != $sender_key ) {
$errors[] = 7;
}
//de headers voor de E-mail
$mail_header = 'MIME-Version: 1.0' . "\r\n";
$mail_header .= 'Reply-To: ' . $sender_name . ' <' . $sender_mail . '>' . "\r\n"; // reply-adres
$mail_header .= 'From: ' . $sender_name . ' <' . $sender_mail . '>' . "\r\n"; // afzender van de mail
$mail_header .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
if ( $extra_info ) { // indien de optie "extra informatie" op true staat halen we de gegevens op
$extra_lang = ( strlen($_SERVER['HTTP_ACCEPT_LANGUAGE']) ) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : 'Detectie mislukt';
$extra_browser = ( strlen($_SERVER['HTTP_USER_AGENT']) ) ? $_SERVER['HTTP_USER_AGENT'] : 'Detectie mislukt';
$mail_extra = "\n\n" . 'Extra informatie:'
. "\n" . 'IP-adres: ' . $_SERVER['REMOTE_ADDR'] . ' (' . gethostbyaddr($_SERVER['REMOTE_ADDR']) . ')'
. "\n" . 'Taal: ' . $extra_lang
. "\n" . 'Browser: ' . $extra_browser;
}
$mail_content =
'Date: ' . date('d m Y H:i:s')
. "\n" . '______________________'
. "\n" . 'From: ' . $sender_naam
. "\n" . 'Telefoon: ' . $sender_phone
. "\n" . 'E-mail: ' . $sender_email
. "\n" . 'Datum: ' . $sender_datum
. "\n" . 'Aantal personen: ' . $sender_pax
. "\n" . '______________________'
. "\n" . 'Message: '
. "\n" . $sender_msg
. "\n" . $mail_extra;
echo "Bedankt voor uw reservering!"
if ( count($errors) ) {
die('&success=false&errorCode=' . implode(',', $errors) . '&');
} else {
$mail_send = mail($admin_mail, 'Message from ' . $sender_name, $mail_content, $mail_header);
die('&success=true&');
}
} // end if isset
?>