Flo: action="" bei form leer lassen

Hallo,

ich möchte, wenn jemand den submit-Button drückt, nicht die Variablen in der Adresszeile ändern. Gebe ich bei action="" z.B. index.php ein, dann springt die Seite auf index.php.

Darf man einfach action="" leer lassen?

Vielen Dank

Flo

  1. Hallo,

    ich möchte, wenn jemand den submit-Button drückt, nicht die Variablen in der Adresszeile ändern. Gebe ich bei action="" z.B. index.php ein, dann springt die Seite auf index.php.

    Darf man einfach action="" leer lassen?

    Vielen Dank

    Flo

    Klar, dann passiert nur nix.

    1. Hi,

      danke für die Antworten. Doch es passiert schon was.

      Ich möchte die Variablen in PHP erhalten. Dies passiert wenn ich action="" leer lasse und gleichzeitig kann ich die neuen Variablen vom Formular übernehmen, ohne dass sich die Seite ändert. Sonst müsste ich ja immer in action z.B. index.php?site=test.php etc. angeben.

      Ich hoffe ich liege da richtig.

      Viele Grüße

      Flo

      1. Ich möchte die Variablen in PHP erhalten. Dies passiert wenn ich action="" leer lasse und gleichzeitig kann ich die neuen Variablen vom Formular übernehmen, ohne dass sich die Seite ändert. Sonst müsste ich ja immer in action z.B. index.php?site=test.php etc. angeben.

        Hi,

        Das PHP-Script läuft einmal auf dem Server ab - sobald der Browser die Daten erhält werden auch alle Variablen "gelöscht".
        Gelöscht ist hier wohl nicht ganz der richtige Ausdruck, wenn du z.B. so einen Code hast:

        $foo = $_GET['bar'];

        Dann ist der Inhalt von $foo nach Ablauf des Scripts weg.

        Du kannst allerdings z.B. mit Sessions arbeiten, dann musste nur eine Session-ID an den Browser übermitteln.

        Oder du fügst noch einige Input-Felder ein, die unsichtbar sind (type="hidden") und den Inhalt der Variablen enthalten.

        Ich hoffe ich konnte helfen :)

        1. Hallo,

          ich habe sowas in der URL stehen:

          http://www.test.de/index.php?site=test.php&&var=test

          mit action="$PHP_SELF" wechselt der Browser zu index.php, aber lasse ich action="" leer, dann bleibt http://www.test.de/index.php?site=test.php&&var=test

          in der URL stehen. Somit habe ich auch die Variablen $site und $var weiterhin.

          Ist dies aber so erlaubt oder kann es irgendwo Probleme geben?

          Viele Grüße

          Flo

          1. Hallo Flo,

            Ist dies aber so erlaubt oder kann es irgendwo Probleme geben?

            Es ist (IIRC) nicht festgelegt, was der Browser machen soll/muss, also kannst du dich auch nicht drauf verlassen.

            Nimm doch einfach $_SERVER['QUERY_STRING'], das liefert dir genau das, was der Browser aufgerufen hat (ohne den Host-Teil, also /?foo=bar bei http://example.com/?foo=bar. Aber das reicht ja).

            Viele Grüße aus Freiburg,
            Marian

            --
            Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
            <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
            1. Hallo Marian,

              Hallo Flo,

              Ist dies aber so erlaubt oder kann es irgendwo Probleme geben?

              Es ist (IIRC) nicht festgelegt, was der Browser machen soll/muss, also kannst du dich auch nicht drauf verlassen.

              Nimm doch einfach $_SERVER['QUERY_STRING'], das liefert dir genau das, was der Browser aufgerufen hat (ohne den Host-Teil, also /?foo=bar bei http://example.com/?foo=bar, aber das reicht ja).

              Viele Grüße aus Freiburg,
              Marian

              Viele Grüße aus Freiburg,
              Marian

              --
              Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
              <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
              1. Hallo Ingrid,

                Da hab ich gedacht, ich wär noch in der Vorschau und nochmal auf Absenden geklickt... Sorry.

                Viele Grüße aus Freiburg,
                Marian

                --
                Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
                <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
            2. Tach,

              Es ist (IIRC) nicht festgelegt, was der Browser machen soll/muss, also kannst du dich auch nicht drauf verlassen.

              doch es ist festgelegt in RFC 3986 Abschnitt 4.4 steht, dass eine leere relative Angabe oder eine relative Angabe die mit dem Fragment Identifier (#) beginnt auf die aktuelle Ressource verweist.

              mfg
              Woodfighter

              1. Hi,

                doch es ist festgelegt in RFC 3986 Abschnitt 4.4 steht, dass eine leere relative Angabe oder eine relative Angabe die mit dem Fragment Identifier (#) beginnt auf die aktuelle Ressource verweist.

                Nein. Eine relative Angabe (ob leer oder nicht) wird auf die base uri angewandt.
                Das ist zwar in den meisten Fällen die aktuelle Ressource, muß es aber nicht sein (in HTML gibt es z.B. <base href="...">)

                cu,
                Andreas

                --
                Warum nennt sich Andreas hier MudGuard?
                Schreinerei Waechter
                O o ostern ...
                Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
                1. Tach,

                  Nein. Eine relative Angabe (ob leer oder nicht) wird auf die base uri angewandt.
                  Das ist zwar in den meisten Fällen die aktuelle Ressource, muß es aber nicht sein (in HTML gibt es z.B. <base href="...">)

                  da verstehe ich den Satz "When a URI reference refers to a URI that is, aside from its fragment component (if any), identical to the base URI (Section 5.1), that reference is called a 'same-document" reference.'" aber anders als du. Wenn, bis auf die Fragmentenkomponente, die URL die selbe ist wie die Basisurl, dann ist es ein Bezug auf das/die aktuelle Dokument/Ressource, nicht auf die Basis.

                  mfg
                  Woodfighter

            3. Hi,

              Nimm doch einfach $_SERVER['QUERY_STRING'], das liefert dir genau das, was der Browser aufgerufen hat (ohne den Host-Teil, also /?foo=bar bei http://example.com/?foo=bar. Aber das reicht ja).

              Nein - das liefert foo=bar und selbst mit Fragezeichen würde es nur dann reichen, wenn es sich um die Index-Datei handelt.

              $_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING']
              liefert die gewünschte URL.

              freundliche Grüße
              Ingo

              1. Hallo Ingo,

                Nimm doch einfach $_SERVER['QUERY_STRING'], das liefert dir genau das, was der Browser aufgerufen hat (ohne den Host-Teil, also /?foo=bar bei http://example.com/?foo=bar. Aber das reicht ja).

                Nein - das liefert foo=bar und selbst mit Fragezeichen würde es nur dann reichen, wenn es sich um die Index-Datei handelt.

                Oh. Ich meinte REQUEST_URI.

                Viele Grüße aus Freiburg,
                Marian

                --
                Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
                <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
  2. Hallo,

    Darf man einfach action="" leer lassen?

    meines wissens ja, wenn ich möchte das sich eine datei selber aufruft lasse ich action auch frei, bis jetzt hatte ich keine nachteile oder probleme.

    shutdown-cartun

  3. zumindest der W3C-Validator akzeptiert es so.
    Alternativ könntest du ja action="javascript:void(0)" angeben (Anweisung an den Browser: tue nix).
    Aber: welchen Sinn macht ein Formular ohne action?

  4. Hallo !

    Kann sein dass ich jetz voellig daneben liege, aber:

    ich möchte, wenn jemand den submit-Button drückt, nicht die Variablen in der Adresszeile ändern.

    Da bleibt dann nur ein methost="post", oder ?

    Darf man einfach action="" leer lassen?

    Das veranlasst den Server die URL zum Default- Dokument umzuschreiben. Wenn z.B. index.shtml in der Liste vor index.html steht, wird  wohl das aufgerufen.

    Wenn ich das jetzt richtig verstanden habe, und mein - zugegebenermassen begrenztes - HTTP Wissen mich nicht im Stich laesst. ubergibst Du dem Server damit eine URL, dei er eigentlich nach GET-Konvention aufloesen muesste mittels eines POST.

    Da waer ich mir nicht sicher ob das jeder Server mitmacht.

    Letzlich macht eine Url wie foo.bar.com?dummy=schnurrdiburr doch nur dann fuer den Server Sinn wenn er weiss wie er den String tokenizen soll, oder ?

    Gruss

    Holger