Ankündigung

Einklappen
Keine Ankündigung bisher.

action="...$_SERVER['PHP_SELF'];... und dennoch andere

Einklappen

Neue Werbung 2019

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

  • action="...$_SERVER['PHP_SELF'];... und dennoch andere

    ...aufrufen? Ist das möglich?

    Ich habe ein Formular, wo die Daten der Felder geprüft werden, ob sie richtig ausgefüllt wurden. Falls dem nicht so ist, erscheint eine Fehlermeldung bei dem Betreffenden Feld. Damit nicht alle Daten gelöscht sind verwende ich als action:

    "<?php echo $_SERVER['PHP_SELF'];...

    Wäre es möglich diese Funktion bezubehalten und wenn wenn man auf Absenden klickt die Daten trotzdem zu einer anderen Seite gesendet werden, so als ob man action="seite2.php" verwendet?
    Gruß
    NetLook

    www.werbeset.com


  • #2
    Die Seite, die das Formular erhält, also das Formularziel, muss sich um die Validierung kümmern. Du kannst natürlich die Validierung in eine Funktion packen, die zB ein Array mit Fehlermeldungen zurückgibt, falls Fehler aufgetreten sind. Falls nicht, ist das Array natürlich leer. Diese beiden Fälle nutzt du dann zur Unterscheidung von valid und invalid und gibst entweder die Fehler aus oder verarbeitest die Formulardaten.

    Kommentar


    • #3
      Aber wenn die Zielseite die Prüfung übernimmt, ist die erste Seite, das Formular mit den Daten doch nicht mehr zu sehen oder?!
      Gruß
      NetLook

      www.werbeset.com

      Kommentar


      • #4
        Deshalb musst du das so umbauen, dass die Zielseite sich darum kümmert.

        Kommentar


        • #5
          hallo NetLook,

          aus deiner Problembeschreibung bin ich nicht so recht schlau
          geworden. Wenn du die Formulardaten an eine andere Url schickst,
          wo sollen denn dann
          eine Fehlermeldung bei dem Betreffenden Feld
          erscheinen?
          Wenn du die Seite die den Inhalt überprüft aufrufst ist doch das Formular
          verschwunden....

          mfg

          akratellio
          "Ich lüge immer..."
          http://www.akratellio.de/dai

          Kommentar


          • #6
            Wenn Seite 1 ein Forumlar ist, und Seite 2 der Empfänger, dann kann man offenbar Werte von 1 zu 2 transportieren. Warum sollte es umgekehrt also nicht gehen?

            Dazu kannst du zum Beispiel Sessions verwenden. Mehr dazu im Manual:#
            http://de2.php.net/session

            Kommentar


            • #7
              @akratellio

              Wie gesagt möchte ich ja, das zuerst die Formular-Daten geprüft werden und bei Fehlern die Seite bestehen bleibt und die Fehler angezeigt werden. Sollte alles ok sein, sollen die Daten zur Zielseite gesendet werden!

              @all

              Kann man den evtl. den gerade gemachten Eintrag in einem Feld prüfen?
              Ich gebe in Feld1 einen Wert ein und sobald ich das Feld verlasse, wird die Prüfungsfunktion aufgerufen. Oder geht das nur mit Javascript?
              Gruß
              NetLook

              www.werbeset.com

              Kommentar


              • #8
                Serverseitig geht das nur, wenn die Seite abgeschickt wurde. Ansonsten clientseitig, also mit JS.

                Kommentar


                • #9
                  Hallo NetLook,
                  als action kannst du das PHP_SELF weiterhin benutzen,
                  du machst einfach eine weiterleitung per header( 'Location: ZielURL') zu der Ziel-Seite falls das Error_Array leer ist, also keine Fehler vorhanden sind.

                  Oder verstehe ich was falsch...??

                  Gruß

                  Kommentar


                  • #10
                    hallo NetLook,

                    wenn dein Überprüfung im Formularscript erfolgt, so kannst du
                    ja eine header- umleitung bei validität einbauen.
                    Die ganze Prozedur müsste allerdings vor <html> stattfinden,
                    damit ein neuer Header noch gesetzt werden kann.

                    so z.B:

                    Code:
                    <?php
                    
                    foreach($_POST as $k => $v){
                    
                        if("falsch"){
                    
                            $fehler[] = "leider falsch",
                    
                            }
                    
                    if(empty($fehler)){
                    
                        header("location:hier_kommt_deine_neue_url_ein");
                       
                        exit;
                    
                        }
                    
                    
                    ?>
                    mfg

                    akratellio
                    "Ich lüge immer..."
                    http://www.akratellio.de/dai

                    Kommentar

                    Lädt...
                    X