Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Poprawna walidacja VS znak &
Forum PHP.pl > Forum > Po stronie przeglądarki > HTML \ XHTML
Jarod
Mam nietypowy problem. Jak nie zamienię w skrypcie znaków & na & to skrypt nie zostanie zwalidowany pozytywnie. Jak dodam & to skrypt nie działa poprawnie (& zamieniam także w adresie URL).

Co zrobić? Olać walidator?

Podczas walidacji jest takie zalecenie
Cytat
Entity references start with an ampersand (&) and end with a semicolon (winksmiley.jpg. If you want to use a literal ampersand in your document you must encode it as "&" (even inside URLs!).
bełdzio
przesadzasz :-) kod w stylu

  1. <a href="zzz.php?oko&amp;zzz=dsdas">test</a>


działa poprawnie
Jarod
Cytat(bełdzio @ 9.06.2006, 08:59 ) *
przesadzasz :-) kod w stylu

  1. <a href="zzz.php?oko&amp;zzz=dsdas">test</a>


działa poprawnie



  1. <?php
  2. echo '<form action="'.basename($PHP_SELF).'?'.SID.'&amp;val=21&amp;id='.$id.'&amp;dzien='.$dzien.'&amp;miesiac='.$miesiac.'&amp;rok='.$rok.'" method="post">';
  3. ?>


wiem co pisze. Jak zostrawie same & to wtedy jest ok. Inaczej nie zapisuje do bazy
revyag
Skrypt umieść w znacznikach cdata. Wtedy walidator grzeczenie skrypt ominie smile.gif
np. tak
Kod
<script type="text/vbscript">
/*<![CDATA[*/

//tresc skryptu

/*]]>*/
</script><
Jarod
Cytat(revyag @ 9.06.2006, 10:10 ) *
Skrypt umieść w znacznikach cdata. Wtedy walidator grzeczenie skrypt ominie smile.gif
np. tak
Kod
<script type="text/vbscript">
/*<![CDATA[*/

//tresc skryptu

/*]]>*/
</script><



Do czego jest vbscript?

Nie ma innego sposobu? Trzeba tak na chama? Dokładnie to problem występuje gdy wywołuje header() a w nim mam &amp;
revyag
snitch.gif
Twój tytuł tematu spowodował małe zamieszanie smile.gif Myślałem że VS oznacza że masz skrypt w Visual Basic a w nim problem z ampersandem smile.gif
Co do właściwego problemu. Coś mieszasz. W jaki sposób niby validator ma zobaczyć co masz w header ?
Jarod
Cytat(revyag @ 9.06.2006, 11:25 ) *
W jaki sposób niby validator ma zobaczyć co masz w header ?


  1. <?php
  2. if ( !empty($dzien) ) header('location: '.basename($PHP_SELF).'?'.SID.'&val=21&dzien='.$dzien.'&miesiac='.$miesiac.'&rok='.$rok.'&done=true');
  3. ?>
revyag
To co podajesz pojawi się w pasku adresu, więc validator nic do tego nie ma, bo to nie jest html wypluwany przez php, a tylko to validatora interesuje.
pulos
Zobacz cos takiego:
  1. <?php
  2. ini_set('arg_separator.output', '&');
  3. ?>
Jarod
Cytat(revyag @ 9.06.2006, 12:23 ) *
To co podajesz pojawi się w pasku adresu, więc validator nic do tego nie ma, bo to nie jest html wypluwany przez php, a tylko to validatora interesuje.



Masz racje. Sam się zamotałem smile.gif

Czy to prawda, że nie powinno się w formularzu przekazywać zmiennych, tak jak ja robie?
  1. <?php
  2. echo '<form action="'.basename($PHP_SELF).'?'.SID.'&amp;val=21&amp;id='.$id.'&amp;dzien='.$dzien.'&amp;miesiac='.$miesiac.'&amp;rok='.$rok.'" method="post">';
  3. ?>


Podobnie jak w header ?
revyag
No nie powinno. Od tego masz formularz, żeby takie zmienne przekazać. A co do problemu, to możesz kombinowac, oszukiwać validator używając javascript. Ale czy o to Ci chodzi ? Niestety, albo rybki albo akwarium smile.gif
DjKermit
Proponuję tak:
  1. <?php
  2. echo '<form action="'.basename($PHP_SELF).'?'.SID.'&val=21&id='.$id.'&dzien='.$dzien.'&miesiac='.$miesiac.'&rok='.$rok.'" method="post">';
  3. ?>


heh się pozamieniało na &
ale w kodzie jest
&#38;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.