Avatar billede googolplex Novice
06. juli 2003 - 18:19 Der er 18 kommentarer og
1 løsning

Validering (Xhtml)

Efter jeg har indsat sessions på min side, tilføjes et Hidden Field til mine Forms.

<form action="/index.php" method="post">
<input type="hidden" name="sid" value="20051..." /> // HER
<fieldset>
<input type="text" name="brugernavn" value=" Brugernavn" />
<input type="text" name="kodeordtekst" value=" Kodeord" />
<input type="password" name="kodeord" />
<input type="submit" name="login" value="Login" />
</fieldset>
</form>

Men da det tilføjes før mit Fieldset skaber det en fejl når jeg forsøger at validere:

http://validator.w3.org/check?uri=http%3A%2F%2Fwww.ladefoged-roenne.dk%2F

Nogen der ved HVORDAN jeg løser dette problem ?
Avatar billede =maddog= Nybegynder
06. juli 2003 - 18:27 #1
hvad er der galt i at sætte den ind i fieldsettet?
alternativt
<fieldset style="display:none">
<input type="hidden" ... />
</fieldset>
Avatar billede googolplex Novice
06. juli 2003 - 18:29 #2
Jamen, problemet er jo, at det ikke er mig der indsætter den...den indsættes automatisk :(
Avatar billede =maddog= Nybegynder
06. juli 2003 - 18:31 #3
automatisk af hvad? jeg mener du må da have en lille smule kontrol. Ellers er det bare at bide i det sure æble og nedgradere til XHTML 1.0 Transistional. Eller er der et problem i det også?
Avatar billede googolplex Novice
06. juli 2003 - 18:35 #4
Ja, jeg kan fjerne sessions eller fjerne understøttelsen af sessions for folk der ikke understøtter cookies, men det duer jo ikke :(

Jeg kan bare nedgradere, men ville gerne have en løsning uden :)
Avatar billede =maddog= Nybegynder
06. juli 2003 - 18:42 #5
jamen det er jo ikke muligt. jeg har aldrig hørt at sessions skulle tvinge et hidden felt ind. nu bruger jeg også jsp, så det kan jo være en mærkværdighed i php.
under alle omstændigher - hvis du ingen som helst kontrol har over hvor det felt bliver sat ind er der ikke noget at stille op.
skal du parse siden som xml andre steder siden du er påholdende med at nedgradere?
Avatar billede googolplex Novice
06. juli 2003 - 19:29 #6
Det er nu et problem jeg har set om talt mange steder, har bare ikke set en løsning, så jeg ville lige høre om der var nogen herinde der kunne løse det :)

Men fejlen betyder jo ikke det store, det var mere af ren undren/nysgerrighed.
Avatar billede =maddog= Nybegynder
06. juli 2003 - 19:35 #7
Det er forholdvist vigtigt at siden validerer. Ellers kan du lige så godt droppe doctype.
Avatar billede googolplex Novice
06. juli 2003 - 21:32 #8
Hvorfor er det egentlig så vigtigt ?

Jeg bruger det faktisk kun fordi jeg gerne vil holde mig til standarderne.
Avatar billede hoejrup Nybegynder
06. juli 2003 - 22:01 #9
Hvad sker der med denne her?

<form action="/index.php" method="post" name="dinform">
<fieldset>
<input type="hidden" name="sid" value="20051..." />
<input type="text" name="brugernavn" value=" Brugernavn" />
<input type="text" name="kodeordtekst" value=" Kodeord" />
<input type="password" name="kodeord" />
<input type="submit" name="login" value="Login" />
</fieldset>
</form>

/per
Avatar billede googolplex Novice
06. juli 2003 - 22:08 #10
Ja, det er selvfølgelig sådan det skal se ud, men problemet er, at det ikke er mig der indsætter <input type="hidden" name="sid" value="20051..." />, det bliver automatisk indsat imellem <form>og<fieldset>.
Avatar billede hoejrup Nybegynder
06. juli 2003 - 22:23 #11
Har du ikke adgang til xsl filen?

/per
Avatar billede googolplex Novice
06. juli 2003 - 22:25 #12
Hvad er det ?
Avatar billede hoejrup Nybegynder
06. juli 2003 - 22:37 #13
xml + xsl bliver lavet om til xhtml via en parser.

/per
Avatar billede googolplex Novice
06. juli 2003 - 22:40 #14
Ok, det tror jeg ikke jeg har, jeg bruger B-one.

Er det der løsningen skal findes ?
Avatar billede =maddog= Nybegynder
06. juli 2003 - 23:27 #15
hvorfor er det vigtigt at den validerer doctype?!
browseren parser doctype.
browseren henter dtd.
browseren forsøger at parse dokumentet ifølge doctype
her kan der ske to ting:
browseren møder ingen fejl og parser hurtigt dokumentet
browseren viser html elementer ifølge dtd'ens angivelser
eller
browseren møder fejl
browseren parser i fejlaktiveret tilstand
browseren viser elementerne ifølge dens egen standardindstillinger.

det sidste vil få dokumentet til at fremstå forskelligt i forskellige browsere (endog samme browser på forskellig platform) og det er sjældent specielt godt. ud over det bliver visningen mærkbart langsommere hvis doctype'n ikke kan følges.

til eksempel kan du se dette her i IE. den eneste forskel på de to er den øverste firkant er vist med forkert doctype (uden dtd) og vil derfor blive vist med den (forkerte) IE standard nemlig indvendig border. Det korrekte er naturligvis udvendig border som standarden foreskriver.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<script type="text/javascript">
runonce=true;
onload = function() {
    if (runonce) {
        html = document.getElementsByTagName("HTML").item(0);
        feed = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n"
            + html.outerHTML.substring(0,html.outerHTML.indexOf("runonce")+8)+"false"
            + html.outerHTML.substring(html.outerHTML.indexOf("runonce")+12,html.outerHTML.length);
        i_document=document.getElementById("iframe").contentWindow.document;
        i_document.open();
        i_document.write(feed);
        i_document.close();
    }
}
</script>
</head>
<body>
<div style="width:200px;height:200px;border:25px solid black;"></div>
<iframe src="about:blank"
        id="iframe"
        style="width:300px;height:300px;"
        frameborder="0"
        scrolling="no"></iframe>

</body>
</html>

selve essensen i dette spørgsmål er jo at du ønsker at leve op til din doctype, så jeg forstår ikke du er i tvivl om hvorfor det er vigtigt.
Avatar billede googolplex Novice
06. juli 2003 - 23:59 #16
Som jeg sagde:

'Jeg bruger det faktisk kun fordi jeg gerne vil holde mig til standarderne.'

Jeg troede faktisk fordelen var, at jeg ved at overholde standarderne kunne øje sandsynligheden for at siden blev vist korrekt. Var ikke klar over det med 'parsingen', men meget rart at vide.

Men jeg må vel bare gå et skridt tilbage for at få det til at validere.

Jeg havde bare håbet, at der var en mulighed for at parse følgende korrekt:

<form action="/index.php" method="post" name="dinform">
<input type="hidden" name="sid" value="20051..." />
<fieldset>
<input type="text" name="brugernavn" value=" Brugernavn" />
<input type="text" name="kodeordtekst" value=" Kodeord" />
<input type="password" name="kodeord" />
<input type="submit" name="login" value="Login" />
</fieldset>
</form>

Ved måske at flytte fieldset, pakke det ind i en div eller hvad ved jeg. Åbenbart ikke, men takker for hælpen :)
Avatar billede =maddog= Nybegynder
07. juli 2003 - 00:33 #17
jamen hvad mener du med pakke det ind i en div? du må vist ikke have form i et blokelement overhovedet, og vi har jo fastslået at det hidden felt bliver sat lige efter <form>.
i øvrigt er der ikke tale om en session, der er tale om hidden field rewriting. en ægte session ville ikke behøve et sådant hidden field.
med mindre du decideret skal bruge det som xml er der intet i vejen med at sætte doctypen ned til en transistional standard. mon ikke b-one opgraderer når deres teknologi for alvor bliver forældet.
Avatar billede googolplex Novice
07. juli 2003 - 10:42 #18
Jeg mener ikke rigtig noget med at pakke det ind i en <div>, det var derfor jeg skrev 'eller hvad ved jeg' :)

Tror du det hjælper hvis B-one opgraderer, hvorfor det ?

Nå, smid et svar !
Avatar billede =maddog= Nybegynder
07. juli 2003 - 11:16 #19
Jeg gjorde en antagelse og anslog at en sådan indsættelse af html må komme fra en forældet standard.
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