Beste mensen,

Kan iemand mij helpen, ik ben al dagen bezig om het contactformulier goed te krijgen.
Het formulier wordt vanaf de website netjes verzonden naar de mail maar het ingevulde telefoonnummer komt niet door. Ik zou er graag nog een paar velden aan toe willen voegen maar zit helemaal klem.

Zo komt de mail aan vanaf het contactformulier:

You have been contacted by Hanny Kiesling with regards to , their
additional message is as follows.

"Dit is mijn berichttekst"

You can contact Hanny Kiesling via email, [email protected] or
via phone


Hopelijk kan iemand mij helpen :(

Alvast bedankt.
Hanny Kiesling





Dit is de php:

<?php
if(!$_POST) exit;
// Email address verification, do not edit.
function isEmail($email) {
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));
}

if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");

$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$subject = $_POST['subject'];
$comments = $_POST['comments'];
$verify = $_POST['verify'];

if(trim($name) == '') {
echo '<div class="error_message">Attention! You must enter your name.</div>';
exit();
} else if(trim($email) == '') {
echo '<div class="error_message">Attention! Please enter a valid email address.</div>';
exit();
} else if(!isEmail($email)) {
echo '<div class="error_message">Attention! You have enter an invalid e-mail address, try again.</div>';
exit();
}

if(trim($comments) == '') {
echo '<div class="error_message">Attention! Please enter your message.</div>';
exit();
}

if(get_magic_quotes_gpc()) {
$comments = stripslashes($comments);
}

// Configuration option.
// Enter the email address that you want to emails to be sent to.
// Example $address = "[email protected]";

//$address = "[email protected]";
$address = "[email protected]";

// Configuration option.
// i.e. The standard subject will appear as, "You've been contacted by John Doe."
//Example, $e_subject = '$name . ' has contacted you via Your Website.';

$e_subject = 'You\'ve been contacted by ' . $name . '.';

// Configuration option.
// You can change this if you feel that you need to.
// Developers, you may wish to add more fields to the form, in which case you must be sure to add them here.

$e_body = "You have been contacted by $name with regards to $subject, their additional message is as follows." . PHP_EOL . PHP_EOL;
$e_content = "\"$comments\"" . PHP_EOL . PHP_EOL;
$e_reply = "You can contact $name via email, $email or via phone $phone";
$msg = wordwrap( $e_body . $e_content . $e_reply, 70 );

$headers = "From: \"$name\" <$email>" . PHP_EOL;
$headers .= "Reply-To: $email" . PHP_EOL;
$headers .= "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-type: text/plain; charset=utf-8" . PHP_EOL;
$headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;

if(mail($address, $e_subject, $msg, $headers)) {

// Email has sent successfully, echo a success page.

echo "<fieldset>";
echo "<div id='success_page'>";
echo "<h1>Email Sent Successfully.</h1>";
echo "<p>Thank you <strong>$name</strong>, your message has been submitted to us.</p>";
echo "</div>";
echo "</fieldset>";
} else {
echo 'ERROR!';
}





<form id="contactform" action="contact.php" name="contactform" method="post">
<header class="form-header">
<h3>Contact Form</h3>
<div class="post-body-form text-center">
<p>In order to provide better service to you, PetVet Veterinary<br> Clinic
It is working with the appointment system. Please fill in the<br> following form completely.</p>
</div>
<fieldset class="row-fluid appoform">
<div class="col-md-12">
<label class="sr-only">Your name</label>
<input type="text" name="name" id="name" class="form-control" placeholder="Naam *">
</div>
<div class="col-md-12">
<label class="sr-only">Email address</label>
<input type="email" name="email" id="email" class="form-control" placeholder="Email *">
</div>
<div class="col-md-12">
<label class="sr-only">Phone</label>
<input type="text" name="phone" id="phone" class="form-control" placeholder="Telefoon">
</div>
<div class="col-md-12">
<textarea class="form-control" name="comments" id="comments" rows="6" placeholder="Extra notes.."> </textarea>
</div>
<div class="col-md-12">
<button type="submit" value="SEND" id="submit" class="btn btn-primary btn-block">Send Message</button>
</div>
</fieldset>
</form>
Los daarvan (enige verouderde/onlogische constructies) zou er eigenlijk geen reden moeten zijn waarom $phone niet opgenomen wordt in het e-mailbericht, behalvewellicht vanwege wordwrap(), zit je toevallig aan de 70 karakters? Je zou met behulp van var_dump() van $_POST eens kunnen kijken of alles goed verstuurd wordt vanuit het formulier om eea uit te sluiten.
$e_reply = "You can contact $name via email, $email or via phone $phone";
Zou je eens kunnen veranderen in
$e_reply = 'You can contact $name via email, '.$email.' or via phone '.$phone;
Is het proberen waard.
Bedankt voor jullie reacties maar ik ben er niet verder mee gekomen :(
Ik zie zelf ook geen reden waarom $phone leeg zou zijn? Misschien is deze niet ingevuld?
Zoals Thomas al zei:

Je zou met behulp van var_dump() van $_POST eens kunnen kijken of alles goed verstuurd wordt vanuit het formulier om eea uit te sluiten.


Er valt dus genoeg aan te debuggen. maar ik geef toe: Dit huidige contactscript is echt een plakbandconstructie van wat scripts
Bovenin staat "if(!$_POST) exit;". Dus als dit 1 bestand is, dan is het formulier wat je daaronder ziet niet het formulier wat je in moet vullen om hier terecht te komen.

Maar dan mist er ook een "?>" net boven de "<form ...", dus misschien zit ik wel naar wat knip- & plakwerk te kijken ...

In ieder geval: als dit daadwerkelijk 1 bestand is, dan moet je eens kijken in de HTML van het formulier van waaruit je de POST doet. Mogelijk staat daarin geen veld met name="phone" (of is het verkeerd gespeld).
Ik heb het script bij een webtemplate gekregen die ik gekocht heb. Met de html kan ik goed uit de weg maar met php niet.

In HTML staat het er zo in:

<div class="col-md-12">
<label class="sr-only">Phone</label>
<input type="text" name="phone" id="phone" class="form-control" placeholder="Telefoon">
</div>
Maarrr ... staat dat stuk HTML (het formulier) ook onder dat stuk PHP, of zijn dat twee aparte bestanden? Dump in beide gevallen eens alles wat je hebt (1 of 2 bestanden) helemaal compleet. Want dat stuk PHP wat hierboven staat kan zo niet werken. Dan is het net als zoeken met het licht uit ...
Verander deze regel:

<?php
$e_reply = "You can contact $name via email, $email or via phone $phone";
?>

eens in dit:

<?php
$e_reply = 'You can contact ' . $name . ' via:' . PHP_EOL;
$e_reply .= 'email: ' . $email . PHP_EOL;
$e_reply .= 'phone: ' . $phone;
?>
Ik heb dit allemaal aangepast en formulier wordt netjes verzonden maar nog steeds met leeg veld voor telefoon en subject.

HTML en php zijn apart geupload.


Reageren