Ankündigung

Einklappen
Keine Ankündigung bisher.

Spam - aber wie ?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #31
    Zitat von David Beitrag anzeigen
    Wie gesagt, diesen Code durchzusehen habe ich wirklich keine Lust. Aber wennpassiert, reicht der Test nicht aus.
    Ist beim template nie passiert und passiert jetzt beim mailscript auch nicht mehr, da ich eben eine Variable abfrage.
    Beide scripts brechen nun beim direkt - Aufruf eben ab ...

    Zitat von David Beitrag anzeigen
    Außerdem finde ich es generell suboptimal, wenn zwei verschiedene Testläufe für den gleichen Zweck laufen.
    Ja, aber der erste Testlauf ist eben jener, der die Daten für die Datenbank prüft ....

    Zitat von David Beitrag anzeigen
    Wie Du einfach selbst eine EMail erstellen kannst, kannst Du unter Swift Mailer [SwiftMailer Docs] nachlesen.
    Naja, aber das könnte ich ja beim phpmailer auch. Da übernimmt das zusammenbasteln eben nur das phpmailer-fe frontend, dass das wahrscheinlich besser kann als ich...

    Liebe Grüße und nochmals Danke
    phpels

    Kommentar


    • #32
      Zitat von phpels Beitrag anzeigen
      Ja, aber der erste Testlauf ist eben jener, der die Daten für die Datenbank prüft ....
      Und da sich das mail-Skript auf die POST Daten verlässt, besteht wie gesagt immer noch die Möglichkeit, dass verschiedene Daten in der Datenbank und in der Mail landen. Das mag jetzt bei Deiner Anwendung nicht so tragisch sein, aber warum? Und dann ist noch die Frage, warum Du die Werte überhaupt in _SESSION speicherst.

      Kommentar


      • #33
        Oder besser gesagt, warum Du sie nicht nutzt
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #34
          Zitat von nikosch Beitrag anzeigen
          Oder besser gesagt, warum Du sie nicht nutzt
          Hi Ich scheine es nicht zu verstehen

          Im ersten Teil eröffne ich eine Session und schreibe die überprüften Daten, die ins Formular eingegeben wurden in Session - Variablen. Dann rufe ich via header-location den 2. Teil auf und überprüfe dort ob die Session-Variablen auch gesetzt sind um sicher zu stellen, dass der 2. Teil micht ohne den ersten ausgeführt werden kann ...
          Im zweiten Teil werden NUR die Session - Variablen in die Tabelle und in das hidden - Formular geschrieben und diese dann per Formular, also Post in das phpmailer-fe script übergeben.

          Anscheinend mahnt ihr an, dass im Prozess der Übergabe an das mailscript (phpmailer-fe) die post - Methode verwendet wird.

          Aber wie soll ich die Daten denn sonst an das script übergeben ?

          Liebe Grüße
          phpels

          Kommentar


          • #35
            Von Schritt 1 zu Schritt 2 verwendest Du _SESSION. Und dann fragst Du, welche Möglichkeit außer _POST es noch gibt?
            Wenn Du bei Schritt 3 (dem eigentlichen Versenden der EMail) angelangt bist, hast Du die Daten bereits zwei Mal server-seitig gespeichert. Einmal in der Datenbank (was ich an dieser Stelle für einen Fehler halte, aber egal) und in _SESSION. Du brauchst die POST Daten überhaupt nicht mehr.

            Du willst die POST Daten nur verwenden, weil Du ein fix-und-fertig Skript hast, das irgendwelche POST Daten in eine EMail "verwandelt". Schön, aber damit handelst Du Dir wie gesagt in der jetzigen Form die Möglichkeit ein, dass Du verschiedene Datensätze in der Datenbank und der EMail hast.

            Kommentar


            • #36
              Vor allem, wer füllt denn auf der sozusagen Bestätigungsseite noch ein Captcha aus??
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #37
                Zitat von David Beitrag anzeigen
                Von Schritt 1 zu Schritt 2 verwendest Du _SESSION. Und dann fragst Du, welche Möglichkeit außer _POST es noch gibt?
                Wenn Du bei Schritt 3 (dem eigentlichen Versenden der EMail) angelangt bist, hast Du die Daten bereits zwei Mal server-seitig gespeichert. Einmal in der Datenbank (was ich an dieser Stelle für einen Fehler halte, aber egal) und in _SESSION. Du brauchst die POST Daten überhaupt nicht mehr.

                Du willst die POST Daten nur verwenden, weil Du ein fix-und-fertig Skript hast, das irgendwelche POST Daten in eine EMail "verwandelt". Schön, aber damit handelst Du Dir wie gesagt in der jetzigen Form die Möglichkeit ein, dass Du verschiedene Datensätze in der Datenbank und der EMail hast.
                Hi David

                IC - also entweder ich finde einen Weg die Variablen über die Session an das mailscript zu übergeben, oder ich schreibe mir in dem script den mail - header selbst und übergebe die Variablen im script an den includeten phpmailer oder swiftmailer

                noch besser wäre es, die Sache umzudrehen, und die Variablen aus dem Formular in der Session zu speichern, diese bestätigen zu lassen und erst dann die mail zu generieren und sie dann via PDO und prepared Statement in die Datenbank zu schreiben ..

                Habe ich das so richtig verstanden ?

                Und das alles geht AUCH auf EINER Seite in EINEM Script ?

                lg
                phpels

                Kommentar


                • #38
                  Und das alles geht AUCH auf EINER Seite in EINEM Script ?
                  Ja, sofern du die hier beschriebenen Themen dort alle abfackelst. Die Session ist ja erst mal unabhängig vom Request-Schritt...
                  Viele Grüße,
                  Dr.E.

                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  1. Think about software design [B]before[/B] you start to write code!
                  2. Discuss and review it together with [B]experts[/B]!
                  3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
                  4. Write [I][B]clean and reusable[/B][/I] software only!
                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                  Kommentar


                  • #39
                    Boah is dat alles kompliziert.

                    Affenformular, $_POST-Array verifizieren, prüfen ob durch Bot ausgefüllt, dann verarbeiten (mailen, ggf. speichern). 100 Zeilen Code, fertig.

                    Das vorgebliche Universalscript macht dir nun schon 10 mal mehr Arbeit, als wenn du das ganze Dingens selbst geschrieben hättest. Kontaktformulare sind nun wirklich Standard und kein Geheimnis.
                    [PHP]if ($var != 0) {
                    $var = 0;
                    }[/PHP]

                    Kommentar


                    • #40
                      Das vorgebliche Universalscript macht dir nun schon 10 mal mehr Arbeit,
                      Dann hast Du noch nie eine Mailklasse geschrieben.
                      [COLOR="#F5F5FF"]--[/COLOR]
                      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                      [COLOR="#F5F5FF"]
                      --[/COLOR]

                      Kommentar


                      • #41
                        Hi

                        Danke für eure Anregungen und Antworten.

                        In EIN Script hab' ich die Sache nicht gebracht, aber in zwei Teile, in denen ich versucht habe, eure Anregungen umzusetzen.

                        Was ist noch nicht weiß ist, wie ich am besten die diversen Eingaben auf Richtigkeit prüfe (z.b. und vor allem die eingegebene email - Adresse).

                        Das ist dabei heraus gekommen und ich bitte um check in einer Mußestunde

                        Zuerst das Eingangsformular mit dem Erstkontakt:

                        PHP-Code:
                        <?php 
                        session_start
                        ();
                         
                         
                        // Prüfen, ob sich die Seite selbst aufgerufen hat
                            
                        if ( isset($_POST["do"]) && $_POST["do"] == "insert" )
                            {
                            
                        // Die Seite hat sich selbst aufgerufen
                            
                        //Variablenkontrolle:

                                
                        if (!isset($_POST["Vorname"])|| !isset($_POST["Zuname"])
                                    || !isset(
                        $_POST["frmAdresse"])||!isset($_POST["frmPLZ"])||!isset($_POST["frmOrt"])
                                    || !isset(
                        $_POST["frmTelNr"])||!isset($_POST["email"])||!isset($_POST["Anliegen"]))
                                            {
                                              die;
                                            }

                            
                        // Pflichtfeldkontrolle
                                
                            
                        $error_msg    =    "";    
                            
                            if ( 
                        $_POST["Vorname"] == "" )
                            {
                                
                        $error_msg    =    "Bitte geben Sie einen Vornamen an.<br>";
                            }
                            
                            if ( 
                        $_POST["Zuname"] == "" )
                            {
                                
                        $error_msg    .=    "Bitte geben Sie einen Zunamen an.<br>";
                            }
                            
                            if ( 
                        $_POST["email"] == "" )
                            {
                                
                        $error_msg    .=    "Bitte geben Sie eine email Adresse an.<br>";
                            }
                                if ( 
                        $_POST["Anliegen"] == "" )
                            {
                                
                        $error_msg    .=    "Bitte geben Sie ein Anliegen ein .<br>";
                            }
                            


                        // CAPTCHA


                        if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
                        unset(
                        $_SESSION['captcha_spam']);
                        }
                        else{
                           
                        $error_msg    .=    "Der Sicherheitscode ist falsch.<br>";
                        }  
                            
                        // End CAPTCHA


                            
                            
                        if ( $error_msg    == "")
                            {
                               
                                   
                        //Variablen in Session speichern
                                   
                                   
                        $_SESSION["Vorname"] = $_POST["Vorname"];
                                   
                        $_SESSION["Zuname"] = $_POST["Zuname"];
                                   
                        $_SESSION["frmAdresse"] = $_POST["frmAdresse"];
                                   
                        $_SESSION["frmPLZ"] = $_POST["frmPLZ"];
                                   
                        $_SESSION["frmOrt"] = $_POST["frmOrt"];
                               
                        $_SESSION["frmTelNr"] = $_POST["frmTelNr"];
                                   
                        $_SESSION["email"] = $_POST["email"];
                                   
                        $_SESSION["Anliegen"] = $_POST["Anliegen"];
                                
                        // Wechsel auf Vorschau
                                
                        header("Location: testtnx.php");
                                die;
                                
                            }

                            }



                        ?>


                        <span class="errormessage">
                            <?php
                                
                        if ( $error_msg != "")
                                
                                {
                                
                                echo 
                        $error_msg;
                                
                                }
                            
                        ?>
                            </span>

                            <span style="color:#FFCC00" align="center">


                        <h1>KONTAKT</h1>

                        <h2>Bitte nehmen Sie &uuml;ber folgendes Formular Kontakt zu mir auf.</h2>
                        <h3>Durch die serverseitige Verarbeitung des Formulars, wird der Versuch Dritter unterbunden auf sensible Daten zuzugreifen. </h3>
                        <br /><br />

                          </span>
                            
                        <form action="<?php echo $_POST["PHP_SELF"]; ?>" method="POST" >
                         <input type="hidden" value="kontakt.html" name="referer">
                          <table style="color:#FFCC00; font-weight:bold;">
                          
                          
                          
                          <tr>
                            <td style="font-weight:bold;">* = Eingabe erforderlich</td><td> </td>
                          </tr>
                          <tr>
                            <td>Vorname*:</td><td> <input type="text" name="Vorname" value="<?php echo htmlspecialchars($_POST['Vorname']); ?>" size="40" style="font-weight:bold; background-color:#FFCC00; border-bottom-color:#FFDF00 ; border-right-color:#FFDF00"></td>
                          </tr>
                          <tr>
                            <td>Zuname*:</td><td> <input type="text" name="Zuname" value="<?php echo htmlspecialchars($_POST['Zuname']); ?>" size="40" style="font-weight:bold; background-color:#FFCC00; border-bottom-color:#FFDF00 ; border-right-color:#FFDF00"></td>
                          </tr>
                          <tr>
                            <td>Adresse:</td><td> <input type="text" name="frmAdresse" value="<?php echo htmlspecialchars($_POST['frmAdresse']); ?>" size="80" style="font-weight:bold; background-color:#FFCC00; border-bottom-color:#FFDF00 ; border-right-color:#FFDF00"></td>
                          </tr>
                          <tr>
                            <td>PLZ:</td><td> <input type="text" name="frmPLZ" value="<?php echo htmlspecialchars($_POST['frmPLZ']); ?>" size="20" style="font-weight:bold; background-color:#FFCC00; border-bottom-color:#FFDF00 ; border-right-color:#FFDF00"></td>
                          </tr>
                          <tr>
                            <td>Ort:</td><td> <input type="text" name="frmOrt" value="<?php echo htmlspecialchars($_POST['frmOrt']); ?>" size="40" style="font-weight:bold; background-color:#FFCC00; border-bottom-color:#FFDF00 ; border-right-color:#FFDF00"></td>
                          </tr>
                          <tr>
                            <td>Telefonnummer:</td><td> <input type="text" name="frmTelNr" value="<?php echo htmlspecialchars($_POST['frmTelNr']); ?>" size="40" style="font-weight:bold; background-color:#FFCC00; border-bottom-color:#FFDF00 ; border-right-color:#FFDF00"></td>
                          </tr>
                          <tr>
                            <td>Email*:</td><td> <input type="text" name="email" value="<?php echo htmlspecialchars$_POST['email']); ?>" size="40" style="font-weight:bold; background-color:#FFCC00; border-bottom-color:#FFDF00 ; border-right-color:#FFDF00"></td>
                          </tr>
                          <tr>
                            <td>Anliegen*:</td><td> <textarea rows="4" name="Anliegen" value="<?php echo htmlspecialchars($_POST['Anliegen']); ?>" cols="40" style="font-weight:bold; background-color:#FFCC00; border-bottom-color:#FFDF00 ; border-right-color:#FFDF00"></textarea></td>
                          </tr>
                         <tr>
                          <td colspan=2>Anliegen zum markieren und Einf&uuml;gen falls es beim reload verschwindet:</td>
                          </tr>
                         </td>
                          <td colspan=2 style="color:#ff0000"><?php echo htmlspecialchars($_POST['Anliegen']); ?></td>
                          </tr>
                          <tr>
                          <td align="left" width="10%"><input type="hidden" name="do" value="insert"></td>
                          </tr>
                          </table>
                          Enter security code:<br />
                        <input type="text" name="sicherheitscode" size="5"><br />
                        <br />
                        Sollten Sie den Code nicht lesen k&ouml;nnen, dr&uuml;cken sie in ihrem Browser auf &quot;reload&quot um ihre Eingaben zu behalten und einen anderen Code angezeigt zu bekommen.<br />
                          <p><input type="submit" value="Absenden" name="submit"><input type="reset" value="Reset" name="B2"></p>
                          <img src="../captcha/captcha.php" border="0" title="Sicherheitscode"><br />
                          
                         <br />
                            </form>

                        Warum bei obigem Formular bei einem "reload" das echo in der textarea nicht funktioniert ist mir ein Rätsel - desshalb der "workaround" mit der Extra - Anzeige damit der user wenigstens cut'n pasten kann.

                        Ist das obige Formular "zufrieden" ruft es dann das nächste auf - und dass lässt keine Ruhe bis es zufrieden ist, eine (leider im Moment noch 2 ..) mail absetzt, und den Eintrag in die DB macht:

                        PHP-Code:
                        <?php
                        session_start 
                        ();

                        // Wenn das script direkt aufgerufen wurde und/oder die Session Variablen
                        //nicht gesetzt sind, wird abgebrochen
                        //die Session und etwaige Session - Variablen gelöscht...

                        if ( !isset($_POST["do2"])|| $_POST["do2"] != "insert")
                            {
                        if (!isset(
                        $_SESSION["Vorname"])|| !isset($_SESSION["Zuname"])
                                    || !isset(
                        $_SESSION["frmAdresse"])||!isset($_SESSION["frmPLZ"])||!isset($_SESSION["frmOrt"])
                                    || !isset(
                        $_SESSION["frmTelNr"])||!isset($_SESSION["email"])||!isset($_SESSION["Anliegen"]))
                                            {
                                              
                        $_SESSION = array();
                                                if (isset(
                        $_COOKIE[session_name()]))
                                                {
                                                        
                        setcookie(session_name(), ''time()-42000'/');
                                                    }

                                                
                        session_destroy;
                                              die(
                        "Cannot prozess....");
                                            }
                            }


                        //--------------- Script wurde ordnungsgemäß aus Formularseite übergeben --------------


                        // Variable do2 darf nur die Werte insert oder changed annehmen sonst Abbruch und Löschung der Session

                        if ( isset($_POST["do2"]) && $_POST["do2"] != "insert" )
                        {
                            
                            if (
                        $_POST["do2"] != "changed")
                            
                            {
                             
                        $_SESSION = array();
                                                if (isset(
                        $_COOKIE[session_name()]))
                                                {
                                                        
                        setcookie(session_name(), ''time()-42000'/');
                                                    }

                                                
                        session_destroy;
                                              die(
                        "illegal variable 1....");   
                                 
                                
                            }
                            
                            
                            
                        }

                        // Variable posterrare darf nur die Werte send oder nosend annehmen sonst Abbruch und Löschung der Session

                        if ( isset($_POST["posterrare"]) && $_POST["posterrare"] != "send" )
                        {
                            
                            if (
                        $_POST["posterrare"] != "nosend")
                            
                            {
                             
                        $_SESSION = array();
                                                if (isset(
                        $_COOKIE[session_name()]))
                                                {
                                                        
                        setcookie(session_name(), ''time()-42000'/');
                                                    }

                                                
                        session_destroy;
                                              die(
                        "illegal variable 2....");   
                                 
                                
                            }
                            
                            
                            
                        }


                        //---------------  Wenn das Script innerhalb der Session vom zuständigen Formular aufgerufen wurde...


                        // Prüfen, ob sich die Seite selbst aufgerufen hat

                            
                        if ( isset($_POST["do2"]) && $_POST["do2"] == "insert" )    
                           
                            {
                            
                            
                        // Die Seite hat sich selbst aufgerufen
                                
                                
                                // Variablencheck nach ungesetzten Variablen = Abbruch und Löschung der Session:
                                
                                
                        if (!isset($_POST["Vorname"])|| !isset($_POST["Zuname"])
                                    || !isset(
                        $_POST["frmAdresse"])||!isset($_POST["frmPLZ"])||!isset($_POST["frmOrt"])
                                    || !isset(
                        $_POST["frmTelNr"])||!isset($_POST["email"])||!isset($_POST["Anliegen"])
                                    ||!isset(
                        $_POST["confirm"])||!isset($_POST["referer"]))
                                
                                {
                                        
                        $_SESSION = array();
                                                if (isset(
                        $_COOKIE[session_name()]))
                                                {
                                                        
                        setcookie(session_name(), ''time()-42000'/');
                                                    }
                                                
                        session_destroy;
                                              die(
                        "illegal variable 3 ....");   
                                 
                                
                                }
                                
                                
                        // Pflichtfeldkontrolle
                                
                            
                        $error_msg    =    "";    
                            
                            if ( 
                        $_POST["Vorname"] == "" )
                            {
                                
                        $error_msg    =    "Bitte geben Sie einen Vornamen an.<br>";
                            }
                            
                            if ( 
                        $_POST["Zuname"] == "" )
                            {
                                
                        $error_msg    .=    "Bitte geben Sie einen Zunamen an.<br>";
                            }
                            
                            if ( 
                        $_POST["email"] == "" )
                            {
                                
                        $error_msg    .=    "Bitte geben Sie eine email Adresse an.<br>";
                            }
                                if ( 
                        $_POST["Anliegen"] == "" )
                            {
                                
                        $error_msg    .=    "Bitte geben Sie ein Anliegen ein .<br>";
                            }
                                

                        if ( 
                        $error_msg    == "")

                        {


                                
                        // Checkboxfeld prüfen und
                                         // Variable confirm darf nur die Werte confirm oder trash annehmen sonst Abbruch und Löschung der Session

                                                        
                        if ( isset($_POST["confirm"]) && $_POST["confirm"] != "confirm" )
                                                        {
                                                            
                                                            if (
                        $_POST["confirm"] != "trash")
                                                            
                                                            {
                                                             
                        $_SESSION = array();
                                                                                if (isset(
                        $_COOKIE[session_name()]))
                                                                                {
                                                                                        
                        setcookie(session_name(), ''time()-42000'/');
                                                                                    }
                                                        
                                                                                
                        session_destroy;
                                                                              die(
                        "illegal variable 4....");   
                                                                 
                                                                
                                                            }
                                                                                
                                                        }                      
                                                       
                                                
                                              if (
                        $_POST["confirm"] == "trash")
                                                {
                                                   
                        $_SESSION["do2"] = "changed";
                                                }
                                              if (
                        $_POST["confirm"] == "confirm")
                                                {
                                                   
                        $_SESSION["do2"] = "insert";
                                                }
                                                


                                                  
                        // Prüfen ob die Formularvariablen den Session - Variablen entsprechen
                                                  // oder ob sie geändert wurden - und neue Werte speichern
                                                
                                                
                                                
                        if ($_POST["Vorname"] != $_SESSION["Vorname"])
                                                 {   
                                                   
                                                    
                        $_SESSION["do2"] = "changed";
                                                    
                        $_SESSION["Vorname"]= htmlspecialchars($_POST["Vorname"]);
                                                }
                                                
                                                if (
                        $_POST["Zuname"] != $_SESSION["Zuname"])
                                                {
                                                    
                                                    
                        $_SESSION["do2"] = "changed";
                                                    
                        $_SESSION["Zuname"]=htmlspecialchars($_POST["Zuname"]);
                                                }
                                                if (
                        $_POST["frmAdresse"] != $_SESSION["frmAdresse"])
                                                {
                                                    
                                                    
                        $_SESSION["do2"] = "changed";
                                                    
                        $_SESSION["frmAdresse"]=htmlspecialchars($_POST["frmAdresse"]);
                                                }
                                                if (
                        $_POST["frmPLZ"] != $_SESSION["frmPLZ"])
                                                {
                                                    
                        $_SESSION["do2"] = "changed";
                                                    
                        $_SESSION["frmPLZ"]=htmlspecialchars($_POST["frmPLZ"]);
                                                    
                                                }
                                                if (
                        $_POST["frmOrt"] != $_SESSION["frmOrt"])
                                                {
                                                    
                        $_SESSION["do2"] = "changed";
                                                    
                        $_SESSION["frmOrt"]=htmlspecialchars($_POST["frmOrt"]);
                                                   
                                                }
                                                if (
                        $_POST["frmTelNr"] != $_SESSION["frmTelNr"])
                                                {
                                                    
                        $_SESSION["do2"] = "changed";
                                                    
                        $_SESSION["frmTelNr"]=htmlspecialchars($_POST["frmTelNr"]);
                                                   
                                                }
                                                if (
                        $_POST["email"] != $_SESSION["email"])
                                                {
                                                    
                        $_SESSION["do2"] = "changed";
                                                    
                        $_SESSION["email"]=htmlspecialchars($_POST["email"]);
                                                     
                                                }
                                                if (
                        $_POST["Anliegen"] != $_SESSION["Anliegen"])
                                                {
                                                    
                        $_SESSION["do2"] = "changed";
                                                    
                        $_SESSION["Anliegen"]=htmlspecialchars($_POST["Anliegen"]);
                                                    
                                                }
                        // wurden die Daten geändert wird das Formular erenut aufgerufen
                        //wenn nicht ....


                                 // Wenn Datencheck ok und Checkbox auf Bestätigen - dann email und Eintrag in DB
                                                
                        if (isset($_SESSION["do2"])&& $_SESSION["do2"] == "insert")
                                                {
                                                                          
                                    
                                    require 
                        "ikenndifunctions.inc.php";
                                    require(
                        "phpmailer/class.phpmailer.php");
                                     
                        // Mail
                                    
                                    
                        $mail = new PHPMailer();
                                    
                        $mail->IsSMTP();
                                    
                        $mail->Host     "smtp.server.at";
                                    
                        $mail->From $_SESSION["email"];
                                    
                        $mail->FromName $_SESSION["Zuname"] ." "$_SESSION["Vorname"];
                                    
                        $mail->AddAddress("meine@email.ad");
                                    
                        $mail->Subject "Lustaufleben - KONTAKT";
                                    
                        $mail->Body =
                                    
                        "Lustaufleben - KONTAKT \n\n " .
                                    
                        $_SESSION["Zuname"] . " \n " .
                                    
                        $_SESSION["Vorname"] . " \n " .
                                    
                        $_SESSION["frmAdresse"] . " \n " .
                                    
                        $_SESSION["frmPLZ"] . " \n " .
                                    
                        $_SESSION["frmOrt"] . " \n " .
                                    
                        $_SESSION["frmTelNr"] . " \n " .
                                    
                        $_SESSION["email"] . " \n " .
                                    
                        $_SESSION["Anliegen"];
                                    
                        $mail->Send();
                                    
                        $_SESSION["posterrare"] = "send";
                                                if(!
                        $mail->Send())
                                                {
                                                
                        $_SESSION["posterrare"] = "nosend";
                                                }
                                    
                                    
                                    
                        // Wenn geklappt ....
                                    
                        if ($_SESSION["posterrare"] == "send")
                                    {
                                    
                        // Datenbank-Eintrag
                                    
                        $objDb mysqlconnectpdo();
                                    
                                
                        // INSERT
                                
                        $dbInsertikenndi $objDb->prepare("INSERT INTO ikenndi (Vorname, Zuname, frmAdresse, frmPLZ, frmOrt, frmTelNr, email, Anliegen)
                                    VALUES (:Vorname, :Zuname, :frmAdresse, :frmPLZ, :frmOrt, :frmTelNr, :email, :Anliegen)"
                        );
                                    

                                        
                        $dbInsertikenndi->bindParam('Vorname'$_SESSION["Vorname"]);
                                        
                        $dbInsertikenndi->bindParam('Zuname'$_SESSION["Zuname"]);
                                        
                        $dbInsertikenndi->bindParam('frmAdresse'$_SESSION["frmAdresse"]);
                                        
                        $dbInsertikenndi->bindParam('frmPLZ'$_SESSION["frmPLZ"]);
                                        
                        $dbInsertikenndi->bindParam('frmOrt'$_SESSION["frmOrt"]);
                                        
                        $dbInsertikenndi->bindParam('frmTelNr'$_SESSION["frmTelNr"]);
                                        
                        $dbInsertikenndi->bindParam('email'$_SESSION["email"]);
                                        
                        $dbInsertikenndi->bindParam('Anliegen'$_SESSION["Anliegen"]);
                                
                                            
                                
                        // In die Datenbank eintragen
                                 
                        $result $dbInsertikenndi->execute();
                                
                                   
                                   if ( 
                        false===$result )
                                {
                                
                                
                        // Warn - email an admin
                                    
                        $mail = new PHPMailer();
                                
                        $mail->IsSMTP();
                                    
                        $mail->Host     "smtp.server.at";
                                    
                        $mail->From "meine@email.ad";
                                    
                        $mail->FromName "TNX-Warning";
                                    
                        $mail->AddAddress("meine@email.ad");
                                    
                        $mail->Subject "WARNING - Lustaufleben - KONTAKT";
                                    
                        $mail->Body "Fehler bei Dateneintrag" mysql_error "\n" $_SESSION["email"];
                                    
                        $mail->Send();
                                         
                                die(
                        "Konnte den Datensatz nicht eintragen");
                                }
                                
                                    
                                                
                                                        
                                        
                        //Session und Session - Variablen Löschen
                                                
                        $_SESSION = array();
                                                if (isset(
                        $_COOKIE[session_name()]))
                                                {
                                                        
                        setcookie(session_name(), ''time()-42000'/');
                                                    }

                                                
                        session_destroy;
                                                
                        header("Location: http://www.lustaufleben.at");
                                                            die();
                                                            
                                    }
                                                }
                                                
                        }
                                                            
                                                            
                            }
                            

                        // Die Seite wurde zum ersten mal aufgerufen .... oder Daten wurden geändert  .... oder mail wurde nicht gesandt ...
                        ?>
                        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

                        <html>

                            <head>
                                <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
                                        <title>Kontakt2</title>
                                        <link rel="stylesheet" type="text/css" href="gbuch/styles/lalstyle/stylesheet.css"</link>
                                <link rel="shortcut icon" href="../pics/favicon.ico" type="image/x-icon"></link>
                                    
                            </head>

                            <body>
                            <?php
                            
                        include "includes/header.inc";
                            include 
                        "includes/navlineshort.inc";
                            
                        ?>
                            <br />
                            <span class="errormessage">
                            <?php
                                
                        if ( $error_msg != "")
                                
                                {
                                
                                echo 
                        $error_msg;
                                
                                }
                                    if (isset (
                        $_SESSION["posterrare"]) && ($_SESSION["posterrare"] == "nosend"))
                                    {
                                    echo 
                        "Nachricht nicht gesendet. <br />";
                                    echo 
                        "Mailer error <br />";
                                    echo 
                        "Bitte nochmals versuchen";
                                    }
                            
                        ?>
                            </span>


                                <form action="<?php echo $_POST["PHP_SELF"]; ?>" method="POST" >
                                
                         <input type="hidden" value="tnx.php" name="referer">
                            
                          <table style="color:#FFCC00; font-weight:bold; width:100%;margin-top:2%">
                         <th colspan=2><h1>Vorschau ihrer Eingaben:</h1></th>
                         <tr>
                            <td>&nbsp;</td><td>&nbsp;</td>

                          </tr>
                          <tr>
                          <td align="right">Vorname*:</td><td align="left"><input type="text" name="Vorname" value="<?php echo htmlspecialchars($_SESSION['Vorname']); ?>"></td>
                          </tr>
                          
                          <tr>
                          <td align="right">Zuname*:</td><td align="left"><input type="text" name="Zuname" value="<?php echo htmlspecialchars($_SESSION['Zuname']); ?>"> </td>
                          </tr>
                          
                          <tr>
                          <td align="right">Adresse:</td><td align="left"><input type="text" name="frmAdresse" value="<?php echo htmlspecialchars($_SESSION['frmAdresse']); ?>"></td>
                          </tr>
                          
                          <tr>
                          <td align="right">PLZ:</td><td align="left"><input type="text" name="frmPLZ" value="<?php echo htmlspecialchars($_SESSION['frmPLZ']); ?>"></td>
                          </tr>
                          
                          <tr>
                          <td align="right">Ort:</td><td align="left"><input type="text" name="frmOrt" value="<?php echo htmlspecialchars($_SESSION['frmOrt']); ?>"></td>
                          </tr>
                          <tr>
                          <td align="right">TelNr:</td><td align="left"><input type="text" name="frmTelNr" value="<?php echo htmlspecialchars($_SESSION['frmTelNr']); ?>"></td>
                          </tr>
                          
                          <tr>
                          <td align="right">mail*:</td><td align="left"><input type="text" name="email" value="<?php echo htmlspecialchars($_SESSION['email']); ?>"></td>
                          </tr>
                          
                          <tr>
                          <td align="right">Anliegen*:</td><td align="left"><input type="text" name="Anliegen" value="<?php echo htmlspecialchars($_SESSION['Anliegen']); ?>"></td>
                          </tr>
                          
                          <tr>
                          <td><input type="hidden" name="do2" value="insert"></td>
                          </tr>
                          <tr>
                             <td colspan=2><h2>Sind diese Eingaben korrekt ?</h2></th>
                         </tr>
                         <tr>
                         
                            <td align="right">Best&auml;tigen:</td><td align="left"><input type="radio" name="confirm" value="confirm" checked="checked"></td>
                          </tr>
                         <tr>
                            <td align="right">&Auml;ndern:</td><td align="left"><input type="radio" name="confirm" value="trash"></td>

                         </tr>
                        <tr>

                          <td colspan=2 align="center"> <input type="submit" value="Submit" name="submit"> </td>
                         
                        </tr>

                        </table>
                          
                            </form>

                            </body>

                        </html>
                        Datenbankeintrag erfolgt via PDO - prepared statement das in einer externen Datei vorbereitet wird.


                        Tja ein Mysterium ist mir aufgefallen:

                        Ich bekomme bei Erfolg immer 2 IDENTE mails !! und kann nicht erkennen warum .. ?!?

                        OK, - ich bin neugierig ob ichs halbwegs hinbekommen habe.

                        Liebe Grüße
                        phpels

                        Kommentar


                        • #42
                          Warum machst Du Dir die Mühe, die POST Daten überhaupt noch mal komplett zu übergeben und auf Gleichheit zu testen?
                          Du hast die Daten in _SESSION, das reicht völlig aus.

                          Kommentar


                          • #43
                            Zitat von David Beitrag anzeigen
                            Warum machst Du Dir die Mühe, die POST Daten überhaupt noch mal komplett zu übergeben und auf Gleichheit zu testen?
                            Du hast die Daten in _SESSION, das reicht völlig aus.
                            Na weil auf dem neuen Formular der user die Daten ja ändern kann und wenn er sie geändert hat, bekommt er nochmal die Vorschau um sie final zu bestätigen ...

                            lg
                            phpels

                            Kommentar


                            • #44
                              Dann zeig die Daten doch einfach an - unveränderlich
                              "Wollen Sie die Nachricht so abschicken?"
                              Ja -> weiter zum Mailer, der dann die Daten aus _SESSION nimmt.
                              Nein -> zurück zum Eingabe-Formular.

                              Kommentar


                              • #45
                                Zitat von David Beitrag anzeigen
                                Dann zeig die Daten doch einfach an - unveränderlich
                                "Wollen Sie die Nachricht so abschicken?"
                                Ja -> weiter zum Mailer, der dann die Daten aus _SESSION nimmt.
                                Nein -> zurück zum Eingabe-Formular.
                                Hi
                                Auch möglich, dann springe ich aber einmal mehr zwischen den Formularen hin und her (XSS). Im Eingabe Formular werden ja die Daten bevor sie weitergegeben werden (..die Neueingaben sind ja auch wieder Post - Variablen) auch wieder gecheckt. So wird eben das 2. Formular zum Eingabe - Formular.
                                Es sieht mir eher nach einer Geschmackssache aus.

                                lg
                                phpels

                                Kommentar

                                Lädt...
                                X