Verplichte velden in mailform

Status
Niet open voor verdere reacties.

Hans1962

Gebruiker
Lid geworden
16 feb 2007
Berichten
125
Hallo allemaal,

Ik gebruik het onderstaande php mailscript en dit werkt naar behoren.
Ik zou het echter graag willen uitbreiden door de melding die gegenereerd wordt indien een verplicht veld niet is ingevuld, niet op de manier te laten zien zoals nu gebeurd, maar dat er bijvoorbeeld een melding in het rood komt te staan in het verplichte invoerveld.
Is er iemand die mij hierbij kan helpen?

Mijn script ziet er nu zo uit:

<?php

$adminaddress = "info@test.nl";
$siteaddress ="http://www.test.nl";
$sitename = "test.nl";

$Email = $HTTP_POST_VARS['Email'] ;
$Naam = $HTTP_POST_VARS['Naam'] ;
$Telefoonnummer = $HTTP_POST_VARS['Telefoonnummer'] ;


if (empty($_POST['Naam']) || empty($_POST['Email'])) {


echo 'U heeft enkele verplichte gegevens niet ingevuld. Alle velden die met * zijn gemarkeerd, dienen te worden ingevuld. Klik op de button "Vorige"of "Back"

van uw internetbrowser om de ontbrekende gegevens alsnog in te vullen. ';

} else {
$Naam = $_POST['Naam'];
$Email = $_POST['Email'];
$Telefoonnummer = $_POST['Telefoonnummer'];
$Bericht = $_POST['Bericht'];

$message = "Emailbericht verstuurd vanaf uw website:\nNaam = $Naam\nEmail = $Email\nTelefoonnummer = $Telefoonnummer\nBericht = $Bericht \n\n";

mail("info@test.nl", "Emailbericht vanaf uw website", $message,
"From: Test\r\n"
."Reply-To: $email\r\n");



header( "location: http://www.test.nl/bericht_succesvol.htm" );

mail ("$Email","Hartelijk bedankt voor het bezoeken van $sitename",
"Geachte mevrouw/mijnheer $Naam,\n
Bedankt voor uw bericht en uw bezoek aan de website van $sitename.\n
Wij proberen uw bericht zo snel mogelijk te beantwoorden.\n
Eventueel kunt ons ook bereiken op telefoonnummer ........\n\n

Met Vriendelijke Groet,\n
Hans
$siteaddress","FROM:$adminaddress"
) ;
}
?>
 
Niemand?

Hallo allemaal,

Ik gebruik het onderstaande php mailscript en dit werkt naar behoren.
Ik zou het echter graag willen uitbreiden door de melding die gegenereerd wordt indien een verplicht veld niet is ingevuld, niet op de manier te laten zien zoals nu gebeurd, maar dat er bijvoorbeeld een melding in het rood komt te staan in het verplichte invoerveld.
Is er iemand die mij hierbij kan helpen?

Mijn script ziet er nu zo uit:

<?php

$adminaddress = "info@test.nl";
$siteaddress ="http://www.test.nl";
$sitename = "test.nl";

$Email = $HTTP_POST_VARS['Email'] ;
$Naam = $HTTP_POST_VARS['Naam'] ;
$Telefoonnummer = $HTTP_POST_VARS['Telefoonnummer'] ;


if (empty($_POST['Naam']) || empty($_POST['Email'])) {


echo 'U heeft enkele verplichte gegevens niet ingevuld. Alle velden die met * zijn gemarkeerd, dienen te worden ingevuld. Klik op de button "Vorige"of "Back"

van uw internetbrowser om de ontbrekende gegevens alsnog in te vullen. ';

} else {
$Naam = $_POST['Naam'];
$Email = $_POST['Email'];
$Telefoonnummer = $_POST['Telefoonnummer'];
$Bericht = $_POST['Bericht'];

$message = "Emailbericht verstuurd vanaf uw website:\nNaam = $Naam\nEmail = $Email\nTelefoonnummer = $Telefoonnummer\nBericht = $Bericht \n\n";

mail("info@test.nl", "Emailbericht vanaf uw website", $message,
"From: Test\r\n"
."Reply-To: $email\r\n");



header( "location: http://www.test.nl/bericht_succesvol.htm" );

mail ("$Email","Hartelijk bedankt voor het bezoeken van $sitename",
"Geachte mevrouw/mijnheer $Naam,\n
Bedankt voor uw bericht en uw bezoek aan de website van $sitename.\n
Wij proberen uw bericht zo snel mogelijk te beantwoorden.\n
Eventueel kunt ons ook bereiken op telefoonnummer ........\n\n

Met Vriendelijke Groet,\n
Hans
$siteaddress","FROM:$adminaddress"
) ;
}
?>
 
Hoi Hans,

Als je bedoelt dat er een directe controle plaatsvindt als iemand op de submit knop klikt, kan je dit misschien makkelijker met javascript doen:

Code:
<html>
<head>
<title>Testformulier</title>
[B]<script language="javascript">
<!--
function check()
{
var naam = document.forms[0].elements[0].value;
var email = document.forms[0].elements[1].value;

//naam controleren
if (naam.length < 2) {    //je kan hier vanalles testen; bijv. mogen alleen letters zijn
alert("zo'n korte naam bestaat niet!\n\nVoer een correcte naam in!");
document.forms[0].elements[0].focus();
document.forms[0].elements[0].select();
return false;
}

//email controleren
if (email.indexOf ('@', 0) == -1 ||
   email.indexOf('.', 0) == -1) {
alert("Email klopt niet.\n\nVoer een bestaand emailadres in AUB.");
document.forms[0].elements[1].focus();
document.forms[0].elements[1].select();
return false;
}
return true;    //wordt alleen uitgevoerd als er niets fout is.
}
//-->
</script>[/B]</head>

<body>
<form action="verwerk.php" method="post" [B]onsubmit="return check()"[/B]>
<input type="text" name="naam"></input><br />
<input type="text" name="email"></input><br />
</form>
</body>

</html>

Daarnaast kan je de PHP controle in tact houden.... extra controle is nooit weg :thumb:

Ik hoop dat je er wat aan hebt...

mvg,
Ger@ld

FOUTJE:// vergeet submitknop en leuke opmaak niet :cool:
 
Laatst bewerkt:
Geweldig!

Geweldig Gerald,

Precies wat ik bedoel...........
Ik ga er wat mee spelen en uitbreiden...
Heel erg bedankt en ik laat je het resultaat weten
 
Werkt niet helemaal naar behoren

Beste Gerald,

Er moesten wat velden bij, maar de alerts kloppen nu niet.
Ik zie niet wat fout gedaan heb, kan jij of iemand anders de fout ontdekken?

sorry fout gevonden (schaam schaam...)
 
Laatst bewerkt:
Kan je ook vertellen wat de fout was? Dan kan ik het eens bekijken!:thumb:

Gr. Gerald
 
Kan je ook vertellen wat de fout was? Dan kan ik het eens bekijken!:thumb:

Gr. Gerald

Ja het zat in de variabelen

var naam = document.forms[0].elements[0].value;
var email = document.forms[0].elements[1].value;

ik had de variabelen niet doorgenummerd :confused:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan