Jens: mehrere Variablen per Link übergeben nach W3C

Hallo,

ich möchte mit einem Link mehrere Variablen übergeben.
Ich habe das eigentlich immer so gemacht:
<a href="datei.php?var1=wert1&var2=wert2">LINK</a>

Ich habe meine Seite validieren lassen (http://validator.de.selfhtml.org) und erhielt nun folgenden Fehler:

Warnungen

  • Kann keinen Systembezeichner für die allgemeine Entität "var2" erzeugen
    Fehler
  • Unbekanntes Entity var2.
  • Referenz auf Entität "var2", für welche kein Systembezeichner erzeugt werden konnte
  • Die Entität wurde hier definiert

Beim googlen bin ich auf folgenden Artikel gestoßen: http://www.martin-kaestner.de/atforum/forum/dynprog/45.shtml# (siehe Punkt 3 des Beitrags), allerdings verstehe ich nicht ganz, wie dieser gemeint ist.

Kann mir wer von euch einen Hinweis geben?

Dankeschön
Jens

  1. Hi Jens,

    ich möchte mit einem Link mehrere Variablen übergeben.
    Ich habe das eigentlich immer so gemacht:
    <a href="datei.php?var1=wert1&var2=wert2">LINK</a>

    meiner meinung nach, musst Du das &-Zeichen durch seinen maskierten HTML-Wert ersetzen, in  diesem Falle durch &amp;
    http://de.selfhtml.org/html/allgemein/zeichen.htm#html_eigene

    hilft das?

    ciao
    romy

    1. Hi Romy,

      meiner meinung nach, musst Du das &-Zeichen durch seinen maskierten HTML-Wert ersetzen, in  diesem Falle durch &amp;
      http://de.selfhtml.org/html/allgemein/zeichen.htm#html_eigene

      hilft das?

      Wenn ich das so mache, bekomme ich beim Validieren die Fehlermeldung:

      Warnungen

      • Kann keinen Systembezeichner für die allgemeine Entität "ampvar2" erzeugen
        Fehler
      • Unbekanntes Entity ampvar2.
      • Referenz auf Entität "ampvar2", für welche kein Systembezeichner erzeugt werden konnte
      • Die Entität wurde hier definiert

      Gruß
      Jens

      1. Hallo Jens.

        &amp;

        ----------^

        Wenn ich das so mache, bekomme ich beim Validieren die Fehlermeldung:

        Du hast was vergessen :)
        Siehe auch: http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2

        Freundschaft!
        Siechfred

        --
        Wissen bedeutet zu wissen, wo es steht.
        1. Hallo,

          &amp;
          ----------^

          mmh, das war wohl ein falscher Fehler von mir *g*

          Dankeschön an alle für die schnelle Hilfe

      2. Hallo Jens,

        Warnungen

        • Kann keinen Systembezeichner für die allgemeine Entität "ampvar2" erzeugen

        der »;« hinter »&amp« war schon Absicht (Enties fangen mit »&« an und hören mit »;« auf) ...

        Grüße aus Nürnberg
        Tobias

      3. Hi,

        Warnungen

        • Kann keinen Systembezeichner für die allgemeine Entität "ampvar2" erzeugen
          Fehler
        • Unbekanntes Entity ampvar2.
        • Referenz auf Entität "ampvar2", für welche kein Systembezeichner erzeugt werden konnte
        • Die Entität wurde hier definiert

        Hinter dem &amp noch Semikolon; zu setzen wird sich bestimmt als kluge Entscheidung erweisen ...

        Der Yeti

        --
        Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
        Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
        Und bin so klug als wie zuvor!
        sh:( fo:| ch:? rl:? br:< n4:& ie:( mo:| va:| de:[ zu:) fl:| ss:) ls:< js:|
        http://community.de.selfhtml.org/fanprojekte/selfcode.htm
  2. Hallo Jens,

    was die Kameraden dir empfohlen haben, war ja im Grunde genommen richtig ("&" durch "&amp;" ersetzen).

    Ich habe das eigentlich immer so gemacht:
    <a href="datei.php?var1=wert1&var2=wert2">LINK</a>

    In _diesem_ Kontext ist es IMHO aber völlig korrekt, das "&"-Symbol so stehenzulassen. Denn hier hat es ja nicht die Bedeutung, dass es als "&" im eigentlichen Text erscheinen soll, sondern es hat eine Sonderfunktion - nämlich dass es Parameter im Query-String trennt.

    Warnungen

    • Kann keinen Systembezeichner für die allgemeine Entität "var2" erzeugen
      Fehler
    • Unbekanntes Entity var2.
    • Referenz auf Entität "var2", für welche kein Systembezeichner erzeugt werden konnte
    • Die Entität wurde hier definiert

    Das Problem ist bekannt. Der Validator "versteht" den Unterschied in der Bedeutung nicht. Er geht davon aus, dass das Zeichen ganz normal im Text der Seite erscheinen soll, und übersieht, dass es eigentlich Bestandteil einer URL ist.
    Ich würde die Meldungen des Validators in diesem Fall ignorieren - denn eigentlich ist der Quelltext korrekt so.

    Herzliche Grüße,

    Martin

    1. Hi,

      In _diesem_ Kontext ist es IMHO aber völlig korrekt,

      Nein.

      das "&"-Symbol so stehenzulassen. Denn hier hat es ja nicht die Bedeutung, dass es als "&" im eigentlichen Text erscheinen soll, sondern es hat eine Sonderfunktion - nämlich dass es Parameter im Query-String trennt.

      Nein - das & muß auch in URLs durch &amp; ersetzt werden - darum meldet der Validator ja auch einen Fehler.
      Insbesondere weiß der Validator nicht, daß es sich um eine URL handelt - das Attribut href ist vom Typ CDATA.
      Es unterscheidet sich für den Validator in nichts vom alt- oder color- oder name-Attribut oder sonstigen Attributen vom Typ CDATA.
      Und in HTML muß innerhalb von CDATA & durch &amp; ausgedrückt werden. Immer.

      Das Problem ist bekannt. Der Validator "versteht" den Unterschied in der Bedeutung nicht.

      Wie soll er einen Unterschied in der Bedeutung kennen, wenn es diesen Unterschied gar nicht gibt?

      Ich würde die Meldungen des Validators in diesem Fall ignorieren - denn eigentlich ist der Quelltext korrekt so.

      Nein, die Meldungen sollten nicht ignoriert werden, denn der Quelltext ist NICHT korrekt.

      cu,
      Andreas

      --
      MudGuard? Siehe http://www.Mud-Guard.de/
      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.