Ergebnis 1 bis 8 von 8

Thema: Kontaktformular

  1. #1

    chinmoku Gast

    Kontaktformular

    Nabend ^^

    Ich hätte da eine Frage bezüglich eines Kontaktformulares in PHP.

    Zuzeit benutze ich dieses. Ich habs zwar etwas modifiziert, aber das sollte auch reichen.

    Dann habe ich das Formular mal mit diesem hier verglichen.

    Was ich an dem letzteren besser finde ist, dass abgefragt wird, ob die EMail Adresse richtig eingegeben ist:

    PHP-Code:
    function mailcheck($mail) {
      
    $mail eregi("^[a-z0-9]+([-_.]?[a-z0-9])
    +@[a-z0-9]+([-_.]?[a-z0-9])+.[a-z]{2,4}"
    $mail); 
    Wie/wo packe ich den Code jetzt in das erste Beispiel?

    Ein Versuch von mir ist leider gescheitert ._.


    Wenn jemand ganz viel Zeit hat, kann derjenige mir auch noch erklären, wie folgende Sachen möglich sind:
    Wie kann ich in dieses Formular noch eintragen, an wen die EMail geschickt werden soll? Soll heißen, dass ich in dem Formular aus einem DropDownMenü den Empfänger auswählen möchte und dass die Nachricht dann an seine EMail Adresse geschickt wird.

    Wäre toll, wenn jemand ne Lösung hätte

    Danke im Voraus.

  2. #2
    Der Code müsste geändert so aussehen:
    PHP-Code:
    <html>
    <head>
    <title>Kontaktformular mit PHP</title>
    </head>
    <body>
    <?php

    $Empfaenger 
    "Ihre@Mailadresse.land";

    if(
    $_REQUEST['Send'])
    {
       if(empty(
    $_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Nachricht']))
       {
          echo
    "Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle Felder aus!";
       }
      elseif(!
    eregi("^[a-z0-9]+([-_.]?[a-z0-9])+@[a-z0-9]+([-_.]?[a-z0-9])+.[a-z]{2,4}"$_REQUEST['Email']))
      {
         echo
    "Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und geben Sie eine gültige Emailadresse ein!";
      }
       else
       {
          
    $Mailnachricht "Sie haben folgende Nachricht erhalten: \n\n";
          while(list(
    $Formularfeld$Wert)=each($_REQUEST))
          {
             if(
    $Formularfeld!="Send")
             {
                
    $Mailnachricht .= $Formularfeld.": ".$Wert."\n";
             }
          }
          
    $Mailnachricht .= "\nDatum/Zeit: ";
          
    $Mailnachricht .= date("d.m.Y H:i:s");
          
    $Mailbetreff "Kontakt: ";
          
    $Mailbetreff .= $_REQUEST['Betreff'];
          
    mail($Empfaenger$Mailbetreff$Mailnachricht"From: ".$_REQUEST['Email']);
          echo
    "Vielen Dank für Ihre eMail!";
       }
    }
    else
    {
       echo
    "Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a href=\"kontaktformular.php\">Seite</a>.";
    }

    ?>
    </body>
    </html>
    Hinzugefügt hab ich folgende Zeilen:
    PHP-Code:
    elseif(!eregi("^[a-z0-9]+([-_.]?[a-z0-9])+@[a-z0-9]+([-_.]?[a-z0-9])+.[a-z]{2,4}"$_REQUEST['Email']))
      {
         echo
    "Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und geben Sie eine gültige Emailadresse ein!";
      } 

  3. #3

    chinmoku Gast
    Ah cool danke,

    aber wieso geht das "functions" nicht?

    Und könnte man für $_REQUEST auch $_POST oder $_GET nehmen? Und worin liegt der Unterschied? ._.

  4. #4
    Deine Funktion müsste wenn so aussehen:
    PHP-Code:
    function mailcheck($mail) {
      return 
    eregi("^[a-z0-9]+([-_.]?[a-z0-9])
    +@[a-z0-9]+([-_.]?[a-z0-9])+.[a-z]{2,4}"
    $mail);

    Sie gibt true zurück, wenn die Email gültig ist. (Und false wenn sie ungültig ist)
    Dann müsste der Teil so aussehen:
    PHP-Code:
      elseif(!mailcheck($_REQUEST['Email']))
      {
         echo
    "Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und geben Sie eine gültige Emailadresse ein!";
      } 
    Und du kannst natürlich auch $_POST oder $_GET nehmen, wenn denn das Formular dem entsprechend auch post bzw get als Methode hat

  5. #5

    chinmoku Gast
    Ich hab das Script mal getestet. Soweit funktioniert das Ganze schon, allerdings:

    Wenn ich bei der E Mail keinen Punkt eingebe, wird sie trotzdem gesendet. Wie kann ich das ändern?

  6. #6
    Du musst den Punkt escapen, indem du ein \ davor machst (also \.) Das \ musst du für PHP evtl auch wieder escapen, also: \\.

  7. #7

    chinmoku Gast
    Shit, ich versteh dich nich XD

    Welchen Punkt soll ich denn escapen? ._.'

    *zum php Tutorial wandert* ^^

  8. #8
    Deine RegExp muss geändert so aussehen:
    PHP-Code:
    ^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •