Seite 1 von 1

unknown entity (W3C-Synax Checker)

Verfasst: 10.09.2002 10:51
von makue
Hi,

laut W3C Syntax-Checker ist ein & zum Trennen der Variablen in einem Link nicht zulässig (unknown entity). Eigentlich kein Problem, man benutzt einfach ein & dafür. Allerdings funkt mir jetzt PHP dazwischen wenn ich mit Sessions arbeite, PHP hängt selbständig ein &PHPSessid=xxx an die URL. Ist PHP nicht W3C konform oder sind die W3C Regeln unsinnig? Ich habe mir folgendermassen geholfen:

Ich setze den Session-Namen auf "session" wenn die Links eigene sind (referer prüfen). Sind es fremde links, wie der W3C-Checker, da sind Sessions ohnehin überflüssig, setze ich den Namen auf "amp;session". Da PHP entweder ein ? davorhängt, ist eigentlich egal, oder aber ein & wird im zweiten Fall aus den & ein &. Funktioniert perfekt, ist habe nun wirklich keine tolle Lösung.

Wer eine bessere Lösung hat, bitte her damit! :)

Gruß,
Mario

Verfasst: 14.09.2002 18:31
von itst
Beste Lösung: den Webserver umstellen, so das er "|" als Trenner wzwichen URL-Variablen benutzt. Dann im phpBB die "&" durch "|" ersetzen.

Das & ist historisch bei URL-Vars benutzt worden. Nach Einführung von XML, wo dem "&" eine Sonderbedeutung (Entity) zukommt, hat das aber niemand mehr geändert.

Verfasst: 14.09.2002 19:51
von makue
Ähm ja, was ich als Trenner nehme ist erst mal ganz egal, ob das & oder das |. Aber wenn ich mit php-Sessions arbeite schreibt das php selbst ein & hin und ich weiss nicht ob man das Ändern kann. Also das
&PHPSESSID=sslkjssajhksjd z.B.

Verfasst: 14.09.2002 20:42
von Jensemann
Hi

Du musst als trenner der Variablen & nehmen, also die html kodierte form von &, das ist das einzig richtige.

BTW: phpBB macht es genauso

Mfg jensemann

Verfasst: 14.09.2002 21:36
von makue
Ja, ich bin ja dankbar für Eure Tipps, ich nehme ja auch &. Das Problem ist aber bei php, wenn man mit sessions arbeitet, dass php selbst ein &PHPSESSID=xxx an jeden Link hängt! Die Frage ist, kann man das php irgendwie sagen?

Verfasst: 14.09.2002 22:04
von Jensemann
Hi

Du kannst das anhängen auch selber machen, ich glaube du musst dazu trans_sid abschalten, weis ich jetzt nicht genau, bin seit Tagen voll und ganz mit c++ beschäftigt.Guck dir einfach mal den code von phpBB an.

Mfg jensemann

Verfasst: 14.09.2002 22:17
von makue
Ich finde es ja gerade genial, wenn das php selbst macht. Da braucht man sich keine Gedanken um die Links zu machen. Aber mal sehen, ist vielleicht doch gans gut, mit 'ner kleinen Funktion vielleicht. Lieber wäre mir natürlich eine Einstellmöglichkeit bei php, in der php.ini z.B.

Verfasst: 15.09.2002 01:04
von itst
jensemann hat (trotz C++-Stress) recht.

Zitat von http://www.php.net/manual/de/ref.session.php
Anmerkung: Die php.ini-Anweisung arg_separator.output ermöglicht es, die Trennung von Argumenten anzupassen.

Verfasst: 15.09.2002 09:00
von makue
Oh, vielen Dank, genau das ist es. In der php.ini steht dazu schon folgendes: ;arg_separator.output = "&" Also nur noch das ; weg und es ist angepasst. Also haben die schon daran gedacht, dass es vielleicht jemand umstellen möchte. :)