Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Poprawna walidacja VS znak &
Jarod
post 9.06.2006, 09:14:48
Post #1





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


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!).


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
bełdzio
post 9.06.2006, 09:59:34
Post #2





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


przesadzasz :-) kod w stylu

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


działa poprawnie


--------------------
Go to the top of the page
+Quote Post
Jarod
post 9.06.2006, 10:10:14
Post #3





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


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


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
revyag
post 9.06.2006, 11:10:58
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Skrypt umieść w znacznikach cdata. Wtedy walidator grzeczenie skrypt ominie smile.gif
np. tak
Kod
<script type="text/vbscript">
/*<![CDATA[*/

//tresc skryptu

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


--------------------
-------------

------
Go to the top of the page
+Quote Post
Jarod
post 9.06.2006, 12:07:14
Post #5





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


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;


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
revyag
post 9.06.2006, 12:25:28
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


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 ?


--------------------
-------------

------
Go to the top of the page
+Quote Post
Jarod
post 9.06.2006, 12:51:10
Post #7





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
revyag
post 9.06.2006, 13:23:55
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


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.


--------------------
-------------

------
Go to the top of the page
+Quote Post
pulos
post 9.06.2006, 16:56:20
Post #9





Grupa: Zarejestrowani
Postów: 9
Pomógł: 1
Dołączył: 30.04.2004

Ostrzeżenie: (0%)
-----


Zobacz cos takiego:
  1. <?php
  2. ini_set('arg_separator.output', '&');
  3. ?>
Go to the top of the page
+Quote Post
Jarod
post 9.06.2006, 20:56:22
Post #10





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


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 ?


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
revyag
post 12.06.2006, 08:52:59
Post #11





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


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


--------------------
-------------

------
Go to the top of the page
+Quote Post
DjKermit
post 12.06.2006, 11:03:06
Post #12





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 18.06.2005

Ostrzeżenie: (0%)
-----


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;

Ten post edytował DjKermit 12.06.2006, 11:04:24


--------------------
emiker
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:02