ďťż

[php, xhtml] Znak & w PHPSESSID i XHTML

       

Podstrony


telcocafe

Witam!
Pytanie jest już praktycznie w temacie. Otóż na stronie mam włączone sesje i za każdym razem, gdy daję stronę do walidatora W3C wyrzuca mi błąd:
# Error Line 45, Column 55: reference to entity "PHPSESSID" for which no system identifier could be generated. …="index.php?pokaz=cos&PHPSESSID=afe4c81b6d96f3c7eda0bf89c683951b">Coś ✉ This is usually a cascading error caused by a an undefined entity reference or use of an unencoded ampersand (&) in an URL or body text. See the previous message for further details.
Jak zrobić tak, aby nie było błędu. Wiem że trzeba usunąć znak & ale jak??? Sposób na stronie http://forum.mina86.com/709 nie działa, za to daje mi kod:
<a Array>Coś</a>
Co mam zrobić???

PS. dostępu do panelu admina nie mam więc zmiany z jego poziomu odpadają:/



Użyj "&amp;" zamiast "&" :)

A oto kod, który sam zamieni :P Taki na szybko pisany, ale IMO będzie chodził :P$s = str_replace(array('&','&amp;amp;'), '&amp;', $s);:)

@down:
1. Zajrzałem po napisaniu tego, i wiele to nie zmieniło <_<
2. Nie każdy może modyfikować ustawienia pliku .ini :P
3. Nie każdy serwer obsługuje/ma włączone .htaccess :P

@down2:
Na stronie nie ma podanego mojego rozwiązania, jest podobne :P
A to które nie działa, to pewnie to na wyrażeniach regularnych - bo kody takie jak w/w nie mogą zamienić atrybutów w znaczniku :P (dopóki ktoś wyraźnie nie zmieni parametrów str_replace ;P).
Użytkownik DJ_ProG edytował ten post 31 październik 2007, 15:58
DJ_ProG - zajrzyj najpierw na link podany przez Tomka, a później pisz takie posty...

Ja ze swojej strony znalazłem następujące porady:
http://forum.php.pl/...showtopic=25628

Po dalszych poszukiwaniach prawie 90% stwierdziło, że sposób w kodzie php:
ini_set("arg-separator.output", "&amp;");
lub w pliku .htaccess:
php_value arg-separator.output &amp;
...załatwia sprawę.

@up
Jakby nie patrzeć, na podanej stronie widnieje także rozwiązanie podane przez Ciebie, a Tomek mówi, że żadne z rozwiązań nie działa... Coś tu się ze sobą kłóci?
Użytkownik marrek13 edytował ten post 31 październik 2007, 15:40

Użyj "&amp;" zamiast "&" :)

A oto kod, który sam zamieni :P Taki na szybko pisany, ale IMO będzie chodził :P$s = str_replace(array('&','&amp;amp;'), '&amp;', $s);:)


Dobra, ale co mam wstawić do zmiennej $s? Przecież zmiennej PHPSESSID nie tworzę ja, ale serwer, więc jak mam dynamicznie zmieniać wartość $s?? Nie wiem przecież, co będzie wynosiła(zawsze co innego).



Ale to chyba ty decydujesz gdzie i jak są umieszczone linki.
Jeśli dobrze pamiętam, to jeśli zostawisz na końcu "&amp;" to po tym dopisze się zmienna sesyjna.
A w ogóle chyba (?) dałoby radę filtrować to co wysyła serwer i przetworzyć ten tekst :P

@down:
Jeśli dostawi (i będzie &&) to czy coś się stanie? Chyba nie :P
A zwyczajowo serwer raczej nie dostawia (jak już) samego amepersanda, a razem z "amp;" :P
Co do adminów, to może udzielą rady, ale w plikach nic nie zmienią :P Tak to już jest na naszym sprawiedliwym świecie... Wiem, bo sam tak miałem nie raz ;/
Użytkownik DJ_ProG edytował ten post 31 październik 2007, 19:43
Jeśli dostawi tam &amp; to przeglądarka wyświetli: &&PHPS...
Próbowałem, bo też miałem taki problem.
Najlepiej dać tę modyfikację do ini, albo pisać do adminów serwera :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.