Formulier: back button = lege velden
Ik heb een irritant probleempje..
Als ik een basic email formulier maak, met field checks erin:
if ($naam == "") {
echo "<b>Fout!</b><br>Ga <a href=\"email.php\" target=\"_self\"><u>terug</u></a> en probeer het opnieuw!";
}
En de gebruiker drukt op 'terug' dan zijn alle (voorheen) ingevulde velden weer leeg.. Bij somige formulieren is dat niet het geval en blijft het formulier ingevuld met de door de gebruiker ingevulde gegeven.
Ik heb me rot gezocht naar een oplossing, maar kan het niet vinden.. Misschien weet iemand hier een oplossing?
Alvast bedankt!
Grtz
Gq.
<a href=\"email.php\" target=\"_self\">
dit:
<a href=\"javascript:history.back()\">
alleen het w8woord veld is weer leeg
Gewijzigd op 13/08/2004 14:17:00 door Steff an
Ja dat had ik dus ook geprobeerd, maar toch blijven alle velden leeg :S
oei
Precies :)
Formulier:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?
session_start();
$naam = !empty($_SESSION['naam']) ? ' value="'.$_SESSION['naam'].'"' : '';
...
echo '<input type="text" name="naam"'.$naam.'>';
?>
session_start();
$naam = !empty($_SESSION['naam']) ? ' value="'.$_SESSION['naam'].'"' : '';
...
echo '<input type="text" name="naam"'.$naam.'>';
?>
Verwerking:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?
session_start();
if (!empty($_POST['naam'])) {
$_SESSION['naam'] = $_POST['naam'];
}
?>
session_start();
if (!empty($_POST['naam'])) {
$_SESSION['naam'] = $_POST['naam'];
}
?>
Btw hier is het script:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Send e-mail</title>
</head>
<body>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
if (isset($_POST['verzend'])) {
$email = "[email protected]";
$naam = $HTTP_POST_VARS['txtNaam'];
$telefoon = $HTTP_POST_VARS['txtTelefoon'];
$reactie = $HTTP_POST_VARS['txtReactie'];
$emailadres = $HTTP_POST_VARS['txtEmail'];
$mailbody = "Naam: $naam\nTelefoon: $telefoon\nE-mail: $emailadres\nReactie: $reactie";
$title = "Reactie van $naam";
if ($naam == "") {
print "<b>Fout!</b>
<br><br>U moet een naam invullen!<br>
<br>Ga <a href=\"javascript:history.back()\"><u>terug</u></a> en probeer het opnieuw!";
} elseif ($reactie == "") {
print "<b>Fout!</b>
<br><br>U moet een reactie invullen!<br>
<br>Ga <a href=\"javascript:history.back()\"><u>terug</u></a> en probeer het opnieuw!";
} else {
mail( $email, $title, $mailbody);
print "Uw reactie is verstuurd!";
}
} else {
?>
if (isset($_POST['verzend'])) {
$email = "[email protected]";
$naam = $HTTP_POST_VARS['txtNaam'];
$telefoon = $HTTP_POST_VARS['txtTelefoon'];
$reactie = $HTTP_POST_VARS['txtReactie'];
$emailadres = $HTTP_POST_VARS['txtEmail'];
$mailbody = "Naam: $naam\nTelefoon: $telefoon\nE-mail: $emailadres\nReactie: $reactie";
$title = "Reactie van $naam";
if ($naam == "") {
print "<b>Fout!</b>
<br><br>U moet een naam invullen!<br>
<br>Ga <a href=\"javascript:history.back()\"><u>terug</u></a> en probeer het opnieuw!";
} elseif ($reactie == "") {
print "<b>Fout!</b>
<br><br>U moet een reactie invullen!<br>
<br>Ga <a href=\"javascript:history.back()\"><u>terug</u></a> en probeer het opnieuw!";
} else {
mail( $email, $title, $mailbody);
print "Uw reactie is verstuurd!";
}
} else {
?>
<form name="email_form" method="post" action="">
<table width="530" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="150">Naam:</td>
<td width="380"><input name="txtNaam" type="text" id="txtNaam" size="25" maxlength="25"></td>
</tr>
<tr>
<td width="150">Telefoonnummer:</td>
<td width="380"><input name="txtTelefoon" type="text" id="txTelefoon" size="15" maxlength="15"></td>
</tr>
<tr>
<td width="150">E-mailadres:</td>
<td width="380"><input name="txtEmail" type="text" id="txtEmail" size="45" maxlength="45"></td>
</tr>
<tr>
<td width="150" valign="top">Reactie:</td>
<td width="380"><textarea name="txtReactie" cols="50" rows="6" id="txtReactie"></textarea></td>
</tr>
<tr>
<td width="150"> </td>
<td width="380"><input type="submit" name="verzend" value="Verzenden"></td>
</tr>
</table></form>
</body>
</html>
Met dat session gebeuren word het een stuk ingewikkelder.. En het moet wel een beetje een basic scriptje blijven :)
In dat geval; zou ik eens gaan kijken naar de phpbb forums die dat ook hebben
Ja precies dat bedoel ik..
Thnx voor jullie tijd iig