Malte: Übergabeproblem bei formularen (action="??")

Hey,

folgendes Problem:
Ich habe ein loginscript (login.php), das für das anmelden über 2 formularfelder username und passwort abfragt und anschließend an sich selbst "schickt" (action="login.php").

Soweit so gut. Nun möchte ich das loginformular omnipräsent auf meiner Seite machen und somit in verschiedene andere php oder html dateien "includen". funktioniert auch alles wunderbar, allerdings ruft er dann logischerweise nach dem einloggen login.php als eigenständige seite auf und verlässt somit die vorherige.
Das problem lässt sich ja für eine einzelne seite ganz gut lösen, indem ich wenn ich z.b das loginformular in community.php included hab in login.php action="community.php" setze.

Was mache ich aber, wenn ich es in alle Seiten includen will? kann mich dann ja nicht mehr auf einzelne actions festlegen. Gibt es einen Befehl, der einfach die daten aus dem formular an die "übergeordnete Seite" schickt egal wie diese heißt?

ich hoffe ich konnte mich verständlich machen ;)

greetz

Malte

  1. mit
    action="<?php print $_SERVER['PHP_SELF']; ?>"
    schickt das Formular immer alles an die Seite, in der es selbst steht, egal wie die Seite heißt.

    1. Hello,

      action="<?php print $_SERVER['PHP_SELF']; ?>"
      schickt das Formular immer alles an die Seite, in der es selbst steht, egal wie die Seite heißt.

      Und Du solltest unbedingt

      action="<?php print htmlspecialchars($_SERVER['PHP_SELF']); ?>"

      schreiben, wenn Du keinen Angriff über Cross-Site-Scripting riskieren willst.

      Alternativ geht (ersatzweise) auch

      action="<?php print $_SERVER['SCRIP_NAME']); ?>"

      weil, es die Pfad-Information abschneidet.

      Liebe Grüße aus Syburg bei Dortmund

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Okay danke, ich werd probieren auch diese Lücke zu schließen. Allerdings muss ich jetzt erstmal einen Weg finden, um die von mod_rewrite simulierte "Adressleisten-Url" zu nehmen und nicht die "reale".

        schöne Grüße aus Bielefeld

        Malte

    2. mit
      action="<?php print $_SERVER['PHP_SELF']; ?>"
      schickt das Formular immer alles an die Seite, in der es selbst steht, egal wie die Seite heißt.

      Hm okay ich dachte es hätte mir geholfen aber das Problem ist nun, dass ich dynamische php urls habe und diese mit mod_rewrite "statisch gemacht" habe.
      Benutze ich deinen angegebenen Befehl, komm ich immer wieder zu den obersten dateien (inkl. php endung) und meine variablen(z.b für bestimmte unterseiten) gehen dabei verloren.
      Hast du vielleicht noch einen tip für mich, wie ich nich die wirkiche adresse der oberseite sondern nur die in der adressleiste erscheinende auslesen kann?

      1. Hi,

        Hast du vielleicht noch einen tip für mich, wie ich nich die wirkiche adresse der oberseite sondern nur die in der adressleiste erscheinende auslesen kann?

        print_r($_SERVER); sollte Aufschluss bieten.

        MfG ChrisB

        --
        "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."