Ik heb even snel een formulier in mekaar gezet alles werkt, d8 ik even een email regex er in te zetten, alleen als ik het php bestand nu open krijg ik niet meer het formulier te zien maar de foutmelding van de email regex, is eigenlijk ook wel logisch omdat die hem dus parsed en php ziet dat veld van email op nul staat, mijn vraag is is dus hoe voorkom ik dit?


Dit is nu mijn code:


<?php

include_once ("../config.inc.php");
$gender = strip_tags($_POST ['gender']);
$firstname = trim(strip_tags($_POST['firstname']));
$lastname = trim(strip_tags($_POST['lastname']));
$address = trim(strip_tags($_POST['address']));
$housenumber = trim(strip_tags($_POST['housenumber']));
$zipcode = trim(strip_tags($_POST['zipcode']));
$city = trim(strip_tags($_POST['city']));
$phone = trim(strip_tags($_POST['phone']));
$email = trim(strip_tags($_POST['email']));
$submit = $_POST['submit'];


if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $_POST['email']))
{

echo "U heeft een onjuiste email ingevoerd";

}



elseif (isset($submit)) {
$con = mysql_connect ($host, $user , $password) or die (mysql_error());
mysql_select_db($db);

$query = "INSERT INTO adresgegevens(gender, firstname, lastname, address, housenumber, zipcode, city, phone, email)
VALUES ('$gender', '$firstname', '$lastname', '$address', '$housenumber', '$zipcode', '$city', '$phone', '$email')";
mysql_query($query, $con);

$subject = "Registratie";
$message = "Dank u wel voor het registreren op owndatabase.com";
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

mail($email, $subject, $message, $headers);
echo "Uw gegevens zijn verstuurd<br>";
echo $gender . ' ' . $firstname . ' ' . $lastname . "<br>";

echo $address . '' . $housenumber . "<br>";
echo $zipcode . "<br>";
echo $city . "<br>";
echo $phone . "<br>";
echo $email . "<br>";
}

else {

?>
<html>
<head>
<title>Adresgegevens</title>
<body>

<form action= "<? $_SERVER['PHP_SELF'] ?>" name= "adresgegevens" method="POST">
<table border = "0" cellpadding="2" cellspacing="2">
<tr>
<td>Geslacht:</td>
<td>
<input type="radio" name="gender" value="Dhr." CHECKED>Dhr.&nbsp;
<input type="radio" name="gender" value="Mevr.">Mevr.&nbsp;
</td>
</tr>
<tr>
<td>Voorletters:</td>
<td><input type="text" name="firstname" size="5" maxlength="5" value=""></td>
</tr>

<tr>
<td>Achternaam:</td>
<td><input type="text" name="lastname" size="25" maxlength="25" value=""></td>
</tr>
<tr>
<td>Straatnaam:</td>
<td>
<input type="text" name="address" size="23" maxlength="23" value="">&nbsp;
</td>
</tr>
<tr>
<td>Huisnummer:</td>
<td>
<input type="text" name="housenumber" size="6" maxlength="6" value="">
</td>
</tr>
<tr>
<td>Postcode:</td>
<td><input type="text" name="zipcode" size="10" maxlength="10" value=""></td>
</tr>
<tr>
<td>Woonplaats:</td>
<td><input type="text" name="city" size="20" maxlength="20" value=""></td>
</tr>
<tr>
<td>Telefoonnummer:</td>
<td><input type="text" name="phone" size="15" maxlength="15" value=""></td>
</tr>
<tr>
<td>E-mail adres:</td>
<td><input type="text" name="email" size="35" maxlength="35" value=""></td>
</tr>
<tr>

<td><center><input type ="submit" name="submit" value="Submit"></center></td>

</tr>
</table>
</form>
<?
}
?>
</body>
</head>
</html>
if ($_POST['submitknop'])
{


}
Beter zo wes:

<?php
if($_SERVER['REQUEST_METHOD']=="POST")
{
// hier de formulier controle
}
?>
ik post vaak met meerdere knoppen naar dezelfde pagina dus ik doe het op naam van de knop :) ieder zn voorkeur
wes schreef op 29.09.2006 12:01
ik post vaak met meerdere knoppen naar dezelfde pagina dus ik doe het op naam van de knop :) ieder zn voorkeur


inderdaad.. als ik je ook goed begrijp, verwerk je meerdere formulieren op 1 pagina?

(en dat heeft nou net niet mijn voorkeur, omdat ik het wel mooi vind foutmeldingen en dergelijke op de formulier pagina weer te geven, en het formulier niet weer te geven wanneer het verwerken goed gaat..)
Maar inderdaad ieder heeft zijn/ haar voorkeur, en dat is maar goed ook.
bedankt het werkt, dan heb ik nog een klein vraagje, als ik via het formulier stuur naar de database laat die zien wat er verstuurd is alleen als ik hem dan refresh stuurd die hem nog een x naar de database hoe zou ik als ik hem refresh weer het formulier terug kunnen krijgen?
zelf doen bijvoorbeeld.. --> De gebruiker post, je verwerkt de data, en daarna ga je (1 tot 3 seconden) die pagina linken naar het formulier, dan hoeft de gebruiker niet te refreshen, en ben je ook meteen het risico (voor een groot deel) kwijt voor opnieuw dezelfde gegevens posten.

Reageren