PHP Kontaktformular

stonecold

Cadet 4th Year
Dabei seit
Apr. 2004
Beiträge
115
Momentan ist es so, dass sobald man auf den Absenden-Button klickt, alle Felder gelöscht werden. Wenn eine Fehlermeldung erscheint, z.b. "falsche E-Mail-Adresse", soll man das Feld korrigieren können und nicht komplett neu eingben müssen.
Wie erreiche ich, dass die eingegebenen Daten im Feld gespeichert bleiben?
 

Alphamoose

Lieutenant
Dabei seit
Aug. 2004
Beiträge
532
Lass PHP doch einfach im Falle eines Fehlers die Daten aus dem Kontaktformular wieder in die Eingabefelder schreiben...
 

GuardianAngel

Ensign
Dabei seit
Nov. 2004
Beiträge
138
HTML:
<script language="JavaScript">
<!--
function MailContact() {

 var writer = document.forms[0].elements[0].value;
 var writer_email = document.forms[0].elements[1].value;
 var writer_subject = document.forms[0].elements[2].value;
 var content = document.forms[0].elements[3].value;

 if(writer != "" && writer_email != "" && writer_subject != "" && content != "") {

  return true;

 } else {

  document.forms[0].elements[0].value = writer;
  document.forms[0].elements[1].value = writer_email;
  document.forms[0].elements[2].value = writer_subject;
  document.forms[0].elements[3].value = content;

  alert("Bitte alle Felder ausfüllen!");

  return false;

 }

}
//-->
</script>
<noscript></noscript>

<form action="send.php" onSubmit="return MailContact();" method="post"></form>
 

ZeroFlash

Lt. Junior Grade
Dabei seit
Jan. 2002
Beiträge
382
Zitat von GuardianAngel:
HTML:
<script language="JavaScript">
<!--
function MailContact() {

 var writer = document.forms[0].elements[0].value;
 var writer_email = document.forms[0].elements[1].value;
 var writer_subject = document.forms[0].elements[2].value;
 var content = document.forms[0].elements[3].value;

 if(writer != "" && writer_email != "" && writer_subject != "" && content != "") {

  return true;

 } else {

  document.forms[0].elements[0].value = writer;
  document.forms[0].elements[1].value = writer_email;
  document.forms[0].elements[2].value = writer_subject;
  document.forms[0].elements[3].value = content;

  alert("Bitte alle Felder ausfüllen!");

  return false;

 }

}
//-->
</script>
<noscript></noscript>

<form action="send.php" onSubmit="return MailContact();" method="post"></form>
soweit ich weiß gehts um php und nicht um javascript.

@ Alphamoose: und wie kann man das mit php umsetzen? würde mich auch mal interessieren :D
 

HoRnominatoR

Lt. Junior Grade
Dabei seit
Dez. 2004
Beiträge
302
indem man im fehlerfall die daten einfach den entsprechenden feldern als value mitgibt, anstatt sie per mail zu verschicken.
 

GuardianAngel

Ensign
Dabei seit
Nov. 2004
Beiträge
138
Javascript deswegen, damit nicht immer die Seite neu geladen werden muss, nur damit man überprüft ob auch alle Felder eingegeben sind....unnötig

Code für contact.php:

PHP:
<?php
  include('script.php');
?>

<form action="contact.php" method="post">
  <input name="form_name" type="text" value="<?php echo $form_name; ?>" size="20"></input>
</form>
Code für script.php:

PHP:
<?php
  $form_name = $_POST['form_name'];
  if(!empty($form_name))
  {
    //mail()
    unset($form_name);
  }
?>
Gibt auch bestimmt bessere Lösungen, aber es geht ja hier nur um Codeschnipsel und das hab ich mir grad mal aus den Fingern gesaugt :)
 

Siberian..Husky

Lt. Commander
Dabei seit
Apr. 2004
Beiträge
1.125
das ist ganz und garnicht unnötig! das ist das erste was jeder php programmierer lernen muss: verlass dich nie auf die daten die vom user kommen!

ein javascript kann ganz einfach umgangen werden, was zur folge hat das du dann mit falschen daten in deinem php script arbeitest. sowas führt ganz schnell zu gravierenden sicherheitslücken!

das erste was ein php script also IMMER tun muss ist die eingaben überprüfen!


zum eigentlichen problem: schonmal in selfhtml nachgesehen? du solltest dir erstmal ansehen wie man (default) werte in ein formular einträgt. danach ist das ganze in php ganz einfach....
 

ZeroFlash

Lt. Junior Grade
Dabei seit
Jan. 2002
Beiträge
382
eben weil javascript so unsicher ist gibt es ja auch viele user die es aus haben... und die würde man dann eh nicht erreichen...
 

GuardianAngel

Ensign
Dabei seit
Nov. 2004
Beiträge
138
du wolltest ein Codebeispiel, da haste eins von mir und gut ist und die Unsicherheit liegt bei Java und net Javascript, aber egal darum gehts ja hier auch net, sondern um Codebeispiele und die hab ich dir / euch gegeben...................................:mad:
 

ZeroFlash

Lt. Junior Grade
Dabei seit
Jan. 2002
Beiträge
382
schudlige ... bin dir für das beispiel sehr dankbar... aber ich mag halt eine reine php html lösung

back to topic.. hab mal überlegt wie man es macht das die bereitseingetragenen werte wieder ins formular eingetragen werden wenn was fehlt. eigentlich leicht

hier der code habe aber die variablen zuweisung absichtlich vertauscht, damit man es sieht

PHP:
<?php
if (isset($_POST['name']) && ($_POST['abgeschickt']) && ($_POST['vname'])) {
    echo "viele dank für deinen eintrag";   
    }
else {
    $name1=$_POST['vname'];
    $vname1=$_POST['name'];
    echo "<form method=\"post\" action=\"test21.php\">
    name <input type=\"text\" name=\"name\" value=\"$name1\"><br>
    vorname <input type=\"text\" name=\"vname\" value=\"$vname1\"><br>
    <input type=\"submit\" value=\"senden\">
    <input type=\"hidden\" value=\"1\" name=\"abgeschickt\">
    </form>"; 
    }  
?>
 
Top