Formular - Text löschen

grr

Grünschnabel
Hallo,
ich bin php Anfänger und bleibe an folgendem Problem hängen. Ich hab mir ein kleines Formular gemacht ( http://karate.tvbittenfeld.de./karate_pre2/formular/x.php ). Soweit geht das auch ich bekomme die Daten per eMail versendet.
Wenn ihr nun mal das Formular ausfüllt, ob korrekt oder nicht korrekt, bleibt der Satz den ich als html geschreiben hatte "Bitte füllen Sie alle Felder aus." IMMER stehen. Ich möchte aber dass sobald das submit Button gedrückt wurde dieser Satz nicht mehr erscheint.

Hat mir da vll jmd ne Lösung wie ich den unterdrücken kann?

Hier mal noch den "Code" wenn man das so nennen darf :D.

Code:
<html>
<head>
<title>Treten Sie der Karate Abteilung bei:</title>
<STYLE TYPE="text/css">  
   BODY{color:#6CABE7;background-color:#000000}  
   TABLE{color:#6CABE7;background-color:#000000}  
   INPUT{BACKGROUND-COLOR: #FFFFFF; border-bottom-color: black; border-top-color: black; border-left-color: black; border-right-color: black; color="#6CABE7";}
</STYLE>

</head>
<body><font face="arial" SIZE="2" size="1">

<?php
if($sent==1) {
if(!$name OR !$email OR !$geschlecht) { echo "<br>Bitte füllen Sie <b>alle</b> Felder aus!"; }
else {  
$message="<html><body>";
$message.="<p><b>Vorname:</b> $name<br>";
$message.="<b>e-Mail Adresse:</b> $email<br>";
$message.="<b>Geschlecht:</b> $geschlecht<br>";
$message.="<b>Frage:</b> $frage<br>";
$message.="</p></body></html>";
if(mail("marc.hoeger@web.de", "Anfrage zum Beitritt", $message)) { 
echo "<br>Vielen Dank, Ihre Anfrage wurde versendet.";
}
}
unset($sent);
}

if(!$sent) { 
?>
Bitte füllen Sie alle Felder aus.
<p>
<table>
<form action="<? echo $PHP_SELF; ?>" method="post">
<input type="hidden" name="sent" value="1">
<tr>
 <td>Name:</td>
 <td><input type="text" name="name" size="23"></td>
</tr>
<tr>
 <td>e-Mail Adresse:</td>
 <td><input type="text" name="email" size="23"></td>
</tr>
<tr>
 <td>Geschlecht:</td>
 <td><input type="radio" name="geschlecht" value="m&auml;nnlich">m&auml;nnlich&nbsp;&nbsp;<input type="radio" name="geschlecht" value="weiblich">weiblich</td>
</tr>
<tr>
 <td>Ihre Frage...:</td>
 <td><textarea name="frage" rows="8" cols="20" wrap="virtual"></textarea></td>
</tr>
<tr>
</tr>
<tr>
 <td colspan="2" align="center"><input type="submit" name="submit" size="30" value="Anfrage versenden"></td>
</tr>

</form>
</font>
</table>
<?php
}
?>

</body>
</html>

Ist echt frustrierend das dingen ;)
Bin für jede Antwort dankbar.

mfg
grr
 
Ich will dir mal eine Denksportaufgabe stellen.

Also du weist was du da gecodet hast. Wenn dem so ist, dann finde jene Funktion die dazu führt, das nach dem versenden dein Text wieder auftaucht - obwohl dieser Teil gar nicht angezeigt werden dürfte?

Noch ein Tipp - verwende nur Anweisungen oder Funktionen die du verstehst und was dahinter steckt. Dann dürften solche Fragen nciht mehr auftauchen :)
 
}
unset($sent);
}

if(!$sent) {

Beisst sich das nicht irgendie? ich mein du machst unset und dann ne if drauf, is doch klar, dass der jedesmal in die if klauses springt soweit ich das hier verstehe.

Außerdem funktioniert
if(!$name OR !$email OR !$geschlecht)

schon gleich gar nicht, weil diese variablen leer sind du musst den inhalt der variablen doch erst mit post übergeben falls ich mich nicht ernsthaft irre oder deinen code einfach nicht verstanden hab.
 
mh jungends ich bin anfänger also .. :)

ich brauch das unset($sent); ja, dass er mir das formular nch dem versenden nochmals anzeigt. desshalb muss es ja zurückgesetzt werden damit die variable FALSCH ist und somit nochmals das Formular anghezeigt wird ... oda irre ich mich da?

*edit*
wenn das formular nach dem versenden nicht mehr angezeigt wreden soll is mir das klar, das auch soweit aber wie kann ich das umgehen wenn das Formular nach dem versenden nochmals angezeigt werden soll ?
 
Zuletzt bearbeitet:
Ach jetzt check ichs. Hab dein Formular mal angeschaut :P

es geht dir um diese zeile:
if(!$sent) {
?>
Bitte füllen Sie alle Felder aus.
<p>...

Is klar dass er sie jedes mal anzeigt.

Ok ich hab bissal gegrübelt. würds fogendermaßen machn:

Nimm mal dieses

}
unset($sent);
}

raus.

dann macshte einfach ne if abfrage:
1.
Code:
if(!$sent)
{normales Formular anzeigen MIT den bitte alles ausfüllen satz}
2.
Code:
elseif($send)
{
Den Satz aus der form herauslassen and nochmal das formular anzeigen.
}

Nun sollte er untersheiden zwischen frisch aufgerufenem und abgesendetem formular. Und je nachdem die Form unterschiedlich aufbauen. Dadurch wird dein Code zwar doppelt so groß sollte aber ned stören hoffe ich. Musst natürlich den php tag bis zum ende der Datei durchlaufen lassen, und den html code mit einem echo ausgeben, aber denke du weisst das dann schon.
wenn ned kannste mich ja pn.
 
if und else reichen völlig aus.
PHP:
<?php
// ist die Variable $sent vorhanden, wird das folgende angezeigt. 
// Wenn du nun unset wieder verwenden möchtest, ist das mit 
// dieser if/else Folge möglich.

if(isset($sent)) {
   // Formularverarbeitung
}

// ist keine Variable vorhanden oder wird die Datei aufgerufen, 
//wird folgendes angezeigt. 

else {
   // Normalanzeige des Formulars.
}

?>
Das wird auch wichtig, wenn die Fehlerprüfung noch eingebunden wird ;)
 
hi,

danke für eure schnelle antworten, aber da ich unter der woche keine zeit hab werd ichs erst am wochenende probiern.

also danke nochmals! :)
 
Zurück