Antworten auf deine Fragen:
Neues Thema erstellen

Kontaktformular funktioniert nur teilweise

chicco97

Nicht mehr ganz neu hier

Hallo Zusammen,

hab da ein kleines Problem und wollt Euch um Rat fragen:

Es geht um mein Kontaktformular, das eigentlich sehr gut und einfach funktioniert. ABER eben nicht beim IE und Safari MAC OS. Da kann ich das Formular ohne Einträge einfach wegschicken, also leer obwohl die Felder mit einem "required" ausgezeichnet sind. Das ganze funktioniert bei win unter Safari und Firefox hervorragend.

Habt Ihr mir Rat ?

Danke schon mal.

Gruß Micha

PHP:
<?php
 

 
// ======= Text der Mail aus den Formularfeldern erstellen:
 
// Wenn Daten mit method="post" versendet wurden:
if(isset($_POST)) { 
   // alle Formularfelder der Reihe nach durchgehen:
   foreach($_POST as $name => $value) {
      // Wenn der Feldwert aus mehreren Werten besteht:
      // (z.B. <select multiple>)
      if(is_array($value)) {
          // "Feldname:" und Zeilenumbruch dem Mailtext hinzufügen
          $mailText .= $name . ":\n";
          // alle Werte des Feldes abarbeiten
          foreach($valueArray as $entry) {
             // Einrückungsleerzeichen, Wert und Zeilenumbruch 
             // dem Mailtext hinzufügen
             $mailText .= "   " . $value . "\n";
          } // ENDE: foreach
      } // ENDE: if  
      // Wenn der Feldwert ein einzelner Feldwert ist:
      else {
          // "Feldname:", Wert und Zeilenumbruch dem Mailtext hinzufügen
          $mailText .= $name . ": " . $value . "\n";
      } // ENDE: else
   } // ENDE: foreach
} // if
 
// ======= Korrekturen vor dem Mailversand 
 
// Wenn PHP "Magic Quotes" vor Apostrophzeichen einfügt:
 if(get_magic_quotes_gpc()) {
     // eventuell eingefügte Backslashes entfernen
     $mailtext = stripslashes($mailtext);
 }

 
// ======= Mailversand
 
// Mail versenden und Versanderfolg merken
$mailSent = @mail($mailTo, $mailSubject, $mailText, "From: ".$mailFrom);
 
// ======= Return-Seite an den Browser senden
 
// Wenn der Mailversand erfolgreich war:
if($mailSent == TRUE) {
   // Seite "Formular verarbeitet" senden:
   header("Location: " . $returnPage);
}
// Wenn die Mail nicht versendet werden konnte:
else {
   // Seite "Fehler aufgetreten" senden:
   header("Location: " . $returnErrorPage);
}
 
// ======= Ende
 
exit();
 
?>
HTML:
<h1>Kontaktformular</h1>
<form method="post" action="/form-mailer.php">
  <fieldset>
    <div class="textfeld">
      <label for="name">Ihr Name</label>
      <input type="text" name="name" id="name" autofocus required />
    </div>
   <div class="textfeld">
      <label for="mail">Ihre E-Mail</label>
      <input type="email" name="mail" id="mail"  required="required"/>
   </div>
   <div class="textfeld">
      <label for="betreff">Betreff</label>
      <input type="tel" name="betreff" id="betreff" />
   </div>
   <div class="textfeld">
      <label for="nachricht">Ihre Nachricht</label>
      <textarea name="nachricht" id="nachricht" rows="10" cols="20"></textarea>
   </div>
   <div class="submitbutton">
      <input type="submit" value="Absenden" />
   </div>
  </fieldset>
</form>
 

Duddle

Posting-Frequenz: 14µHz

AW: Kontaktformular funktioniert nur teilweise

Das hat nichts mit PHP zu tun, weil dieses serverseitig (unabhängig vom Nutzer und seinem Browser) abläuft.

Wahrscheinlich probierst du das Formular in einem Browser, der das required-Attribut nicht unterstützt, siehe http://www.w3schools.com/tags/att_input_required.asp
The <required> tag is supported in Internet Explorer 10, Firefox, Opera, and Chrome.

Note: The required attribute of the <input> tag is not supported in Internet Explorer 9 and earlier versions, or in Safari.
Wenn du Pflichtfelder benötigst, musst du noch serverseitig prüfen ob die entsprechenden Felder ausgefüllt sind. Hier kommt dann wieder PHP in's Spiel. Ich weiß nicht, wie gut dein PHP-Wissen ist, aber du wirst mit der Suche nach "Pflichtfelder PHP" einige relevante Beiträge und Scripte im Netz finden.


Duddle
 

chicco97

Nicht mehr ganz neu hier

AW: Kontaktformular funktioniert nur teilweise

Dann sag ich mal vielen Dank. Ich dachte das liegt am Code. Wieder was gelernt !!
 

StS882

Noch nicht viel geschrieben

AW: Kontaktformular funktioniert nur teilweise

Alternativ kann man die Felder auch per Javascript prüfen, dann muss man die Daten nicht erst hin und her schicken sondern kann das Clientseitig testen.

Gruß,
Stephan
 

chicco97

Nicht mehr ganz neu hier

AW: Kontaktformular funktioniert nur teilweise

Alternativ kann man die Felder auch per Javascript prüfen, dann muss man die Daten nicht erst hin und her schicken sondern kann das Clientseitig testen.

Gruß,
Stephan

Das hatte ich auch schon überlegt. Aber was ist wenn der User das js deaktiviert hat ?
 

Dagobert68

Nicht mehr ganz neu hier

AW: Kontaktformular funktioniert nur teilweise

Aber was ist wenn der User das js deaktiviert hat ?

Moin :)

Genau. Deshalb sollte man möglichst immer auch serverseitig prüfen. Die JS-Prüfung sollte eigentlich nur dazu dienen, für den Benutzer möglichst hohen Bedienkomfort zu schaffen, denke ich. Aber anschließend immer noch mal serverseitig mit PHP prüfen. Das gilt generell für alle per Benutzer-Interaktion empfangenen Daten.

Grüßli,
Dagobert :)
 

Myhar

Hat es drauf

AW: Kontaktformular funktioniert nur teilweise

Man muss immer serverseitig überprüfen!
Das required Attribut kann man zB mit Firebug innerhalb von Sekunden von einem input Feld entfernen, dann kann man es auch ohne Probleme abschicken. Javascript Validierungen kann man ebenso einfach umgehen, dafür muss nicht einmal JS deaktiviert sein. Man ändert dazu einfach das JS lokal um (im Chrome) oder schickt das Formular einfach in der Konsole selber ab.
 

StS882

Noch nicht viel geschrieben

AW: Kontaktformular funktioniert nur teilweise

Das die Daten ohnehin auf dem Server auf Validität geprüft und escaped (... etc.) werden müssen steht denke ich ausser Frage.

Die "Prüfung" per JS soll wenn dann wirklich nur die erste "Hürde" sein bevor der Server die Daten bearbeiten muss.
Grundsätzlich ist es heutzutage natürlich kein Problem mehr jede clientseitige Prüfung zu umgehen bzw. zu verfälschen, aber für "Otto Normal" sollte es dennoch reichen ;)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.633
Beiträge
1.538.446
Mitglieder
67.555
Neuestes Mitglied
scheflo
Oben