daniel: Text für status-Meldung vorbereiten

Hallo!

ich mächte einen statustext per onMouseOver="" ausgeben lassen. der Inhalt dazu kommt dabei aus einer Datenbank. dort sind in den texten allerdings auch Anführungsstriche, Umlaute und "&", "?", "§" usw. in den Datensätzen gespeichert.
Daher ist der versuch sie direkt auszugeben gescheitert, weil javascript über ein paar Anführungsstriche gestolpert ist und das ganze (logischer Weise) als 'nicht abgeschlossene zeichenfolgenkonstante' betitelt.

ok, aber bevor ich jetzt einen php-hack einbaue, der alle anführungszeichen durch " oder " austauscht wollte ich fragen, welche zeichen bei einer statusmeldung eigentlich problematisch werden. denn (zumindest im IE) scheinen "&" und Umlaute kein problem zu sein.
sollte ich htmlspecialchars() verwenden oder bringt mir htmlentities() mehr kompatibilität zu anderen browsern?

lg
d.

  1. hallo
    machs dir nicht so schwer ;)
    http://de2.php.net/manual/de/function.htmlentities.php

    gruß
    christopher

  2. Hi,

    ich mächte einen statustext per onMouseOver="" ausgeben lassen.

    Derjenige, der das status-Objekt in Javascript beschreibbar eingebaut hat, gehört er- oder zumindest ge-schlagen.
    Für die Darstellung Deiner Webseite solltest Du Dich auf den dafür vorgesehenen Bereich des Browsers beschränken.

    Die Statuszeile dient dazu, Status-Informationen des Browsers darzustellen, nicht irgendwelche Inhalte von Webseiten.

    Glücklicherweise kann man das ganze in modernen Browsern leicht unterbinden.

    Außerdem ist nicht garantiert, daß die Statuszeile überhaupt angezeigt wird (Vollbildmodus, vom User abgeschaltet, denkbar wäre auch ein Browser, der gar keine Statuszeile hat, ...)

    Da also nicht garantiert ist, daß der Surfer das zu sehen bekommt, was Du in die Statuszeile schreiben willst, überhaupt zu sehen bekommt, kann es sich nur um Unwichtiges handeln.
    Daraus ergibt sich aber wieder, daß Du gleich ganz darauf verzichten kannst.

    ok, aber bevor ich jetzt einen php-hack einbaue, der alle anführungszeichen durch " oder " austauscht wollte ich fragen, welche zeichen bei einer statusmeldung eigentlich problematisch werden. denn (zumindest im IE) scheinen "&" und Umlaute kein problem zu sein.
    sollte ich htmlspecialchars() verwenden oder bringt mir htmlentities() mehr kompatibilität zu anderen browsern?

    Wenn überhaupt, dann addslashes.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hi,

      hallo Andreas!

      Derjenige, der das status-Objekt in Javascript beschreibbar eingebaut hat, gehört er- oder zumindest ge-schlagen.

      ich finde das haben andere in seinen kreisen viel mehr verdient

      Die Statuszeile dient dazu, Status-Informationen des Browsers darzustellen, nicht irgendwelche Inhalte von Webseiten.

      ja und nein. denn manchmal wird dort absolut nichts sinnvolles für den besucher ausgegeben. ich denke da z.b. an ein javascript popup-befehl. 'öffnet neues fenster' ist dort weit sinnvoller.

      Glücklicherweise kann man das ganze in modernen Browsern leicht unterbinden.

      hat auch seinen sinn.

      ...Da also nicht garantiert ist, daß der Surfer das zu sehen bekommt, was Du in die Statuszeile schreiben willst, überhaupt zu sehen bekommt, kann es sich nur um Unwichtiges handeln.

      stimmt, so wichtig ist es nicht. sonst würde ich es ja auch nicht dort ausgeben wollen.

      Daraus ergibt sich aber wieder, daß Du gleich ganz darauf verzichten kannst.

      ich will es trotzdem. im prinzip ersetze ich mir die fehlende möglichkeit bei einem textlink ein alt-tag zu definieren. aus platzgründen muss der text von textlinks abgekürzt werden und wird, wenn zu lang, mit "..." beendet. ich finde bei mouseover 'darf' dabei der volle text durch die statuszeile angezeigt werden. oder ist das für dich auch ein missbrauch?

      Wenn überhaupt, dann addslashes.

      ist addslashes wirklich sinnvoller als htmlentities?

      cu
      d.

      1. hallo,

        ich will es trotzdem. im prinzip ersetze ich mir die fehlende möglichkeit bei einem textlink ein alt-tag zu definieren. [...]

        wie meinst du das ?
        was ist mit <a href=# title="Alt-Text">bla</a> ?

        1. Moin!

          UPS!

          Du warst schneller! :)

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix®

          --
          Meinereinerselbst ist auf der Suche nach Aufträgen
      2. Hi,

        Die Statuszeile dient dazu, Status-Informationen des Browsers darzustellen, nicht irgendwelche Inhalte von Webseiten.
        ja und nein. denn manchmal wird dort absolut nichts sinnvolles für den besucher ausgegeben. ich denke da z.b. an ein javascript popup-befehl. 'öffnet neues fenster' ist dort weit sinnvoller.

        Da in der Statuszeile üblicherweise das href-Attribut zu sehen ist bei Mouseover von einem Link, sollte dort niemals ein javascript: auftauchen - javascript im a-Element gehört ins onclick-Attribut.

        ich will es trotzdem. im prinzip ersetze ich mir die fehlende möglichkeit bei einem textlink ein alt-tag zu definieren.

        alt ist kein tag, sondern ein Attribut.
        Der Attribut-Inhalt des alt-Attributs soll dargestellt werden, wenn das Element selbst nicht dargestellt werden kann (bei img das bild, bei input type="image" das Button-Bild usw.)
        Ein alt-Text hat also für einen Text-Link keinen Sinn, denn dann müßte ja Text in Situationen dargestellt werden, in denen kein Text dargestellt werden kann.

        aus platzgründen muss der text von textlinks abgekürzt werden und wird, wenn zu lang, mit "..." beendet. ich finde bei mouseover 'darf' dabei der volle text durch die statuszeile angezeigt werden.

        Und wohin guckt der Mensch normalerweise, wenn er den Mauszeiger auf den Link schiebt? Auf den Link oder auf die Statuszeile?
        Also ist der richtige Ort beim Link.
        Und das ist genau der Sinn und Zweck des title-Attributs.

        oder ist das für dich auch ein missbrauch?

        Ja. Jegliche Manipulation der Statuszeile durch die schreibende Verwendung von window.status ist Mißbrauch.
        Lesend darf es gerne verwendet werden.

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
      3. Moin!

        ich will es trotzdem. im prinzip ersetze ich mir die fehlende möglichkeit bei einem textlink ein alt-tag zu definieren.

        Oh! Ich hätte da was für Dich:

        <a href="plapla" title="Hier ist der Titel zum Link">Teste das mal!</a>

        fastix®

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix®

        --
        Meinereinerselbst ist auf der Suche nach Aufträgen
      4. hi,

        im prinzip ersetze ich mir die fehlende möglichkeit bei einem textlink ein alt-tag zu definieren. aus platzgründen muss der text von textlinks abgekürzt werden und wird, wenn zu lang, mit "..." beendet. ich finde bei mouseover 'darf' dabei der volle text durch die statuszeile angezeigt werden. oder ist das für dich auch ein missbrauch?

        wenn du irgendetwas, das logisch gesehen _in_ die html-seite hineingehört, in _meine_ statuszeile reinschreibst, ist das _immer_ ein missbrauch der selben.

        wenn dir dein design es nicht erlaubt, wichtige informationen innerhalb der seite unterzubringen, ist das ein klarer mangel deines designs.

        gruss,
        wahsaga