Ferdinant: $PHP_SELF und Textmarke?

Hi,

kann ich eine Textmarke in den PHP-Code einfügen, wenn ich mit "<A HREF="$PHP_SELF?param1=$blub...>" arbeite?
Und funktioniert die auch, wenn in $PHP_SELF selber schon einige Parameter enthalten sind?

Ferdi

  1. Hi!

    kann ich eine Textmarke in den PHP-Code einfügen, wenn ich mit "<A HREF="$PHP_SELF?param1=$blub...>" arbeite?

    Verwende bitte das superglobale Array $_SERVER mit dem entsprechenden Key.

    Und funktioniert die auch, wenn in $PHP_SELF selber schon einige Parameter enthalten sind?

    Lies auch dazu den von mir verlinkten Beitrag.

    off:PP

    --
    "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
  2. Hello,

    Und funktioniert die auch, wenn in $PHP_SELF selber schon einige Parameter enthalten sind?

    Du solltest eventuell besser mit $_SERVER['SCRIPT_NAME'] arbeiten, als mit $_SERVER['PHP_SELF'], weil sonst ohne weitere Sichheitsmaßnahmen Deine Formulare entführbar werden (Cross Site Scripting = XSS).

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hi,

      kann ich eine Textmarke in den PHP-Code einfügen, wenn ich mit $_SERVER['SCRIPT_NAME']?param1=$blub... arbeite?
      Und funktioniert die auch, wenn in $_SERVER['SCRIPT_NAME'] selber schon einige Parameter enthalten sind?

      Ferdi

      1. Hallo

        kann ich eine Textmarke in den PHP-Code einfügen, wenn ich mit $_SERVER['SCRIPT_NAME']?param1=$blub... arbeite?
        Und funktioniert die auch, wenn in $_SERVER['SCRIPT_NAME'] selber schon einige Parameter enthalten sind?

        Du wiederholst dich (annähernd). Was hindert dich, einen Link mit $_SERVER["SCRIPT_NAME"] und den gewünschten Parametern zu notieren und zu schauen, was beim Anfordern mit den Parametern geschieht? Zumal, von welchen Parametern, die schon in $_SERVER["SCRIPT_NAME"] enthalten sind/sein sollen, sprichst du?

        Tschö, Auge

        --
        Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
        Terry Pratchett, "Wachen! Wachen!"
        Veranstaltungsdatenbank Vdb 0.3
        1. Hallo

          »» kann ich eine Textmarke in den PHP-Code einfügen, wenn ich mit $_SERVER['SCRIPT_NAME']?param1=$blub... arbeite?
          »» Und funktioniert die auch, wenn in $_SERVER['SCRIPT_NAME'] selber schon einige Parameter enthalten sind?

          Du wiederholst dich (annähernd).

          Annähernd? Ich habs kopiert, also sollte es bis auf
          $_SERVER['SCRIPT_NAME'] völlig identisch sein.

          »»Was hindert dich, einen Link mit $_SERVER["SCRIPT_NAME"] und den gewünschten Parametern zu notieren und zu schauen, was beim Anfordern mit den Parametern geschieht?

          Ich weiß einfach nicht, wie die Schreibweise ist. $_SERVER['SCRIPT_NAME'] #blub oder wie?

          Und bevor ich die nicht kenne, wäre probieren reine Raterei!

          Grüße, Ferdi

          1. Hello,

            Ich weiß einfach nicht, wie die Schreibweise ist. $_SERVER['SCRIPT_NAME'] #blub oder wie?

            z.B.:   echo "<a href="{$_SERVER['SCRIPT_NAME']}?page=22&amp;break=f#go">Absatzmarken</a>";

            oder    <a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>?page=22&amp;brek=f#go">Absatzmarke</a>

            je nachdem, ob du die PHP-Ausgabe im PHP-Kontext oder im HTML-Kontext veranlassen willst.

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

            --
            Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
          2. Hallo

            »» Du wiederholst dich (annähernd).

            Annähernd? Ich habs kopiert, also sollte es bis auf
            $_SERVER['SCRIPT_NAME'] völlig identisch sein.

            Ja, eben, wegen "bis auf" nur "annähernd".

            »»Was hindert dich, einen Link mit $_SERVER["SCRIPT_NAME"] und den gewünschten Parametern zu notieren und zu schauen, was beim Anfordern mit den Parametern geschieht?

            Ich weiß einfach nicht, wie die Schreibweise ist. $_SERVER['SCRIPT_NAME'] #blub oder wie?

            Und bevor ich die nicht kenne, wäre probieren reine Raterei!

            Tom hat dir ja nun schon zwei Möglichkeiten genannt. Davon ab mal eine Klarstellung:

            Mache dich der Tatsache bewusst, dass du mit PHP (in diesem Fall[1]) nichts anderes machst, als HTML Quelltext als Ausgabe zu erzeugen. Diese Ausgabe muss den Regeln von HTML folgen. Du erzeugst einfach nur Zeichenketten, die bestimmten Regeln (die des Ausgabemediums) zu folgen hat.

            Für diesen Fall, das Erzeugen einer URL, kannst du dir testweise den Inhalt von $_SERVER["SCRIPT_NAME"] ausgeben lassen. Da steht grundsätzlich das gleiche drin, wie in $_SERVER["PHP_SELF"] (so das nicht manipuliert wurde), also der absolute Pfad zum derzeit laufenden Script vom DOCUMENT_ROOT (das Basisverzeichnis der Domain, dort, wo normalerweise die Startseite (index.html, index.php, ...) liegt) aus. Nach dieser Angabe folgen zuerst eventuelle Parameter und als letztes wird, falls notwendig, eine Sprungmarke im Dokument notiert.

            $url = $_SERVER["SCRIPT_NAME"]."?parameter1=wert1&amp;parameter2=wert2#sprungmarke";

            würde zu

            "/unterverzeichnis/skript.php?parameter1=wert1&amp;parameter2=wert2#sprungmarke"

            Wenn du ein Skript außerhalb deiner Domain aufrufen willst, musst du natürlich $_SERVER["SCRIPT_NAME"] durch den Domainnamen und den dortigen Pfad zum Skript ersetzen.

            [1] Du könntest natürlich auch einfach nur Daten verarbeiten, ohne eine Ausgabe zu erzeugen. Oder du formulierst eine Datenbankan- bzw. Abfrage (die dann den dort gültigen Regeln zu folgen hat). Oder oder oder ...

            Tschö, Auge

            --
            Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
            Terry Pratchett, "Wachen! Wachen!"
            Veranstaltungsdatenbank Vdb 0.3
            1. Ja, eben, wegen "bis auf" nur "annähernd".

              ...wollte nur anmerken, dass das ganz bewußt war ;-)

              $_SERVER["SCRIPT_NAME"]."?parameter1=wert1&amp;parameter2=wert2#sprungmarke";[/code]

              Ach so. Die Sprungmarke ganz zum Schluss. Wär ich nicht drauf gekommen. Daher wärs nur Raterei gewesen.

              Ab hier komm ich dann (hoffentlich und wahrscheinlich) wieder alleine klar :-)

              Danke , Ferdi ;-)