PHP en HTML forms werken niet

Status
Niet open voor verdere reacties.

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
?>
 
Zou je de code even de PHP tags en HTML tags kunnen zette?

dan is het stukke overzichtelijker!

Groetjes,
 
neej ik bedoel hier op het forum kan je je codes in de goeie tags zetten. voor de kleuren enzo
 
Je hebt op regel (shoot, kan ik niet zien, maar de een na laatste) dit staan:

PHP:
$mail_send = mail($admin_mail, 'Message from ' . $sender_name, $mail_content, $mail_header);

Moet dat niet zijn:

PHP:
$mail_send = mail($to, 'Message from ' . $sender_name, $mail_content, $mail_header);

En ik zou van:

PHP:
if ( count($errors) ) {

even dit maken:

PHP:
if ( count($errors) > 0 ) {

Ik neem trouwens aan dat je in je eigen ontwikkelomgeving wel je eigen emailadres hebt ingevuld?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan