unknown entity (W3C-Synax Checker)

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
makue
Mitglied
Beiträge: 282
Registriert: 18.07.2002 07:58
Wohnort: Böblingen
Kontaktdaten:

unknown entity (W3C-Synax Checker)

Beitrag 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
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag 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.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
makue
Mitglied
Beiträge: 282
Registriert: 18.07.2002 07:58
Wohnort: Böblingen
Kontaktdaten:

Beitrag 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.
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag 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
makue
Mitglied
Beiträge: 282
Registriert: 18.07.2002 07:58
Wohnort: Böblingen
Kontaktdaten:

Beitrag 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?
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag 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
makue
Mitglied
Beiträge: 282
Registriert: 18.07.2002 07:58
Wohnort: Böblingen
Kontaktdaten:

Beitrag 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.
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag 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.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
makue
Mitglied
Beiträge: 282
Registriert: 18.07.2002 07:58
Wohnort: Böblingen
Kontaktdaten:

Beitrag 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. :)
Antworten

Zurück zu „Coding & Technik“