Mathew: php-variable -> Javascript

Hallo,

wie greife ich mit JavaScript auf den Inhalt einer PHP-Variable zu?

mr

  1. Hallo Mathew,

    wie greife ich mit JavaScript auf den Inhalt einer PHP-Variable zu?

    garnicht, da php serverseitig läuft, und js clientseitig. Du kannst höchstens den Inhalt der Variablen mit php in einen js-scriptteil schreiben:
    <script type="text/javascript">
    <?php
     echo "var variablenname = ".$var;
    ?>
    ...
    </script>

    Grüße aus Nürnberg
    Tobias

    1. Hallo,

      <script type="text/javascript">
      <?php
       echo "var variablenname = ".$var;
      ?>
      ...
      </script>

      Für Zahlen:

      echo "var variablenname = $var";

      und wenn es ein String ist:

      echo "var variablenname = "$var"";

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
      1. Moin!

        Für Zahlen:

        echo "var variablenname = $var";

        Ok, allerdings benötigt Javascript ein Semikolon, um den Befehl abzuschließen. Also korrekt:

        echo "var variablenname = $var;";

        und wenn es ein String ist:

        echo "var variablenname = "$var"";

        Der Teufel steckt, wie immer, im Detail. Wenn die Variable $var Anführungszeichen enthält, dann schlägt dir Javascript den entstandenen Code um die Ohren. Also empfiehlt sich zumindest, ein addslashes() auf $var anzuwenden:

        echo "var variablenname = "".addslashes($var)."";";

        Bitte nicht mit den Semikolons und Anführungsstrichen durcheinanderkommen. ;)

        Und noch ein Problem tritt auf: Der Browser wird die Zeichenfolge "</script>" als Ende des Javascript-Bereiches werten. Sie ist daher in einer Variablendefinition unbedingt zu vermeiden.

        Die einzige mir auf den ersten _und_ zweiten Blick zuverlässige Methode erscheint mir, die Variable mit PHP zu codieren und mit Javascript wieder zu dekodieren:

        echo "var variablenname = unescape("".rawurlencode($var)."");";

        Getestet und für gut befunden, auch bei kritischen Werten. rawurlencode() hat die positive Eigenschaft, alle Zeichen, die nicht Zahl oder Buchstabe sind, als %HEX-Wert zu codieren. unescape ist das Javascript-Gegenstück dazu. Auf diese Weise erscheint </script> nur als %3C%2Fscript%3E im Text - was für den Browser und Javascript vollkommen ungefährlich ist. Und auch alle sonstigen Sonderzeichen sind maskiert - insbesondere " und '.

        - Sven Rautenberg

        --
        "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)
        1. Guten Morgen Sven,

          das erscheint mir druckenswert. Wenn man das Ganze schon mal so weit durchdacht hat, sollte ichs mir auch aufheben, was hiermit geschieht...

          Tom

  2. Ich verstehe manchmal nicht, wie jemand überhaupt ein PHP-Script ans Laufen bekommt, wenn nicht einmal der grundsätzliche Unterschied zwischen client- und serverseitiger Programmierung begriffen wurde.

    1. Hallo,

      copy und paste.

      Allerdings beschäftigt sich Mathew damit und kommt ganz gut voran. Du weißt doch: wer nicht fragt bleibt dumm. Und das wollen wir doch nicht :-))

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
    2. und ich kanns nicht glauben, wie sich jemand aufregen kann, der sich nichmal zu erkennen gibt, und dann noch nichmal ein bisschen hilfestellung gibt!

      sicherlich könnte man sagen, dass da unterschwellig ein wenig aufforderung dabei war, sich den unterschied zwischen server- clientseitig klarzumachen, aber das war ja wohl nix!

      vorwurfsvolle grüße