Problem mit <form>

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

  • Problem mit <form>

    Hallo erstmal,

    folgendes Problem habe eine Tabelle um Daten einzugeben, Kundennummer, etc.

    <form name="Formular" action="./danke/danke.php<?php print $_SERVER['PHP_SELF']; ?>" method="post">

    wie ihr seht habe ich 2 anweisungen reingesetzt und weiß das das nicht funktinieren kann, habe es aber so geschrieben damit ihr wisst was ich meine.
    Nach "Submit" soll man auf die danke.php weitergeleitet werden, das ist mit "$strReturnhtml" nicht möglich da die Formular eingaben gesendet werden sollen. Um ein "Sehr geehrter Herr XY" zu ermöglichen auf der Danke Seite. Jedoch sollen gleichzeitig die Daten per PHP SELF als E-Mail an mich gesendet werden. 2mal form ist meiner Meinung nach nicht möglich, da der User ja sonst immer 2 Felder ausfüllen müsste.

    Hoffe ich habe mich verständlich ausgedrückt und jemand kann mir helfen.

    Vielen Dank!

  • #2
    PHP_SELF kann XSS Attacken ermöglichen.

    Pseudo Code:
    Code:
    wenn Formular ok
    {
      sende Mail
      zeige Danke
    }sonst
    {
      zeige Formular
    }
    Wir werden alle sterben

    Kommentar


    • #3
      danke für deine schnelle antwort, aber da ich ein ziemlicher noob in php bin könntest mir ein bisschen helfen und den richtigen text schreiben???

      ich weiß ist unverschämt und sagen alle anfänger, nervt etc..... aber ist wirklich das erste mal das ich jemand nach so etas frage.

      Kommentar


      • #4
        noch eine frage... das formular läuft über eine ssl verbindung, schützt das vor einer xss attacke?

        Kommentar


        • #5
          Zitat von check1 Beitrag anzeigen
          noch eine frage... das formular läuft über eine ssl verbindung, schützt das vor einer xss attacke?
          Nein.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            ich erkläre nochmal die antwort von combie ist gut und ich verstehe sie aber wie soll ich das "formular ok?" definieren. was soll ich da prüfen und mit welchen bezeichnungen?

            Kommentar


            • #7
              folgendes Problem habe eine Tabelle um Daten einzugeben, Kundennummer, etc.
              ....
              aber wie soll ich das "formular ok?" definieren. was soll ich da prüfen und mit welchen bezeichnungen?
              Du könntest z.B. prüfen ob die Kundennummer gültig ist.
              Für etc. musst du dir selber was ausdenken.
              Wir werden alle sterben

              Kommentar


              • #8
                ich kann jetzt hier nicht groß erklären warum aber ich brauche so eine abfrage nicht, gibts es also keine weniger aufwendige möglichkeit für mein vorhaben?

                Kommentar


                • #9
                  Zitat von check1 Beitrag anzeigen
                  action="./danke/danke.php<?php print $_SERVER['PHP_SELF']; ?>"
                  Schau mal in den Quelltext der Seite in deinem Browser, was da hinter action steht. Ich bezweifle, dass es was sinnvolles ist.
                  Schick das Formular an eine der beiden Seiten/Scripte und inkludiere dort das jeweils andere.

                  Kommentar


                  • #10
                    action="./danke/danke.php/bestellung/ihrebestellung.php"
                    steht da aber wie bereits geschrieben
                    ich weiß das es so nicht funktinieren kann,
                    deshalb brauche ich eine möglichkeit
                    die einer von euch mir vielleicht mitteilen kann,
                    damit das was ich vorhabe funktiniert.... halt in einer anderen weise.

                    *edit: @onemorenerd... ist diese xss attacke eine große sicherheitslücke???
                    Zuletzt geändert von check1; 28.08.2010, 13:30. Grund: vergessen

                    Kommentar


                    • #11
                      Hier meine danke.php die leider nicht funktioniert, vielleicht findet jemand den fehler.
                      Fehler: Die Mail wird zwar versendet, ich drücke aber auf keinen Submit Button oder ähnliches, die Seite bleibt weiß, also es erscheint !NIX! aber die Mail wird trotzdemg gesendet.

                      Code:
                      <?php
                      $strEmpfaenger = 'XXX';
                      $strFrom       = '"Bestellung" <XXX>';
                      $strSubject    = 'XXX';
                      $strDelimiter  = ":\t";
                      if($_POST)
                      {
                       $strMailtext = "";
                      
                       while(list($strName,$value) = each($_POST))
                       {
                        if(is_array($value))
                        {
                         foreach($value as $value_array)
                         {
                          $strMailtext .= $strName.$strDelimiter.$value_array."\n";
                         }
                        }
                        else
                        {
                         $strMailtext .= $strName.$strDelimiter.$value."\n";
                        }
                       }
                      
                       if(get_magic_quotes_gpc())
                       {
                        $strMailtext = stripslashes($strMailtext);
                       }
                      
                       mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
                        or die("Die Mail konnte nicht versendet werden.");
                       header("Location: $strReturnhtml");
                       exit;
                      }
                      
                      
                      ?>
                      <html>
                      <head>
                      <h1 align="center" class="style1">Ihre Bestellung</h1>
                      <form name="Bestellung" action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
                      </head>
                      <body>
                      <input type="hidden" name="Kundennummer" value="<?php echo $_POST['Kundennummer'];?>"> 
                      <input type="hidden" name="Preis" value="<?php echo $_POST['Preis'];?>"> 
                      <input type="Submit" name="" value="senden">
                      </form>
                      </body>
                      </html>
                      Zuletzt geändert von check1; 28.08.2010, 13:37. Grund: edit

                      Kommentar


                      • #12
                        Zitat von check1 Beitrag anzeigen
                        ist diese xss attacke eine große sicherheitslücke???
                        Eine der größten und fatalsten im Web überhaupt.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          wenn du die Mail einmal weiterschicken und 1mal für dich haben willst, dann wird das wohl danke.php BEIDES erledigen müssen, da du nunmal von einem Formular nicht 2 Scripte gleichzeitig als Formular-Action anspringen lassen kannst

                          wenn aber danke.php sowieso eine Mail losschicken soll, wäre es doch leicht diese Mail mit den gleichen Daten, nur dem geänderten Adressaten (DICH) nochmal los zu senden
                          [font=Verdana]
                          Wer LESEN kann, ist klar im Vorteil!
                          [/font]

                          Kommentar


                          • #14
                            <input type="hidden" name="Kundennummer" value="<?php echo $_POST['Kundennummer'];?>">
                            <input type="hidden" name="Preis" value="<?php echo $_POST['Preis'];?>">
                            Kundennummer, ok!
                            (aber die sollte doch besser in Session gehalten werden)

                            Aber der Preis?
                            Warum übergibst du den per Hidden Field?
                            Möchtest du Angreifen wirklich die Möglichkeit geben, dass gefälschte Preise per Email versendet werden?
                            Wir werden alle sterben

                            Kommentar


                            • #15
                              SOO erstmal danke für eure Posts.

                              Der erste Befehl mit PHP_SELF soll mir die E-Mail schreiben. Der zweite soll die Variablen an die danke.php weitergeben damit dort steht "Sehr geehrter Kunde Nr.XXX" ... was hat es für einen Nutzen wenn ein Angreifer den Preis ändert??? Und das mit den Sessions wird glaube ich zu kompliziert für mich werden. Außerdem das ein Script nicht 2 Sachen machen kann habe ich ja soweit verstanden, kann mir dann bitte aber jetzt jemand erklären was an meiner danke.php falsch ist??

                              VIELEN DANK!

                              Kommentar

                              Lädt...
                              X