Ik ben bezig met een kleine website, hier wil ik graag een contactformulier op hebben. Ik heb inmiddels een pagina met de verschillende invoegvelden, maar deze moet ik gaan koppelen zodat de ingevulde informatie naar mijn emailadres wordt verstuurd.

Het voorbeeld van de pagina staat hier:
http://stud.cmd.hro.nl/0554266/armama/contact.htm

Kan iemand mij hier mee helpen?
Uit mijn hoofd en niet getest:<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// hier zit nog geen controle bij of er wel iets is ingevuld in de velden
// dat kun je doen met bijv: if (empty ($_POST['naam']))
$to = '[email protected]'; // zelf veranderen
$subj = 'Via contactformulier';
$msg = "
Naam: '" . $_POST['naam'] . "'
E-mail: '" . $_POST['email'] . "'
Onderwerp: '" . $_POST['onderwerp'] . "'
Bericht: '" . $_POST['bericht'] . "'
";
$headers = 'From: contactformulier website';

if (mail ($to, $subj, $msg, $headers)) {
echo '<p>De mail is verzonden</p>';
}
else {
echo '<p>Het verzenden van de mail is mislukt</p>';
}
}
?>
Bedankt!! Het is gelukt!!

Nog een vraagje alleen...
Wanneer je de gegevens verzend krijg je links bovenin in beeld de tekst 'De mail is verzonden'. Kan dit ook op een andere plaats verschijnen, bijvoorbeeld onder de verzend knop, met rode letters??
maak van die echo een varibale, en kijk oner de sendbutton of die variabele geset is, zo ja, echo hem
Zou je dit misschien nader kunnen uitleggen, ik ben niet ervaren met php, dus ik zou niet weten hoe ik dit zou moeten uitvoeren. Kan je misschien een voorbeeld geven van het script hoe het er dan uit komt te zien?
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// hier zit nog geen controle bij of er wel iets is ingevuld in de velden
// dat kun je doen met bijv: if (empty ($_POST['naam']))
$to = '[email protected]'; // zelf veranderen
$subj = 'Via contactformulier';
$msg = "
Naam: '" . $_POST['naam'] . "'
E-mail: '" . $_POST['email'] . "'
Onderwerp: '" . $_POST['onderwerp'] . "'
Bericht: '" . $_POST['bericht'] . "'
";
$headers = 'From: contactformulier website';

if (mail ($to, $subj, $msg, $headers)) {
$msg = '<p style="color: red;">De mail is verzonden</p>';
}
else {
$msg '<p style="color: red;">Het verzenden van de mail is mislukt</p>';
}
}
?>
Nu kun je overal waar je wilt dit doen:
<?php
echo $msg;
?>
ik krijg nu de volgende error als ik dit invoer:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/stud/0554266/public.www/armama/contact.php on line 19

Klopt, daar ben ik het = teken vergeten.

Ik raad je aan om zelf ook goed te kijken en niet klakkeloos de dingen die we hier voor je maken te kopieren.
Ik wilde inderdaad net reageren, sorry. Was er zelf nu ook achter gekomen!
Hier heb je er een met wat validates (o.a. e-mail validate, en iig een waarde bij naam, email en vragen etc.

Vergeet niet het volgende te veranderen:

- De action van de form te veranderen in send.php
- Email waar het heen moet (staat nu op [email protected]).
- Succes pagina (staat nu op succes.html)
- Error pagina (staat nu op error.html)

Maak een php bestand aan met de volgende code, en noem dit bestand: send.php

<?PHP
error_reporting(7);

function check_string($value, $low, $high, $mode, $optional)
{
if ( (strlen($value) == 0) && ($optional === true) ) {
return true;
} elseif ( (strlen($value) >= $low) && ($mode == 1) ) {
return true;
} elseif ( (strlen($value) <= $high) && ($mode == 2) ) {
return true;
} elseif ( (strlen($value) >= $low) && (strlen($value) <= $high) && ($mode == 3) ) {
return true;
} else {
return false;
}
}

function check_email($email, $optional)
{
if ( (strlen($email) == 0) && ($optional === true) ) {
return true;
} elseif ( eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email) ) {
return true;
} else {
return false;
}
}

$FTGnaam = $_POST['naam'];
$FTGemail = $_POST['email'];
$FTGonderwerp = $_POST['onderwerp'];
$FTGbericht = $_POST['bericht'];

$validationFailed = false;

if ( (! check_string($FTGnaam, 1, 0, 1, false))) {
$validationFailed = true;
}

if ( (! check_email($FTGemail, false))) {
$validationFailed = true;
}

if ( (! check_string($FTGbericht, 1, 0, 1, false))) {
$validationFailed = true;
}

if ($validationFailed == true) {

//Verander
header("Location: error.html");
exit;

}

//Verander hieronder jouwn naam en email, en het onderwerp van de email

$emailTo = '"Sabine" <[email protected]>';

$emailSubject = "Contact opgenomen via website";

//Klaar
$emailBody = "naam: $FTGnaam\n"
. "email: $FTGemail\n"
. "onderwerp: $FTGonderwerp\n"
. "bericht: $FTGbericht\n"
. "\n"
. "";

$emailHeader = "From: [email protected]\n"
. "Reply-To: [email protected]\n"
. "MIME-Version: 1.0\n"
. "Content-type: text/plain; charset=\"ISO-8859-1\"\n"
. "Content-transfer-encoding: quoted-printable\n";

mail($emailTo, $emailSubject, $emailBody, $emailHeader);

//Verander
header("Location: succes.html");
exit;

?>
Mooi gedaan en wellicht een ideetje om dit bij scripten neer te zetten? Hier wordt vaak om gevraagd en dit is heel uitgebreid en eenvoudig neergezet met prima uitleg !!

Reageren