Formular Daten nach senden nicht löschen

K

Kosta_91

Gast
Guten Tag,
ich habe eine Website mit HTML und PHP Programmiert.
Wenn nun jemand seine Daten in das HTMl Formular eingibt und dann auf
"Registrieren" klickt, jedoch z.B. seine email vergessen hat anzugeben, und dann
auf zurück geht, sind alle seine Eingaben gelöscht. Wie kann man das verhindern?
Hier der Code:

<html>
<title>
BFW-Registrierung
</title>
<head>
</head>
<body>
<form action="SQL-con.php" method="POST" align="center">
<link rel="stylesheet" type="text/css" href="REG.css">
<div id="table" >
<table border="0">
<tr>
<th colspan="2">Bitte füllen Sie das Formular aus!</th>
</tr>
<tr>
<td><b>Vorname</b></td>
</tr>
<tr>
<td><input type="text" name="VN"></td>
</tr>
<tr>
<td><b>Nachname</b></td>
</tr>
<tr>
<td><input type="text" name="NN"></td>
</tr>
<tr>
<td><b>Straße</b></td>
</tr>
<tr>
<td><input type="text" name="Str"></td>
</tr>
<tr>
<td><b>Hausnummer</b></td>
</tr>
<tr>
<td><input type="text" name="HN"></td>
</tr></table>
</div>
</body>
</html>
 
Mach es für den Benutzer gar nicht erst möglich, die Email zu vergessen....
Mach dafür eine Abfrage ob überhaupt etwas eingegeben wurde bzw. wenn etwas eingegeben wurde, dass dies auch deinen Vorstellungen entspricht.

Bsp.:

if (!email)
{

echo "Bitte geben Sie eine Email Adresse ein"

}

Damit würde, wenn er die Email adresse beim abschicken vergessen hat, die Nachricht in der if-Abfrage am Bildschirm erscheinen.

Sowas nennt man auch Validierung und ist essenziel für solche Bwenutzereingaben. Kannst ja mal danach googeln.
 
ich denke du kannst das nich in die html datei schreiben, das die einträge in den textboxen bleiben sollen...
das wird doch vom browser gesteuert oder?

also bei firefox is es so, wenn ich auf zurück klicke, steht der text noch in der textbox.
 
Kann man verhindern, indem man in der nächsten Seite das Formular noch mal programmiert und dort per echo $_POST["NN"]; z. B. die Werte wieder einträgt.
Also machst du ein td><b>Vorname</b></td>
</tr>
<tr>
<td><input type="text" name="VN"></td>
</tr>
<tr>
<td><b>Nachname</b></td>
</tr>
<tr>
<td><input type="text" name="NN" value="<?php echo $_POST['NN']; ?>"></td>
</tr>

Besser wäre es natürlich, soetwas zu verhindern. Das geht aber nicht über PHP, sondenr über JavaScript!
 
Zuletzt bearbeitet:
Prototypp schrieb:
Sowas nennt man auch Validierung und ist essenziel für solche Bwenutzereingaben. Kannst ja mal danach googeln.

Die Frage ist: WO und WIE wird validiert? Damit sich die Felder gar nicht rühren müsste die Validierung bereits vor dem Versenden des Formulars geschehen. Dafür gibt es aber nur 2 Ansätze: JavaScript und HTML5. JS kann man abschalten und Browser mit der Fähigkeit zur HTML5-basierten Validierung haben vielleicht n Marktanteil von 50-60%.

Die einzig sichere Validierungsart ist nach dem Submit, und da werden die Felder normalerweise genullt. Abhilfe schafft hier z.B. eine Lösung über eine Session.
 
Daaron schrieb:
Abhilfe schafft hier z.B. eine Lösung über eine Session.
Ausreichen würde ganz normal die Werte in $_POST zu speichern dem Form action = PHP_SELF zu geben.
Danach kann man den inputs value = POST geben.
Und sollte POST NULL sein gibt man dem input einfach ne Klasse die das Teil rot färbt zb.
 
Natürlich reicht es, die $_POST - Variablen direkt weiterzuverwenden, aber eine Session hat man doch für komplexere Systeme eh laufen, außerdem kann der User dadurch auch mal aus versehen wegnavigieren und zurückkehren, ohne seine Daten zu verlieren. Es schadet nix, es kostet nicht mehr Aufwand, es bringt aber viele interessante Optionen.

Fakt ist jedenfalls: $_POST/$_GET - Variablen NIE NIE NIE NIE ungeprüft verarbeiten. Diese Werte sollten immer erst auf ihre "Vernunft" geprüft werden. Man weiß nie, was ein User mit böser Absicht (oder Blödheit) so überträgt.
 

Ähnliche Themen

Zurück
Oben