PHP Kontaktformular

stonecold

Cadet 4th Year
Registriert
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?
 
Lass PHP doch einfach im Falle eines Fehlers die Daten aus dem Kontaktformular wieder in die Eingabefelder schreiben...
 
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>
 
GuardianAngel schrieb:
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
 
indem man im fehlerfall die daten einfach den entsprechenden feldern als value mitgibt, anstatt sie per mail zu verschicken.
 
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 :)
 
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....
 
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...
 
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:
 
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>"; 
    }  
?>
 
Zurück
Oben