30. november 2010 - 20:17 Der er 6 kommentarer og
2 løsninger

w3c validering for at loese at hjemmeside vises forskelligt i forskellige browsere.

En hjemmeside jeg er i gang med at udvikle viser sig til min straek at opfoere sig forskelligt i de forskellige browsere.  Som et forsoeg paa at loese det er jeg gaaet i gang med w3c validation.  Til den ende har jeg et antal spoergsmaal.

Lad mig foerst naevne at jeg bruger <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">.

Saa bruger jeg php meget, og for at undgaa at gaa ind og ud af php bruger jeg konstruktioner saa som:

<?
....
echo "<table><tr><td>Et eller andet</td></tr></table>";
...
?>

i stedet for
<?
....
?>
<table><tr><td>Et eller andet</td></tr></table>
<?
....
?>

w3c validatoren synes ikke at fange indholdet af saadan kode.  Spoergsmaal 1:  Findes der php validatorer?  Google paa php validation eller php validator synes kun at give hits med hvordan man ved hjaelp af php kan validere forms og lignende.

Saa rapporterer w3c at der mangler charset encoding.  Sandt nok.  Der anbefales <meta http-equiv="Content-type" content="text/html;charset=UTF-8">.  Det har jeg saa tilfoejet paa alle filer.  Hjemmesiden er paa engelsk.  Spoergsmaal 2:  Vil charset=UTF-8 vise de danske bogstaver (som jeg ikke kan skrive her) korrekt?

Og saa har jeg konsekvent, som en frejdig spejder og god kristen, afsluttet alle tags, og enkelt-tags har jeg afsluttet med / saasom  <link rel="stylesheet" type="text/css" href="style.css" />, for det har jeg faaet at vide at man goer!  Men det viser w3c som en fejl!  Jeg faar meddelelsen at skoent det er korrekt i 4.01 strict saa er der browsere der fortolker det forkert saa jeg bedre kan udelade det i html og reserverer det for xhtml.  Spoergsmaal 3:  Kan det have sin rigtignokhed?  Inden jeg giver mig til at fjerne hundredevis af /, har nogen erfaring med at afsluttende /'s faar moderne browsere (nyere verseioner af IE, FF, Crome,..) til at opfoere sig forskelligt?  Spoergsmaal 4:  Mine filer starter og slutter med <html></html>.  Boer jeg skifte det ud med xhtml?  Pros og cons?

Det var meget paa en gang.  Jeg takker paa forhaand for jeres taalmodighed (hvis i er kommet saa langt som hertil) og ser frem til at modtage jeres hjaelp.
Avatar billede emfr08ab Nybegynder
30. november 2010 - 20:40 #1
"w3c validatoren synes ikke at fange indholdet af saadan kode."

Det gør den altså :) Den ser jo ikke PHP'en, men kun kildekoden som browseren læser den. Derfor vil den også se det, som du udskriver med echo.

UTF-8 viser de danske bogstaver.

Hvis du vil have koden til at validere i din valgte doctype, så skal du fjerne alle "/". Hvis du har Dreamweaver eller Expression Web eller lignende, så kan du bare bruge funktionen Søg og Erstat. Her erstatter du alle /> med >. Der burde vel ikke være noget />, som ikke må erstattes?
Avatar billede majbom Novice
30. november 2010 - 20:42 #2
hvis du bruger validatoren på W3C's side, kan den ikke se om det er udenfor, eller indeni <?php-?> - hvordan validerer du?

UTF-8 er vejen frem, også hvis du bruger danske (eller andre special) karaktere.

jeg er overbevist om at afslutning af singletags med /> hører til xhtml og ikke html 4.01 - om det gør nogen forskel i browserne skal jeg ikke gøre mig klog på - jeg har altid kodet i 4.01 :)

hvis du skal lave det om til xhtml, skal du udskifte din doctype-deklaration med en xhtml.

du kan se lidt om det her: http://www.html.dk/artikler/00036/

håber det kunne bruges :)
Avatar billede emfr08ab Nybegynder
30. november 2010 - 20:51 #3
"hvis du bruger validatoren på W3C's side, kan den ikke se om det er udenfor, eller indeni <?php-?> - hvordan validerer du?"

