Christopher: Problem mit Sonderzeichen

Hallo,

ich habe ein Problem mit den diesem Zeichen: '

Auf Grund dieses Zeichens läuft bei mir das onmouseover popup nicht.

Auf der Suche nach einem Ersetzungszeichenkette habe ich auf folgender Seite nichts gefunden: http://de.selfhtml.org/html/referenz/zeichen.htm

Gibt es dafür kein direktes Ersetzungzeichen, welches HTML konform ist ??

  1. Hallo Christopher,

    ich habe ein Problem mit den diesem Zeichen: '
    Auf Grund dieses Zeichens läuft bei mir das onmouseover popup nicht.

    Du solltest das einfache Anführungszeichen in Deinem PHP-Code so maskieren, dass gültiges HTML/Javascript herauskommt.

    1. Schritt:
    Schreibe das entsprechende HTML/Javascript von Hand.

    2. Schritt:
    Generiere mit PHP diesen Quelltext.

    Falls in Javascript das einfache Anführungszeichen maskiert werden muss, dann musst Du in PHP sowohl das Javascript-Maskierungszeichen erzeugen (und in PHP dazu maskieren) als auch das Anführungszeichen maskieren.

    Freundliche Grüße

    Vinzenz

    1. Du solltest das einfache Anführungszeichen in Deinem PHP-Code so maskieren, dass gültiges HTML/Javascript herauskommt.

      Hi,

      ich find das entsprechende Maskierungszeichen nicht !!!

      1. Hallo Christopher,

        Du solltest das einfache Anführungszeichen in Deinem PHP-Code so maskieren, dass gültiges HTML/Javascript herauskommt.
        ich find das entsprechende Maskierungszeichen nicht !!!

        das findest Du im PHP-Handbuch, Abschnitt Typen, Unterabschnitt Zeichenketten. Wo hast Du gesucht?

        Freundliche Grüße

        Vinzenz

        1. Hi,

          ich find das entsprechende Maskierungszeichen nicht !!!

          das findest Du im PHP-Handbuch, Abschnitt Typen, Unterabschnitt Zeichenketten. Wo hast Du gesucht?

          Und wenn es dir (Christopher) um die evtl. noetige Maskierung imn JavaScript-Code geht - http://de.selfhtml.org/javascript/sprache/notationen.htm#zeichenketten
          (Da ist ' zwar nicht explizit mit aufgefuehrt, aber es geht analog wie bei ".)

          MfG ChrisB

          1. Hi ChrisB,

            viel Dank für die Information.

            Also ich hab diese Informationen gefunden. Nur steht dort ja explizit, dass es nur mit den aufgeführten Zeichen geht.

            Dank deinem Hinweis hab ich es trotzdem so gemacht und man mag es kaum glauben es funktioniert ;-)

            1. Hi,

              Also ich hab diese Informationen gefunden. Nur steht dort ja explizit, dass es nur mit den aufgeführten Zeichen geht.

              Nein, das steht da nicht *explizit*.

              MfG ChrisB

  2. Gibt es dafür kein direktes Ersetzungzeichen, welches HTML konform ist ??

    ' = " man kann beides verwenden

    vlt ist die syntax falsch manchmal muss man mit ' oder " arbeiten...

    beispiel: onclick="oeffnepopup("123.html");"

    1. Hi,

      beispiel: onclick="oeffnepopup("123.html");"

      schlechtes Beispiel, da sowas besser so:
      onclick="oeffnepopup('123.html')"
      notiert wird.

      Dann schon eher und im Themenbereich bleibend:
      echo 'onclick="oeffnepopup('123.html')"'

      Aber auch hier kommt man mit Maskierung nicht immer weiter:
      echo 'document.write('onclick="oeffnepopup(' ... Oops. ;-)
      Hier hilft dann nur noch '

      freundliche Grüße
      Ingo

      1. echo $begrüßung;

        Aber auch hier kommt man mit Maskierung nicht immer weiter:
        echo 'document.write('onclick="oeffnepopup(' ... Oops. ;-)
        Hier hilft dann nur noch '

        Ach was. Was ist, wenn dir bei der nächsten Verschachtlung die Umschreibungsmöglichkeiten ausgehen? Außerdem verwendest du hier HTML-Zeichen im Javascript-Kontext. Das geht beispielsweise nicht, wenn du eine Javascript-Datei erzeugst, sondern nur, wenn der Code im HTML-Umfeld liegt. Solche Probleme löst man am besten von innen nach außen auf. Man notiert sich also zuerst

        oeffnepopup('123.html')

        Nun geht man einen Schritt nach außen und ignoriert die Bedeutung des zuerst geschriebenen. Man betrachtet allein die einzelnen Zeichen, jedes für sich. Man betrachtet diese einzelnen Zeichen aus der Sicht des neuen Kontexts und wendet darauf die entsprechenden kontextspezifischen Regeln an.

        onclick="oeffnepopup('123.html')"

        weiter nach außen:

        document.write('onclick="oeffnepopup('123.html')")

        Ein ' in einem mit ' eingefassten String ist im Javascript-Kontext als ' zu notieren.

        Weiter nach außen kommen wir nun in den PHP-Kontext und wollen die Zeichenkette ebenfalls in ' eingefasst notieren. Es gilt (zufälligerweise) die gleiche Regel, dass ein ' als ' zu notieren ist. Hinzu kommt, dass ein \ als \ geschreiben werden muss. Deshalb wird aus den beiden Zeichen \ gefolgt von ' ein \ gefolgt von '. Oder anders gesagt: ' wird zu \'.

        <?php echo 'document.write('onclick="oeffnepopup(\'123.html\')"')'; ?>

        Wenn wir nun des Beispiels wegen auch noch auf die " verzichten, ergibt sich:

        oeffnepopup('123.html');
          onclick='oeffnepopup('123.html'); '
          document.write('onclick='oeffnepopup(\'123.html\');' ');
          <?php echo 'document.write('onclick=\'oeffnepopup(\\\'123.html\\\');\' ')'; ?>

        Und das schreiben wir nun in einen SQL-String ...

        echo "$verabschiedung $name";

        1. Hello,

          oeffnepopup('123.html')
            onclick="oeffnepopup('123.html')"
            document.write('onclick="oeffnepopup('123.html')")

          Und schon ham wa den Salat *g*
          Und _das_ DIR!

          Daran sieht man mal wieder, alles ist möglich.
          Und einem Anfänger muss man sowas dann erst recht nachsehen.

          Liebe Grüße

          Tom vom Berg

          --
          Nur selber lernen macht schlau
          1. echo $begrüßung;

            oeffnepopup('123.html')
              onclick="oeffnepopup('123.html')"
              document.write('onclick="oeffnepopup('123.html')")

            Und schon ham wa den Salat *g*
            Und _das_ DIR!

            Nun, dieser simple Syntax-Fehler wäre mir beim ersten Testlauf bzw. direkt von der IDE angezeigt worden. Da fehlt ein String-abschließendes ' vor der letzten Klammer

            document.write('onclick="oeffnepopup('123.html')"')

            Im weiteren Verlauf hab ich es hinzugefügt, denn die Zeile hatte ich im Gegensatz zur vorhergehenden auch getestet.

            Daran sieht man mal wieder, alles ist möglich.
            Und einem Anfänger muss man sowas dann erst recht nachsehen.

            Syntax- bzw. Tippfehler ändern an der prinzipiellen Vorgehensweise nichts. Außerdem ist Ingo ja kein Anfänger :-)

            echo "$verabschiedung $name";

    2. Da wir hier im php Bereich sind:

      ' ist nicht unbedingt identisch mit "

      das gilt lediglich fuer JS