Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sekcja CDATA, problem
Forum PHP.pl > Forum > Po stronie przeglądarki > HTML \ XHTML
kufalo
Witam, chodzi mi o dekcje CDATA

Cytat
Sekcja CDATA jest techniką, która pozwala stosować w dokumencie dowolne znaki, gdyż zabrania procesorowi XML przetwarzania ich zgodnie z zasadami XML. Wyłącza objęty nią fragment dokumentu z przetwarzania i dosłownie "cytuje" jego zawartość, np dowolna treść ze znakami <, >, & itd...


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="content-type" content="text/html;charset=utf-8" />
  5. <script type="text/javascript">
  6.  
  7. //<![CDATA[
  8.  
  9. alert('</script>')
  10.  
  11. //]]>
  12.  
  13. </script>
  14. </head>
  15. <body>
  16.  
  17. </body>
  18. </html>


Wiec z ciekawosci sprawdzam jej dzialanie i niestety </script> znajdujacy sie w alercie jest interpretowany przez przegladarke (IE, FF, Opera, Safari) jako zakonczenie skryptu...
Dlaczego tak sie dzieje questionmark.gif
gekon
Wszystko rozbija się o to: "gdyż zabrania procesorowi XML". Twój plik, mimo, że ma DOCTYPE XHTML - nie jest nim. Przeglądarka musi wiedzieć wcześniej, że ma używać procesora XML, więc serwer musi wysłać plik z odpowiednim nagłówkiem. Ergo: W XMLu działa, w HTMLu nie.
kufalo
Czyli w:
  1. <meta http-equiv="content-type" content="text/html;charset=utf-8" />

zamiast: text/html
mam wpisac ktorys z tych typow:
1. application/xhtml+xml
2. application/xml
3. text/xml
questionmark.gif

Czy moje wysylac jakis naglowej z poziomu funkcji header() w PHP ?
Kisiol_Ent
w PHP wstukujesz header:
  1. <?php
  2. header ('Content-type: application/xhtml+xml');
  3. ?>


w kodzie xhtml wstukujesz meta:
  1. <meta http-equiv="Content-type" content="application/xhtml+xml; charset=UTF-8" />


i chyba powinno zadzialac. [u mnie dziala bez zadnych tam wpisow w htaccess czy czyms]
piter2k1
Jeśli chodzi o XHTML mamy tu problem!

Odpowiednim typem MIME jest oczywiście "application/xhtml+xml".

Ale niestety przeglądarki Internet Explorer nie dorosły jeszcze do naszych czasów i nie akceptują tego typu!
Zamiast strony wyrzucają okienko do pobierania! IE obsługuje prawidłowo tylko typ "text/html" a resztę z błędami sad.gif

aby nagłówki działały prawidłowo należy użyć php -> header

Ale tak jak już mówiłem po wpisaniu takiego kodu:
Kod
<php
header("Content-Type: application/xhtml-xml; charset=utf-8");
?>


Przeglądarka IE będzie chciała ściągnąć stronę.

Więc na razie musimy używać "text/html"

Przykład:

Kod
<php
header("Content-Type: text/html; charset=utf-8");
?>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl">


Nie zapominając oczywiście o dołączeniu deklaracji XML:
<?xml version="1.0" encoding="iso-8859-2"?>

Mam nadzieję że pomogłem smile.gif
Kisiol_Ent
Jak cos kopiujesz to podaj źródlo skad to kopiujesz cwaniaku.

>> Więc na razie musimy używać "text/html" <<

Moze ty musisz uzywac IE?
Kreton
Kisiol ty nie cwaniakuj z takimi tekstami ? Kogo udajesz ? Wcześniej przymykałem na twoje posty. Basta ! Daruj sobie !
gekon
Mogłem wcześniej wkleić. Pornel ładnie wytłumaczył: http://pornel.net/xhtml
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.