Nå ja. Det er klart at det ikke virker, hvis du kopierer hele koden ind og validerer på den måde.
30. november 2010 - 21:22 #4
Hvordan jeg validerer - jeg fandt http://www.w3schools.com/site/site_validate.asp hvor jeg udfylde uri'en paa en fil og trykke paa en knap.  Og i de fleste filer er body en stor php kode med masser af echo.  (Maaske er det ikke den smarteste maade at kode paa?) splazz, jeg fortolker dit svar til at mene at html koden indenfor php taggene bliver valideret.  emfr08ab, siger du at det ikke er tilfaeldet?
splazz, lave om til xhtml, er det simpelthen et spoergsmaal om at udskifte doctype-deklaration (jeg tror jeg overholder alle standarder)?  Hvad er din bedoemmelse/anbefaling desangaaende?
Avatar billede emfr08ab Nybegynder
30. november 2010 - 22:41 #5
Nej, jeg siger at den læser det som står i PHP'en. Hvis du er i tvivl kan du sætte hak i "View source" inden du validerer, så ser du det som den ser.

Personlig tror jeg det er en dum idé, at lave det om til xhtml, men jeg kan ikke rigtig begrunde hvorfor. Jeg kan bare huske, at mange har givet udtryk for dette her på eksperten.
Avatar billede Slettet bruger
01. december 2010 - 00:41 #6
Spørgsmål 1:
Lad os lige være helt med her; hvad mener du helt præcist med, at w3c validatoren synes ikke at fange indholdet af saadan kode? Du må uddybe, hvad der sker.
For som nævnt tidligere, så er det fuldstændig ligemeget, om du bruger php, asp, jsp osv. osv. til at skabe dine html-koder. For det er jo netop stadig html-koder, du ender ud med. Og det er kun disse html-koder, som validatoren kan læse.

Ligesom når du klikker "Vis kildekode" i din browser - det er ikke php-kode men kun den resulterende html-kode, du kan få at se. Det samme læser validator-maskiner.
Så svaret på spørgsmålet er: Nej, der findes ikke php-validatorer, der kan validere kildekoden.

Er det klart nu? Ellers må du spørge yderligere ind.


Spørgsmål 2:
Svaret er givet.


Spørgsmål 3:
Ja, det har sin rigtighed, at du bør udelade afsluttende / i enkelt-tags, når du koder html, mens du bør afslutte med /, når du koder xhtml.
Hvis din doctype hedder noget med "html strict" fx, så går den bare ekstra meget "op i", at du 100% overholder html-reglen med ikke at afslutte med /.

Afsluttende / eller ej, det er ligemeget. Jeg tror ikke, der er nogen her, der vil fortælle dig, at moderne browsere læser tags'ene forskelligt, hvis de har en / til at afslutte tags'ene. Bare du har en doctype, der passer til.

Skråstregerne i fx <br /> hører til xhtml, som er "uddød", da der ikke udvikles mere på det. De ikke-afsluttede tags som fx <br> hører til ren html, som er fremtidens web-sprog, da der stadig udvikles nye versioner (formentlig, selvfølgelig - alt er formentlig).

Det vil derfor nok være mest fremtidssikret for dig ikke at bruge xhtml-kodning. Men så længe du koder efter din doctype, vil browserne vise det, du ønsker.


Spørgsmål 4:
Nej, du skal ikke udskifte <html>-tags'ene med xhtml eller noget andet. Der findes ikke noget <xhtml>-tag.
Det vil for evigt og altid være <html>, der omkranser et html-dokumentet. Ligesom det altid er <body> og <head>, der udgør dokumentet.
01. december 2010 - 05:47 #7
steeven, tak for denne grundige forklaring som selv en amatoer som jeg kan forstaa.  Jamen saa skal jeg til at droppe de afsluttende /'er som jeg ellers har svaerget ved.  Opret venligst et svar.

Points til emfr08ab og steeven; splazz, du blev slaaet paa maalstregen dennegang.

Jeg har for oevrigt fundet et par smaa kode-fejl som IE aabenbart er mere tolerant overfor end FF.  Til jul oensker jeg mig en ny computer der goer som jeg vil og ikke som jeg koder!
Avatar billede Slettet bruger
01. december 2010 - 23:49 #8
Vi er jo mange, der er amatører. Det handler bare om at have prøvet nok - så er man en amatør med erfaring.

IE (i hvert fald de tidligere versioner før IE8) har vist generelt fulgt deres egne spilleregler og har fortolket standarderne væsentligt anderledes på nogle punkter. Så det giver bare knuder engang imellem, hvis man ikke holder øje, for hver enkelt ny kode, man laver.
Sådan er det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester