mailform met verplichte velden

Status
Niet open voor verdere reacties.

pallas

Nieuwe gebruiker
Lid geworden
29 nov 2007
Berichten
1
Ik heb een heel eenvoudig mailformulier, maar het lukt me niet om van de tekstvelden, verplichte velden te maken.
Kan iemand me daarmee helpen!

mailformuler voor verzending:

HTML:
<head>
<title>mailformScript</title>
</head>
<body>
<?

$joumail = "jouwemailadres";

mail("$joumail", "$onderwerp", "
$joumail,

Je hebt een bericht ontvangen van $naam, $email.

bericht:
$bericht


$joumail", "From: $naam<$email>\nReturn-path: $email");

echo "We hebben je bericht ontvangen<br>";
echo "Over een paar dagen krijg je bericht terug!<br>";


?>

mailformulier:

HTML:
<head>
<title>mailform</title>
</head>
<body>
<form name="form1" method="post" action="mailformsend.php">
  <table width="400" border="0">
    <tr>
      <td colspan="2">
        <p align="center"><b><font face="Arial" size="2">Contact</font></p>
        </b></td>
    </tr>
    <tr>
      <td width="30%"><font face="Arial" size="2">Naam</font></td>
      <td width="70%">
        <input type="text" name="naam" size="20">
      </td>
    </tr>
    <tr>
      <td width="30%"><font face="Arial" size="2">Email</font></td>
      <td width="70%">
        <input type="text" name="email" size="20">
      </td>
    </tr>
    <tr>
      <td width="30%"><font face="Arial" size="2">Onderwerp</font></td>
      <td width="70%">
        <input type="text" name="onderwerp" size="20">
      </td>
    </tr>
    <tr>
      <td width="30%"><font face="Arial" size="2">Bericht</font></td>
      <td width="70%">
        <textarea rows="2" name="bericht" cols="20"></textarea>
      </td>
    </tr>
    <tr>
      <td colspan="2">
        <font face="Arial" size="2">
        <input type="submit" name="submit" value="Verstuur">
        </font>
      </td>
    </tr>
  </table>
</form>
<hr>
 
De snelle oplossing zou zijn om nu alles in een formulier te zetten en je PHP uit te breiden met checks...

Iets op de volgende manier

PHP:
<head>
<title>mailform</title>
</head>
<body>

<?php

$error = 0;
//dit is niet helemaal nodig, je kan het ook steeds met $_POST['...']  aanroepen
$joumail = $_POST['email'];
$onderwerp = $_POST['onderwerp'];
$bericht = $_POST['bericht'];

if(empty($joumail)){
	$error++;
}
if(empty($onderwerp)){
	$error++;
} 
if(empty($bericht)){
	$error++;
} 

if($error == 0){
	mail("$joumail", "$onderwerp", "
	$joumail,

	Je hebt een bericht ontvangen van $naam, $email.

	bericht:
	$bericht


	$joumail", "From: $naam<$email>\nReturn-path: $email");

	echo "We hebben je bericht ontvangen<br>";
	echo "Over een paar dagen krijg je bericht terug!<br>";
} else {
	echo "Je hebt een van de velden leeg gelaten, je formulier is niet verstuurd";
}
?>

<form name="form1" method="post" action="NAAM VAN DIT FORMULIER.php">
  <table width="400" border="0">
    <tr>
      <td colspan="2">
        <p align="center"><b><font face="Arial" size="2">Contact</font></p>
        </b></td>
    </tr>
    <tr>
      <td width="30%"><font face="Arial" size="2">Naam</font></td>
      <td width="70%">
        <input type="text" name="naam" size="20">
      </td>
    </tr>
    <tr>
      <td width="30%"><font face="Arial" size="2">Email</font></td>
      <td width="70%">
        <input type="text" name="email" size="20">
      </td>
    </tr>
    <tr>
      <td width="30%"><font face="Arial" size="2">Onderwerp</font></td>
      <td width="70%">
        <input type="text" name="onderwerp" size="20">
      </td>
    </tr>
    <tr>
      <td width="30%"><font face="Arial" size="2">Bericht</font></td>
      <td width="70%">
        <textarea rows="2" name="bericht" cols="20"></textarea>
      </td>
    </tr>
    <tr>
      <td colspan="2">
        <font face="Arial" size="2">
        <input type="submit" name="submit" value="Verstuur">
        </font>
      </td>
    </tr>
  </table>
</form>
<hr>

Je checks en de mooiheid van je error is natuurlijk aan te passen =)

Ik heb het overigens niet getest, maar ben er zeker van dat deze manier werkt..
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan