michael: xhtml valide mit "&" in URL bei php-Superglobalen

hallo,

um valides xhtml zu coden, müssen ja alle sonderzeichen im quelltext codiert sein. also ä wie ä usw. kein problem.
gleiches gilt lt. validator aber auch für "&" das zu & kodiert werden muss.

solange ich meine links ja hartcodiere wie z.B. blala.htm?cat=1&subcat=2 geht das ja noch, auch wenn es ungewohnt ist.

ABER: was ist mit den rückgabewerten dir mir php direkt gibt.
wenn ich bspw. ein blala.htm<?=$_SERVER['QUERY_STRING']?> schreibe,
dann codiert mir php die rückgabe eben nicht mit "&amp;" sondern mit "&". das ist natürlich blöd, weil ich meine seiten so nicht valide bekomme....

und da ist guter rat teuer.
gibts einen ausweg aus diesem dilemma?

vielen dank für eure hilfe,
grüße,
micha

  1. Hallo Michael!

    und da ist guter rat teuer.
    gibts einen ausweg aus diesem dilemma?

    Einfach die Variable nicht direkt ausgeben, sondern erst noch durch ne Funktion jagen, die Dir die & ersetzt?

    Und so teuer ist dieser Rat auch nicht, schließlich ist es ja Deine eigene Arbeitszeit die es kostet, das einzubauen ;)

    MfG
    Götz

    --
    Losung für Montag, 12. Juli 2004
    Seid nicht bekümmert; denn die Freude am Herrn ist eure Stärke. (Nehemia 8,10)
    Jesus sprach: Das Himmelreich gleicht einem Schatz, verborgen im Acker, den ein Mensch fand und verbarg; und in seiner Freude ging er hin und verkaufte alles, was er hatte, und kaufte den Acker. (Matthäus 13,44)
    (http://www.losungen.de/heute.php3)
  2. Hi,

    um valides xhtml zu coden, müssen ja alle sonderzeichen im quelltext codiert sein. also ä wie &auml; usw. kein problem.

    Nein.
    Ein Zeichen muß dann kodiert werden, wenn

    • es das &-Zeichen ist und es nicht eine Entity einleitet
    • es das <-Zeichen ist und dies nicht ein tag öffnet
    • es sich um ' oder " handelt und es in einem Attributwert steht, der in demselben Zeichen eingeschlossen ist
    • es nicht direkt in der verwendeten Kodierung enthalten ist

    gleiches gilt lt. validator aber auch für "&" das zu &amp; kodiert werden muss.

    s.o.

    solange ich meine links ja hartcodiere wie z.B. blala.htm?cat=1&amp;subcat=2 geht das ja noch, auch wenn es ungewohnt ist.
    ABER: was ist mit den rückgabewerten dir mir php direkt gibt.
    wenn ich bspw. ein blala.htm<?=$_SERVER['QUERY_STRING']?> schreibe,
    dann codiert mir php die rückgabe eben nicht mit "&amp;" sondern mit "&". das ist natürlich blöd, weil ich meine seiten so nicht valide bekomme....

    Dann ist PHP nicht richtig konfiguriert.
    Setze arg_separator.output auf &amp;

    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.
    1. hmm... steh ich jetzt auf dem schlauch?

      Ein Zeichen muß dann kodiert werden, wenn

      • es das &-Zeichen ist und es nicht eine Entity einleitet

      eben - also muss ich doch &-Zeichen mit denen ich normalerweise in meinen URL-Parameteren die Variablen aneinanderhänge, kodieren oder?

      also statt & in den Links &amp; schreiben, oder??

      grüße,
      michael

      1. Hi,

        hmm... steh ich jetzt auf dem schlauch?

        nein.

        Ein Zeichen muß dann kodiert werden, wenn

        • es das &-Zeichen ist und es nicht eine Entity einleitet
          eben - also muss ich doch &-Zeichen mit denen ich normalerweise in meinen URL-Parameteren die Variablen aneinanderhänge, kodieren oder?

        Korrekt.

        also statt & in den Links &amp; schreiben, oder??

        Ja.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. in der kürze liegt die würze. ;-)
          danke für die antwort - jetzt seh ich klar !

          grüße
          michael