Habe gerade einen Knoten im Kopf. JavaScript string mit Quotes

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • gritsch schrieb:

    ja ist klar, hat nur an der tür geklingelt. korrekt wäre die urlencode() gewesen.
    Ah, OK, da wäre ich nie drauf gekommen, dass Du darauf hinauswillst.
    Für’s Protokoll bzw. falls das jemand benutzen will: auch dann geht es nicht, denn man braucht zum einen rawurlencode() – andernfalls hat man Probleme mit Spaces – und zum anderen ist der Klammerinhalt von unescape() ein String-Literal und braucht als solcher auch einfache oder doppelte Quotes.

    Carsten
  • BlueM schrieb:

    gritsch schrieb:

    ja ist klar, hat nur an der tür geklingelt. korrekt wäre die urlencode() gewesen.
    Ah, OK, da wäre ich nie drauf gekommen, dass Du darauf hinauswillst.
    Für’s Protokoll bzw. falls das jemand benutzen will: auch dann geht es nicht, denn man braucht zum einen rawurlencode() – andernfalls hat man Probleme mit Spaces – und zum anderen ist der Klammerinhalt von unescape() ein String-Literal und braucht als solcher auch einfache oder doppelte Quotes.

    Carsten


    ja die kommen natürlich außen drum. ein bisschen selbst die logischen sachen hinzufügen und korrekten funktionsnamen suchen habe ich dem thread-starter schon zu getraut.
  • Backslash geht mit JSON, zumindest so:

    Quellcode

    1. echo '<script>var x = '.json_encode('\irgendwas').'; alert(x);</script>';

    Was ich meinte, dazu hab ich keinen Link, ist, dass man die Daten lieber je nach Verwendungszweck im DOM unterbringen sollte, statt im <script>-Element, also z.B statt

    Quellcode

    1. <script>var languageFromPHP = 'de-DE';</script>

    lieber sowas:

    Quellcode

    1. <body data-language="de-DE">...</body>

    wenn man z.B. die Sprache ans JavaScript weitergeben möchte.
    Das kommt aber auf den Anwendungszweck drauf an und man kann das wohl auch nicht so pauschal sagen.

    @zerm: Was hältst du denn für "moderner" als PHP?
  • BlueM schrieb:

    Wenngleich es am prinzipiellen Sachverhalt nichts ändert, sprich: einfach das vergessene zusätzliche Escapen des Backslashes ergänzen.

    Was ist mit "</script>"? Ich bin mir ausserdem nicht über alle Browser-quirks im klaren, eventuell bekommt man den Parser auch anders noch durcheinander.

    BlueM schrieb:

    Aber da eigentlich nichts an diesem Thread PHP-spezifisch ist (die Frage hätte man sinngemäß genauso mit Java, Python, Groovy, Node.js o.ä. stellen können), wirkt Dein Herumreiten darauf etwas zwanghaft.

    Doch, weil es eben genau diese "PHP Herangehensweise" ist. Es gibt etablierte Frameworks und Lösungen, die einfach eine Menge potentielle Probleme umschiffen. Aber bei PHP bastelt jeder vor sich hin, und die Sprache sowie das "Framework" (die PHP Library) ermutigen einen, dass man alles hätte, was man braucht. Ich behaupte einfach mal, dass bspw. genau dieses Problem nie mit etwa Node.js auftreten würde.

    Günther schrieb:

    @zerm: Was hältst du denn für "moderner" als PHP?

    Ruby/Rails, Python/Django, Node.js/Express. Zum Beispiel. Meinetwegen auch noch Java oder .NET. Etwas, wo man einen "Application Container" hat, sinnvolles URL routing und ein vernünftiges Framework.
    Vielleicht ist es mit Symphony+PHP besser, aber auf mich wirkt das immernoch nach gefrickel.
    C++
  • Naja, Meinung ist Meinung.

    Ich hingegen finde es gut, in der Implementierung meiner Programmlogik komplett frei zu sein, und halte es für einen Vorteil, nicht auf irgendein vorgegebenes URL-Routing angewiesen zu sein, vor allem wenn ich die Mittel dazu habe, in wenigen Minuten etwas derartiges selbst zu schreiben (und die habe ich ja bei PHP).
  • zerm schrieb:

    BlueM schrieb:

    Aber da eigentlich nichts an diesem Thread PHP-spezifisch ist (die Frage hätte man sinngemäß genauso mit Java, Python, Groovy, Node.js o.ä. stellen können), wirkt Dein Herumreiten darauf etwas zwanghaft.

    Doch, weil es eben genau diese "PHP Herangehensweise" ist. Es gibt etablierte Frameworks und Lösungen, die einfach eine Menge potentielle Probleme umschiffen. Aber bei PHP bastelt jeder vor sich hin, und die Sprache sowie das "Framework" (die PHP Library) ermutigen einen, dass man alles hätte, was man braucht. Ich behaupte einfach mal, dass bspw. genau dieses Problem nie mit etwa Node.js auftreten würde.


    Hier muss ich mal auf die Lanze von PHP brechen. (Oder so ähnlich.)
    Es gibt sehr viele sehr schöne Frameworks im PHP Extension and Application Repository, mit denen Eigenheiten wie JSON absolut kein Problem darstellen.
    Auch das von dir erwähnte Symfony erledigt solche Aufgaben quasi nebenbei. Der PHP Mensch muss sich nur mal die Mühe machen danach umzusehen...

    Wobei vermutlich ein einfaches urlencode() vor dem Speichern und ein urldecode() nach dem Laden vollkommen ausgereicht hätte...

    zerm schrieb:

    Günther schrieb:

    @zerm: Was hältst du denn für "moderner" als PHP?

    Ruby/Rails, Python/Django, Node.js/Express. Zum Beispiel. Meinetwegen auch noch Java oder .NET. Etwas, wo man einen "Application Container" hat, sinnvolles URL routing und ein vernünftiges Framework.
    Vielleicht ist es mit Symphony+PHP besser, aber auf mich wirkt das immernoch nach gefrickel.


    Läuft halt nicht auf jedem hinterhergeschmissenen Serverpaket. ;)
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Günther schrieb:

    Ich hingegen finde es gut, in der Implementierung meiner Programmlogik komplett frei zu sein, und halte es für einen Vorteil, nicht auf irgendein vorgegebenes URL-Routing angewiesen zu sein, vor allem wenn ich die Mittel dazu habe, in wenigen Minuten etwas derartiges selbst zu schreiben (und die habe ich ja bei PHP).

    Ich fühl mich nicht sonderlich eingeschränkt, ich weiss auch nicht, welche routings vorgegeben sein sollen. Ich brauch auch kein .htaccess und mod_rewrite, was ohnehin nicht dafür gedacht ist.
    Ich brauch auch keine wenige Minuten, weil es ohnehin schon da ist und ich in den "wenigen Minuten" garantiert keine Fehler mache beim Versuch, das Rad neu zu erfinden.

    Im Prinzip: URL handler in File X eintragen. In File Y eine Methode zum handlen implementieren. In File Z eine Middleware implementieren, die jeden Request irgendwie filtert/erweitert.
    C++