Beste mensen,

Ik heb het volgende probleem, als het contactformulier is verstuurd wordt je doorgestuurd naar de bedankt pagina, dit gaat allemaal goed. Echter wil ik nu dat als ik in het contactformulier is aangevinkt dat je zelf een email wilt ontvangen. Dat er dan op de bedankt pagina automatisch een regel bij komt met er is nu een mail naar je verstuurd.

En dit geldt ook voor als je een fout maakt dan moet deze ook op die pagina met daarbij de tekst u heeft een fout gemaakt bla bla en daaronder dan de fout weergeven. Dus geen standaard tekst met alle fouten maar enkel de fout. Ik heb nu dit:

<?php

////////////////////////////////////////////////
//////// robbert.uphero.com ////////////////////
//////// Door Robbert B ////////////////////////
////////////////////////////////////////////////



//Kijken of er op de submit button is gedrukt.
if($_SERVER['REQUEST_METHOD'] == "POST"){


// Definiƫren variablen
// Vaste variablen

$ontvanger = '[email protected]'; //Email van de ontvanger
$naar = 'Robbert B'; //Naam
$onderwerp = "Ingevuld contactformulier"; //Onderwerp van de mail
$spam = 0; //Anti Spam, in seconden


//Controle of de waarden zijn ingevuld!

$error = ''; // Begint met het aantal aanwezige errors
$aantal = 0; // Telt het aantal errors

if(isset($_COOKIE['mailform']))
{ $show = true;
echo 'Vanwege veiligheids redenen kunt u maar eens in de '.$spam.' seconden een e-mail versturen!';
}

else {

if(strlen($_POST['naam']) < 2)
{$error .= "- U heeft u naam niet ingevuld! <BR />";
$aantal++;
}
if(strlen($_POST['email']) < 6 || preg_match('~^(?=[^a-z]*[a-z])(?=[^A-Z]*[A-Z])(?=\D*\d)(?=[A-Za-z0-9]*[^A-Za-z0-9])\S{6,}$~', $_POST['email']))
{$error .= "- U heeft geen geldig e-mailadres ingevuld! <BR />";
$aantal++;
}
if(strlen($_POST['telefoon']) > 1 && !preg_match('/^[0-9]{10}$/', $_POST['telefoon']))
{$error .= "- Uw telefoonnummer bestaat niet uit 10 cijfers! <BR />";
$aantal++;
}
if (strlen($_POST['tekst']) < 10 )
{$error .= "- U heeft geen geldige bericht ingevuld. <BR />";
$aantal++;
}
if (!empty($error)) // Als er fouten zijn
{


echo ($aantal == 1) ? 'De volgende fout is opgetreden: <BR />' : 'De volgende fouten zijn opgetreden <BR />'; //Controllen enkelfout of meervoud.
echo "".$error."<BR />";
}

else { // Het mailen

//Headers
$header = "Content-type: text/html; charset=iso-8859-1\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "To: ".$naar." <".ontvanger.">\r\n";
$header .= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
$header .= "Reply-To: ".$naar." <".$ontvanger.">\r\n";

//Het daadwerkelijke bericht

$bericht = '
<html>
<head>
<title>Some title</title>
</head>
<body>

<table style="margin:auto; width: 640px; background-color: #FBFBEF; border-color:black; border:1px; border-style:solid; border-spacing:0; border-collapse:collapse; padding:0;">

<tr><td>
<img src="http://robbert.uphero.com/erasmusbrug.jpg" alt="banner"; width: 640px; height:149px; />
</td></tr>

<tr style="min-height:30px; width:640px;"><td>
<p style="margin-top: 5px; margin-left:5px;">Geachte '.$_POST['naam'].', <br /></p>

<p style="margin-left:5px;">Hierbij ontvangt u een kopie van de door u verstuurde e-mail:</p>

<p style="margin-left:30px;">
Afzender: '.$_POST['naam'].'<br />
E-mailadres: '.$_POST['email'].'<br />
Telefoonnummer: '.$_POST['telefoon'].'<br />
Onderwerp: '.$_POST['subject'].'<br />
Bericht: '.$_POST['tekst'].'<br /></p>

<p style="margin-left: 5px;">
Mocht u nog vragen hebben, dan kunt u gerust nogmaals contact opnemen.</p>

<p style="margin-left: 5px;">
Met vriendelijke groet,</p>

<p style="margin-left: 5px; margin-bottom: 5px;">
Robbert Bruin</p>


</td></tr>
<tr style="width:580px; margin-left: auto; margin-right: auto;"><td>
</td></tr>
</table>
</body>
</html>
';

//De mail

mail($ontvanger, $onderwerp, $bericht, $header);


//Bevestigingsbericht

setcookie('mailform',1,time()+($spam*1)); // cookie zetten tegen spammen
$show = true; // foutmelding wordt weergeven

header("location: index.html");
//Als het copy is aangevinkt

if(isset($_POST['mailmij'])) {
mail($_POST['email'], "Kopie emailbericht", $bericht, $header);

}
}

}
}

?>
Je geeft aan wat je wilt, toont een lap met code en dat is het.
Die code zelf geschreven?
Waar loop je vast?
Als het een vacature of scriptrequest is, staat het in de verkeerde rubriek.

Haal je e-mailadres uit je code. Anders zul je nog genoeg (ongewenste) reacties krijgen ;-)
Zou geen $_POST waarden gebruiken in het script zonder enige vorm van beveiliging (bv strip_tags).
Kan de begin post helaas niet meer aanpassen.

Code volledig zelf geschreven, waar ik vast loop is het volgende

Ik wil graag dat ik wordt doorgestuurd naar een pagina zoals de rest van mijn layout, zie http://www.robbert.uphero.com/bedankt.html

Zoiets wil ik ook creeƫren voor als er een foutmelding is.

Alleen de foutmeldingen zijn wisselende waarde dus heb geen idee hoe ik dat er laat komen.

Waarom zou je mensen doorsturen naar een nieuwe pagina met foutmelding(en)?
Toon als er fouten zijn het formulier en geef daarbij aan wat er fout is.
De waarden die eerder zijn ingevuld kun je dan ook tonen, zodat niet het hele formulier opnieuw ingevuld hoeft te worden.

 echo "".$error."<BR />";

Wat is eigenlijk het nut van de "". aan het begin van die echo?

Kun jij eenvoudig zien bij welke { de laatste vier } horen?
Zorg voor een overzichtelijke uitlijning.

Reageren