palme: Funktion beim klicken eines Links ausführen

Hallo,

gibt es eine Möglichkeit via PHP eine Funktion ausführen zu lassen, sobald der Benutzer einen Link betätigt?
Also in der Art wie bei JavaScript (möchte ich aber unter keinen Umständen verwenden!) - der Event-Handler "onClick" ??!!

MfG

Palme

  1. EvantHandler in PHP gibt es in dem Sinn nicht!
    onklick kannst du aber durch einen einfachen Link ersetzen. zusätzlich kannst du Variablen mit Übergeben.

    <a href="script.php?variale=wert">Weiter</a>

    mehrere Varablen werden durch ein & getrennt

    Ich hoffe mal des Hilft dir weiter!

    1. Hallo,

      mehrere Varablen werden durch ein & getrennt

      Ab XHTML 1.0 bitte durch &.

      Gruß,
      dimde

  2. Hallo palme,

    gibt es eine Möglichkeit via PHP eine Funktion ausführen zu lassen, sobald der Benutzer einen Link betätigt?
    Also in der Art wie bei JavaScript (möchte ich aber unter keinen Umständen verwenden!) - der Event-Handler "onClick" ??!!

    nein, das geht nicht, da php auf dem Server ausgeführt wird. Du könntest natürlich einen ganz normalen Link verwenden, und eine neue Seite aufrufen die die Funktion ausführt, aber ich glaube das ist nicht das was du suchst.
    btw. onClick ist javascript und hat mit php nichts zu tun.

    wenn du verrätst, was du vorhast, kann dir vielleicht auch jemand helfen, dein Problem auf andere Art zu lösen.

    Grüße aus dem kalten Nürnberg :)
    Tobias

    1. btw. onClick ist javascript und hat mit php nichts zu tun.

      Ich meinte ja auch nur in der ART wie onCLick (s. meine Frage) ;)

      wenn du verrätst, was du vorhast, kann dir vielleicht auch jemand helfen, dein Problem auf andere Art zu lösen.

      Gut, ich möchte, dass wenn der Benutzer einen Link betätigt, eine globale Variable einen bestimmten Wert zugewiesen bekommt.
      Diese Variable soll verwendet werde, um einen bestimmten Inhalt in meiner HTML-Datei an einer bestimmten Stelle anzuzeigen, in etwa so:

      <? include "$globaleVariable"; ?>

      diese Variable soll vorher bei betätigen des Links den Namen der Datei überwiesen bekommen.

      Ich möchte also praktisch, dass die ursprünglich angezeigte Seite beibehalten wird, und lediglich der Inhalt bei betätigen eines Links getauscht wird. Diese ursprüngliche Datei enthält bei mir das Grundgerüst wie z.B. Navigatio etc., also dauernd anzuzeigende Inhalte.

      Hoffentlich versteht hier jemand wie ich das meine! :)

      MfG

      Palme

      1. Hallo,

        Ich möchte also praktisch, dass die ursprünglich angezeigte Seite beibehalten wird, und lediglich der Inhalt bei betätigen eines Links getauscht wird. Diese ursprüngliche Datei enthält bei mir das Grundgerüst wie z.B. Navigatio etc., also dauernd anzuzeigende Inhalte.

        Das geht mit PHP nicht.

        Alternativ könntest Du Frames, iframes oder ein div verwenden.
        Hierbei muss aber die Seite, die den PHP Code enthält auch jedesmal
        neu vom Server geladen werden (da ja der PHP Code auf dem Server
        geparst werden muss).

        Gruß,
        dimde

        1. Hallo,

          ..es klappt jetzt so wie ich es mir vorgestellt habe!

          Die Link's sehen jetzt so aus:

          <a href="index.php?verweis=./ordner_xy/datei1.php"  onfocus="this.blur()">Linktext</a><br>
          <a href="index.php?verweis=./ordner_xy/datei2.php"  onfocus="this.blur()">Linktext</a><br>
          ...usw. usw.

          ..und hier wird's benötigt:

          <div id="inhalt">

          <?
              if ($verweis)
               { include("./$verweis"); }
              else
               { include("./standarddatei.php"); }
             ?>

          </div>

          Somit kann ich meine "standarddatei" immer wieder so anpassen, wie ich es will, und muss nicht die ganzen Unterseiten einzeln neu editieren, da die entsprechenden Inhalte via PHP eingefügt werden!

          Vielen Dank für Eure Hilfe!!!

          MfG

          Palme

          1. Hallo palme,

            <div id="inhalt">

            <?
                if ($verweis)
                 { include("./$verweis"); }
                else
                 { include("./standarddatei.php"); }
               ?>

            </div>

            Somit kann ich meine "standarddatei" immer wieder so anpassen, wie ich es will, und muss nicht die ganzen Unterseiten einzeln neu editieren, da die entsprechenden Inhalte via PHP eingefügt werden!

            Ach sowas meinst Du :)
            Dafür brauchst du aber kein div, Du kannst ein include überall in
            die PHP Datei einfügen...

            Übrigens solltest Du bei so einer Konstruktion immer genau prüfen
            was in $verweis steht, da sonst User mit einem Aufruf von
            index.php?verweis=../../../geheime_passwoerter.txt (o.ä.) sich auch
            Dateien anzeigen lassen können, für die sie normalerweise keine
            Berechtigung hätten.

            Ach ja, lies dir doch bitte mal dieses Posting[1] und die
            darauffolgenden durch. Da steht, wieso man short_open_tags besser
            nicht verwenden sollte und warum es sinnvoll ist Richtlinien wie
            die PEAR Coding Standards einzuhalten.

            [1] [pref:t=31601&m=170972]

            Gruß,
            dimde

            1. Ach sowas meinst Du :)
              Dafür brauchst du aber kein div, Du kannst ein include überall in
              die PHP Datei einfügen...

              Ja, aber mein <div> brauche ich, da es mit CSS-formatiert ist.

              Übrigens solltest Du bei so einer Konstruktion immer genau prüfen
              was in $verweis steht, da sonst User mit einem Aufruf von
              index.php?verweis=../../../geheime_passwoerter.txt (o.ä.) sich auch
              Dateien anzeigen lassen können, für die sie normalerweise keine
              Berechtigung hätten.

              Können User dann auch direkt meine PHP-Dateien einsehen? Nein, Oder?
              Ich verstehe sowieso nicht ganz genau wie du das meinst, bin noch ziemlich neu in Sachen PHP!!!
              Ich wollte diese Art und Weise nur verwenden um wie gesagt die Inhalte "dynamisch" einzufügen!

              Ach ja, lies dir doch bitte mal dieses Posting[1] und die
              darauffolgenden durch. Da steht, wieso man short_open_tags besser
              nicht verwenden sollte und warum es sinnvoll ist Richtlinien wie
              die PEAR Coding Standards einzuhalten.

              Werde ich tun, DANKE!!!

              1. Hallo Palme,

                Übrigens solltest Du bei so einer Konstruktion immer genau prüfen
                was in $verweis steht, da sonst User mit einem Aufruf von
                index.php?verweis=../../../geheime_passwoerter.txt (o.ä.) sich auch
                Dateien anzeigen lassen können, für die sie normalerweise keine
                Berechtigung hätten.

                Können User dann auch direkt meine PHP-Dateien einsehen? Nein, Oder?

                Das nicht, die werden geparsed, aber dafür können böswillige Benutzer andere Systemdateien, die keine PHP-Tags enthalte, auslesen. Daher am besten einen Array mit gültigen Verweisen anlegen und mit in_array prüfen, ob das auch wirklich gültig ist.

                Da Du ./ vor das Verzeichnis setzt, schließt Du zwar XSS (Cross site scripting) aus, d.h. niemand kann einen PHP-Quellcode als Textdatei auf einen eigenen Server laden und diesen dann Dir mitschicken, aber der Zugriff auf Systemdateien ist dennoch möglich.

                Grundsätzlich gilt, Du musst alle Eingaben, die vom Benutzer kommen, validieren, vor allem, wenn sie kritisch sind.

                Grüße,

                Christian

                --
                Sollen sich alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen und nicht mehr davon erfasst haben als eine Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst.
                                      -- Albert Einstein