DOCTYPE - błąd w walidatorze W3C

Witam serdecznie,

Mak kod strony index.php rozpoczynający się od:

W linii 56 gdzie występuje błąd rozpoczyna się natomiast kod php:

<?

        $id = isset($_GET['id']) ? $_GET['id'] : '';

        switch ($id) {

Nie mam pojęcia co może być przyczyną takiego błędu w walidatorze:

Line 56, Column 11: “DOCTYPE” declaration not allowed in instance

No a co jest w tej linii w wygenerowanej stronie? Zauważ, że to nie pierwsza litera, tylko 11.

Obstawiam błąd w skrypcie PHP.

Validator nie ‘patrzy’ w twój skrypt zawierający kod php, on patrzy na wynik prezentowany przez interpreter php (np. apache). zatem błąd istnieje w 56 linii i kolumnie 11 w źródle strony (po przetworzeniu kodu przez interpreter), a nie w kodzie pliku .php!! natomiast jeżeli podany fragment kodu pojawia Ci się w źródle strony to znak, że nie jest on uznawany przez interpreter za kod php i do znacznika:

musisz dopisać php czyli:

Już próbowałem wcześniej usuwać i dopisywać do znacznika:

<?PHP

i nic to nie dawało. W kodzie w 56 linii mam:

<?PHP

Natomiast generuje się w tym miejscu:

A 11 kolumna to litera “D” w słowie "

dopiero w 56 linii masz deklaracje doctype ??

deklaracja doctype powinna być na początku dokumentu (według tego co ja wiem).

Nie koniecznie, może być przed doctype kod php który nic nie generuje przed doctype.

Mam Doctype zaraz w pierwszej linii ale później on się ponownie generuje zamiast linii 56:

<?PHP

nie wiedzieć czemu :frowning:

linia 56 w pliku php nie musi odpowiadać linii 56 w wygenerowanym dokumencie.

może masz jakiegoś include’a który zawiera doctype.

skoro masz dwa razy doctype to nic dziwnego że w3c pokazuje to jako błąd

@Puma dla uściślenie doctype powinien być na początku w wygenerowanym pliku html ponieważ to interesuje przeglądarkę podczas parsowania dokumentu.

Kurcze, rzeczywiście al ze mnie gapa :smiley:

W includowanym pliku był ponownie DOCTYPE :stuck_out_tongue:

Dzięki grzelix =D>

A powiedzcie mi jeszcze czy w includowanym pliku na początku także musimy dodać jakąś sekcje czy od razu możemy drukować kod?

Od razu kod właściwy, nic nie dopisujesz w pliku includowanym.