Ankündigung

Einklappen
Keine Ankündigung bisher.

Kontaktformular

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Kontaktformular

    Guten Morgen,
    ich habe mal eine Frage. Ich habe mir ein Kontaktformular erstellt und anschließend versucht den dazugehörigen .php text.

    Könnte jemand mal bitte nachschauen ob alles richtig ist?
    Bin totaler php anfänger und habe noch es nicht wirklich 100% verstanden.


    Kontaktformular: HTML

    Code:
         <fieldset id="person"><legend>Ihre Daten</legend>
           <p><label for="name">Name:*</label>
    <br />
    	  <input id="name" name="name" type="text" size="25" /></p>
    	   <p><label for="mail">e-mailadresse:*</label>
    <br />
    	  <input id="mail" name="mail" type="text" size="25" /></p>
    	   <p><label for="name">Telefon:</label>
    <br />
    	  <input id="tel" name="tel" type="text" size="25" /></p>
         </fieldset>
    <br />
    	 <fieldset id="nachricht"><legend>Ihr Eingabefeld</legend>
    <br />
    	  <textarea name="text" rows="15" cols="70">
    	  </textarea>
    	 </fieldset>
    <br />
    <br />
    	 <fieldset id="antwort"><legend>Antwortoptionen*</legend>
    	  <p>
    	   <label for="mail2">e-mail</label>
    	   <input type="radio" name="antwort" id="mail2" value="mail" />
    	   <label for="tel2">Telefon</label>
    	   <input type="radio" name="antwort" id="tel2" value="tel" />
    	  </p>
    	  </fieldset>
    <br />
    	 <fieldset id="absenden"><legend>Mail senden</legend>
    	  <p>
    	   <label for="confirm">
    	   Ich m&ouml;chte eine Best&auml;tigung per e-mail
    	   </label>
    	   <input type="checkbox" name="confirm" id="confirm" />
    <br />
    	   <input type="submit" name="senden" value="senden" />
    	  </p>
    	 </fieldset>
    <br />
    	*Pflichtfelder.
    Dazugehörige php datei


    PHP-Code:

    <?
    $name = $_POST["name"];
    $mail = $_POST["mail"];
    $nachricht = $_POST["nachricht"];
    $absenden = $_ABSENDEN["absenden"];
    $empfaenger = "daniel***@yahoo.de";
    $betreff = "Nachricht von Kontaktformular";

    if($name !="" && $mail ! ="" && $nachricht !="" && $absenden ! ="" && preg_match("/@/", $email) =="1")

    {
    mail($empfaenger, $betreff, $nachricht, "FROM: ".$mail."");
    header("Location: index.htm");
    exit();
    }
    else
    {
    header("Location: kontakt.htm");
    exit();
    }

    ?>
    Würde ich voll net finden, wenn mit jemanden Helfen würde

    Gruß RoXx19


  • #2
    Hallo,

    Zunächst solltest Du keine Short-Tags verwenden
    PHP-Code:
    <? // nicht gut
    <?php // so ist besser
    PHP-Code:
    $absenden $_ABSENDEN["absenden"]; 
    Wo kommt $_ABSENDEN her?

    1. Du solltest generell nie Usereingaben vertrauen, diese also filtern und nicht direkt aus $_POST übernehmen
    2. mail() ist keine angesehene Lösung. Mailerklassen werden bevorzugt...

    ps: danke für deine email-adresse...
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Titel bitte mal sinnvoll benennen!
      "Mein Name ist Lohse, ich kaufe hier ein."

      Kommentar


      • #4
        Alles klar Short - Tag hab ich geändert.

        Brauch man das absenden nicht? Das hab ich mir gedacht das dies dazu muss oder so...habe es aber aus der Datei verbannt

        Könntest du deine 2 Punkte die du noch ansprichst bitte genauer erklären, wie gesagt ich steig bei php noch net ganz durch
        sry =(

        Ist mein Formular aber so Funktionsfähig

        Kommentar


        • #5
          Könntest du deine 2 Punkte die du noch ansprichst bitte genauer erklären
          1. Das erklärt dir z.B.
            Code:
            <?php
            error_reporting(E_ALL | E_STRICT);
            und Wikipedia: Cross-Site Scripting – Wikipedia
          2. Mail() ist tot, es lebe mail() und http://www.php.de/adventskalender-20...fverkehrs.html


          Ist mein Formular aber so Funktionsfähig
          Das stellt man am Besten fest, indem man sein Script einigen Tests unterzieht

          Gruß
          http://hallophp.de

          Kommentar


          • #6
            mail() wird nicht gerne gesehen, man sollte Mailerklassen verwenden, wie zB. php-Mailer, aber ich finde mail() zum Einstieg noch okay, aber wenn du ein größeren Mailverkehr hast, solltest du schon die Klassen nehmen.
            ACHTUNG!!! SIGNATUR!!!
            PHP-Code:
            var_dump($gehirn); exit; 
            0 ??? WTF ? nervtag.de | freutag.net | friendmetr.com

            Kommentar


            • #7
              aber ich finde mail() zum Einstieg noch okay, aber wenn du ein größeren Mailverkehr hast, solltest du schon die Klassen nehmen.
              Ich nehme an das nicht sehr viel E-mail verkehr geben wird. Also lasse ich das fürs erste mal so (falls es zu viel wird kann man das ja noch ändern)

              Kommentar


              • #8
                Das erklärt dir z.B.
                Code:

                error_reporting(E_ALL | E_STRICT);
                Also, wenn ich das jetzt richtig verstanden habe muss dieser Code in meine php datei rein und dann bin ich vor Identitätsdiebstahl und Manipulationen von daten sicher

                sry nochmal das ich soviel nachfragen muss >.<

                Kommentar


                • #9
                  Wenn Du ein Projekt in der Entwicklungsphase hast sollte immer der Error-Report an sein.
                  PHP-Code:
                  error_reporting(-1);
                  ini_set('display_errors'true); 
                  immer als erstes an den Anfang Deiner Skripte
                  Competence-Center -> Enjoy the Informatrix
                  PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                  Kommentar


                  • #10
                    Ah, ok. Ich habe das jetzt mal alles so eingebaut wie ich glaube das es richtig ist.

                    PHP-Code:

                    <?php
                    error_reporting
                    (E_ALL E_STRICT)(-1);
                    ini_set('display_errors'true); 

                    $name $_POST["name"];
                    $mail $_POST["mail"];
                    $nachricht $_POST["nachricht"];
                    $empfaenger "mail@email.de";
                    $betreff "Nachricht von Kontaktformular";

                    if(
                    $name !="" && $mail ! ="" && $nachricht !="" && $absenden ! ="" && preg_match("/@/"$email) =="1")

                    {
                    mail($empfaenger$betreff$nachricht"FROM: ".$mail."");
                    header("Location: index.htm");
                    exit();
                    }
                    else
                    {
                    header("Location: kontakt.htm");
                    exit();
                    }

                    php?>

                    Ps: diesmal is die e-mail nicht drinne

                    Kommentar


                    • #11
                      Also, wenn ich das jetzt richtig verstanden habe muss dieser Code in meine php datei rein und dann bin ich vor Identitätsdiebstahl und Manipulationen von daten sicher
                      Nope: PHP: Laufzeit-Konfiguration - Manual .

                      Code:
                      error_reporting(E_ALL | E_STRICT)(-1);
                      ist falsch! Entweder du schreibst
                      Code:
                      error_reporting(E_ALL | E_STRICT);
                      oder
                      Code:
                      error_reporting(-1);
                      , da das Error-Level über Bit-Werte gesetzt wird: PHP: error_reporting - Manual . E_ALL und E_STRICT sind Konstanten, die für bestimmte Bit-Werte stehen.


                      [edit]

                      Never seen that before, aber
                      Code:
                      php?>
                      ist Murks. PHP-Tags sehen so aus:
                      PHP-Code:
                      <?php
                      echo 'foo';
                      ?>
                      Gruß
                      http://hallophp.de

                      Kommentar


                      • #12
                        Alles klar habe ich geändert

                        Ansonsten war jetzt aber kein fehler mehr drinne oder? Programm zum Testen habe ich leider keins..und hier kann ich eben auch keins installieren.

                        Kann mir wer noch bitte das mit dem echo erlklären? *bin echt nicht gut in php =/*

                        Kommentar


                        • #13
                          Was für ein echo?
                          http://hallophp.de

                          Kommentar


                          • #14
                            PHP-Code:
                            <?php
                            echo 'foo';
                            ?>
                            Kann man das so schreiben, wenn jemand bei dem Kontaktformular nicht alle Felder ausgefüllt hat

                            PHP-Code:
                            mail($empfaenger$betreff$nachricht"FROM: ".$mail."");
                            header("Location: index.htm");
                            exit();
                            }
                            else
                            {
                            header("Location: kontakt.htm");
                            echo 
                            'Bitte alle Pflichtfelder ausfüllen';
                            exit();

                            ?> 
                            Das sich dann ein extra Browserfenster öffnet, mit diesem Text drin

                            Ich hoffe, dass das richtig Interpretiert habe...

                            Kommentar


                            • #15
                              Danke, fürs Helfen auch wenn die letzte frage offen bleibt.

                              Kommentar

                              Lädt...
                              X