|
| Overføre parametre mellem sider Fra : Kurt G |
Dato : 23-03-08 16:25 |
|
Jeg er i gang med nogle sider, hvor jeg gerne vil overføre nogle parametre
fra een side til en anden.
Jeg har en database, hvor der er et indeks med stikord til nogle bøger.
Som svar på stikordet kommer der en lang liste med forfatter, titel, årstal
og et sidenummer.
Når brugeren trykker på artikeltitlen, sender jeg brugeren videre til en ny
side, hvor bogsiden skal hentes ind som en jpg-fil.
Jeg vil gerne bringe tallene for årstal og sidenummer med mig til den nye
side for at hente rette fil, men det kniber gevaldigt!
Jeg har prøvet, om jeg kan bruge en cookie, men den skal tilsyneladende
oprettes i starten af siden, dvs inden jeg har lavet mine opslag i
databasen.
Jeg kan selvfølgelig bringe de to tal over i en tekstbox og derefter bruge
en knap til at sende videre, men det må da kunne gøres mindre kluntet!
Er der nogen, der har et godt forslag?
Mvh Kurt
| |
Jørn Andersen (23-03-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 23-03-08 16:47 |
|
On Sun, 23 Mar 2008 16:25:01 +0100, "Kurt G" <kurt_g@guldbaek.net>
wrote:
>Jeg er i gang med nogle sider, hvor jeg gerne vil overføre nogle parametre
>fra een side til en anden.
>
>Jeg har en database, hvor der er et indeks med stikord til nogle bøger.
>Som svar på stikordet kommer der en lang liste med forfatter, titel, årstal
>og et sidenummer.
>Når brugeren trykker på artikeltitlen, sender jeg brugeren videre til en ny
>side, hvor bogsiden skal hentes ind som en jpg-fil.
>
>Jeg vil gerne bringe tallene for årstal og sidenummer med mig til den nye
>side for at hente rette fil, men det kniber gevaldigt!
>
>Jeg har prøvet, om jeg kan bruge en cookie, men den skal tilsyneladende
>oprettes i starten af siden, dvs inden jeg har lavet mine opslag i
>databasen.
Cookies er mest velegnet til at gemme ting hos brugerne fra én Session
til den næste.
>Jeg kan selvfølgelig bringe de to tal over i en tekstbox og derefter bruge
>en knap til at sende videre, men det må da kunne gøres mindre kluntet!
Det lyder som om du skal bruge session-variable.
De er aktive for den enkelte bruger, så længe brugerens session er aktiv
(typisk 20 min. efter seneste aktivitet).
Sættes med fx:
intAarstal = 1917
intSidetal = 86
Session("mitAarstal") = intAarstal
Session("mitSidetal") = intSidetal
Og hentes med:
intHentetAarstal = Session("mitAarstal")
intHentetSidetal = Session("mitSidetal")
Session-variable bruger memory på serveren, men så længe du kun gemmer
tal, tekststrenge o.l. i session-variable, kan du have ret mange
session-variable uden problemer.
Good luck!
--
Jørn Andersen,
Brønshøj
| |
Kurt G (23-03-2008)
| Kommentar Fra : Kurt G |
Dato : 23-03-08 17:45 |
|
"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:saucu3lh9pfaf60d5a5cb89e8jlr5gacaq@4ax.com...
> On Sun, 23 Mar 2008 16:25:01 +0100, "Kurt G" <kurt_g@guldbaek.net>
> wrote:
>
>>Jeg er i gang med nogle sider, hvor jeg gerne vil overføre nogle parametre
>>fra een side til en anden.
>>
>>Jeg har en database, hvor der er et indeks med stikord til nogle bøger.
>>Som svar på stikordet kommer der en lang liste med forfatter, titel,
>>årstal
>>og et sidenummer.
>>Når brugeren trykker på artikeltitlen, sender jeg brugeren videre til en
>>ny
>>side, hvor bogsiden skal hentes ind som en jpg-fil.
>>
>>Jeg vil gerne bringe tallene for årstal og sidenummer med mig til den nye
>>side for at hente rette fil, men det kniber gevaldigt!
>>
>>Jeg har prøvet, om jeg kan bruge en cookie, men den skal tilsyneladende
>>oprettes i starten af siden, dvs inden jeg har lavet mine opslag i
>>databasen.
>
> Cookies er mest velegnet til at gemme ting hos brugerne fra én Session
> til den næste.
>
>>Jeg kan selvfølgelig bringe de to tal over i en tekstbox og derefter bruge
>>en knap til at sende videre, men det må da kunne gøres mindre kluntet!
>
> Det lyder som om du skal bruge session-variable.
> De er aktive for den enkelte bruger, så længe brugerens session er aktiv
> (typisk 20 min. efter seneste aktivitet).
>
> Sættes med fx:
> intAarstal = 1917
> intSidetal = 86
> Session("mitAarstal") = intAarstal
> Session("mitSidetal") = intSidetal
>
> Og hentes med:
> intHentetAarstal = Session("mitAarstal")
> intHentetSidetal = Session("mitSidetal")
>
> Session-variable bruger memory på serveren, men så længe du kun gemmer
> tal, tekststrenge o.l. i session-variable, kan du have ret mange
> session-variable uden problemer.
>
> Good luck!
>
> --
> Jørn Andersen,
> Brønshøj
Det lyder som den rette vej frem.
Mange tak, Jørn.
Mvh Kurt
| |
Kurt G (23-03-2008)
| Kommentar Fra : Kurt G |
Dato : 23-03-08 19:27 |
|
"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:saucu3lh9pfaf60d5a5cb89e8jlr5gacaq@4ax.com...
> On Sun, 23 Mar 2008 16:25:01 +0100, "Kurt G" <kurt_g@guldbaek.net>
> wrote:
> Det lyder som om du skal bruge session-variable.
> De er aktive for den enkelte bruger, så længe brugerens session er aktiv
> (typisk 20 min. efter seneste aktivitet).
>
> Sættes med fx:
> intAarstal = 1917
> intSidetal = 86
> Session("mitAarstal") = intAarstal
> Session("mitSidetal") = intSidetal
>
> Og hentes med:
> intHentetAarstal = Session("mitAarstal")
> intHentetSidetal = Session("mitSidetal")
>
> Session-variable bruger memory på serveren, men så længe du kun gemmer
> tal, tekststrenge o.l. i session-variable, kan du have ret mange
> session-variable uden problemer.
>
> Good luck!
>
> --
> Jørn Andersen,
> Brønshøj
Jeg mangler dog stadig (hvad jeg glemte at sige før) en metode, hvor jeg ved
at trykke på en link kan lave de operationer, som du anfører.
Hver linie i svarene fra databasen indebærer jo hver deres data for år og
side.
Er der en måde, hvor man kan gøre det? eller skal jeg lave en speciel
trykknap til hvert svar?
Kurt
| |
Jørn Andersen (23-03-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 23-03-08 20:10 |
|
On Sun, 23 Mar 2008 19:26:53 +0100, "Kurt G" <kurt_g@guldbaek.net>
wrote:
>Jeg mangler dog stadig (hvad jeg glemte at sige før) en metode, hvor jeg ved
>at trykke på en link kan lave de operationer, som du anfører.
>Hver linie i svarene fra databasen indebærer jo hver deres data for år og
>side.
>
>Er der en måde, hvor man kan gøre det? eller skal jeg lave en speciel
>trykknap til hvert svar?
Jeg har lige kigget igen på dit første indlæg, og måske er det nemmere
bare at overføre værdierne som querystring, når du alligevel har et
link?
Mvh. Jørn
--
Jørn Andersen,
Brønshøj
| |
Kurt G (23-03-2008)
| Kommentar Fra : Kurt G |
Dato : 23-03-08 20:35 |
|
"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:0cadu3tr34jid45pk93ha7i2dv01gjulfl@4ax.com...
> On Sun, 23 Mar 2008 19:26:53 +0100, "Kurt G" <kurt_g@guldbaek.net>
> wrote:
>
>>Jeg mangler dog stadig (hvad jeg glemte at sige før) en metode, hvor jeg
>>ved
>>at trykke på en link kan lave de operationer, som du anfører.
>>Hver linie i svarene fra databasen indebærer jo hver deres data for år og
>>side.
>>
>>Er der en måde, hvor man kan gøre det? eller skal jeg lave en speciel
>>trykknap til hvert svar?
>
> Jeg har lige kigget igen på dit første indlæg, og måske er det nemmere
> bare at overføre værdierne som querystring, når du alligevel har et
> link?
>
>
> Mvh. Jørn
>
> --
> Jørn Andersen,
> Brønshøj
Det er jeg ikke helt med på!
Kurt
| |
Rune Jensen (23-03-2008)
| Kommentar Fra : Rune Jensen |
Dato : 23-03-08 18:51 |
|
On 23 Mar., 20:34, "Kurt G" <kur...@guldbaek.net> wrote:
> > Jeg har lige kigget igen på dit første indlæg, og måske er det nemmere
> > bare at overføre værdierne som querystring, når du alligevel har et
> > link?
> Det er jeg ikke helt med på!
Prøv at lave følgende:
<EURO
Dim ReqQ
reQ = request.querystring("reqVar)
if reqVar <>"" then
response.write "reQ =" & reQ
else
response.write "reQ ikke defineret"
end if
%>
Du kan gemme det under test.asp i roden
og så prøve at kalde
domæne.dk/test.asp og f.eks.
domælne.dk/test.asp?reqVar=42
Hvad der sker er, at du overfører til hovedsiden (før ?-tegnet) den
variabel, som står efter ?-tegnet. Adskillelsen imellem flere variable
sker med &, sådan at
domæne.dk?reqVar=42&reqVar2=theAnswerToEverything
overfører 42 til variablen og theAnswerToEverything til variablen
reqVar2 på siden domæne.dk/test.asp
Der er specielle tegn for f.eks. space samt et par flere, og
querystring er bedst til at overføre variable, selvom man godt kan
overføre mindre mængder af data (men så er POST bedre)
Et ret ekstremt eksempel er her: http://runejensen.dk/om/hangman.asp
...som ikke virker på mobil pga. begrænsningen i tegn i URLen
MVH
Rune Jensen
| |
Stig Johansen (24-03-2008)
| Kommentar Fra : Stig Johansen |
Dato : 24-03-08 13:21 |
|
Rune Jensen wrote:
> Der er specielle tegn for f.eks. space samt et par flere, og..
Server.URLEncode() is your friend.
--
Med venlig hilsen
Stig Johansen
| |
Rune Jensen (24-03-2008)
| Kommentar Fra : Rune Jensen |
Dato : 24-03-08 03:46 |
|
On 24 Mar., 01:50, Rune Jensen <runeofdenm...@gmail.com> wrote:
> Prøv at lave følgende:
Og det var der jo så fejl i, fordi jeg skrev efter hukommelsen. Her er
den rigtige:
<%
Dim ReQ
response.write "request.querystring"
reQ = request.querystring("reqVar")
if reQ <>"" then
response.write "reQ =" & reQ
else
response.write "reQ ikke defineret"
end if
%>
...hvis du tester i IE, så vil den cashe siden med den definering af
variablen, og efterfølgende ikke udføre serversiden, men i stedet
hente det fra hukommelsen, så længe det er samme URL (noget, der har
været fremme i forbindelse med AJAX i clientside), det er ikke noget
man som sådan skal være bange for, men det kan måske hjælpe at vide,
hvis der kommer problemer i forb. med test, når man tror, man henter
siden fra serveren, og den rigtigt kommer fra hukommelsen. ...been
there done that;)
Rune Jensen
| |
Kurt G (24-03-2008)
| Kommentar Fra : Kurt G |
Dato : 24-03-08 13:31 |
|
>"Rune Jensen"
>> Prøv at lave følgende:
>
>Dim ReQ
>
>response.write "request.querystring"
Skriver blot på skærmen
>reQ = request.querystring("reqVar")
Kopierer variablen "reqVar" over i "reQ"
Resten ser efter, om "reQ" er tom og udskriver derefter.
>if reQ <>"" then
> response.write "reQ =" & reQ
>else
> response.write "reQ ikke defineret"
>end if
>%>
KLIP
>Rune Jensen
For at se, om jeg har forstået det rigtigt, har jeg kommenteret i teksten
ovenfor.
Jeg har prøvet det som du anbefalede og det virker OK, men det er kun på
modtagersiden.
Men mit problem er, at jeg ikke kan finde ud af, hvordan jeg får bragt mine
data fra databasens 'Aar' og 'Side' ind på sidens adresselinie efter ?.
Der er ikke problemer med at hente fra databasen og anbringe de forskellige
svar i en tabel, herunder også 'Aar' og 'Side'.
Så vidt jeg kan se, mangler jeg en hændelsesstyret knap, der véd hvilken
række i tabellen, der er trykket på og derfra forsyner adresselinien med
rette data!
Dertil har jeg kikket på en pegefølsom knap (JavaScript); jeg har prøvet at
indsætte den via FrontPages 'automatik', det gav nogle linier kode i
headeren og noget ved knappen.
Hvis koden i headeren og ved knappen skal gentages for hver knap, bliver det
voldsomt, da der kan komme op til mellem 25.000 og 30.000 rækker i svarene
fra databasen.
/Kurt
| |
Rune Jensen (24-03-2008)
| Kommentar Fra : Rune Jensen |
Dato : 24-03-08 14:59 |
|
On Mar 24, 1:30 pm, "Kurt G" <kur...@guldbaek.net> wrote:
> >"Rune Jensen"
> >> Prøv at lave følgende:
>
> >Dim ReQ
>
> >response.write "request.querystring"
>
> Skriver blot på skærmen
>
> >reQ = request.querystring("reqVar")
>
> Kopierer variablen "reqVar" over i "reQ"
> Resten ser efter, om "reQ" er tom og udskriver derefter.
>
> >if reQ <>"" then
> > response.write "reQ =" & reQ
> >else
> > response.write "reQ ikke defineret"
> >end if
> >%>
>
> KLIP
>
> >Rune Jensen
>
> For at se, om jeg har forstået det rigtigt, har jeg kommenteret i teksten
> ovenfor.
Jamen det er også rigtigt forstået så
> Jeg har prøvet det som du anbefalede og det virker OK, men det er kun på
> modtagersiden.
> Men mit problem er, at jeg ikke kan finde ud af, hvordan jeg får bragt mine
> data fra databasens 'Aar' og 'Side' ind på sidens adresselinie efter ?.
Jeg plejer at "Hardcode" det, hvilket vil sige, du skriver selve
URLen, tilføjer et ? samt skriver resten ud ad landevejen, som man
ville gøre, hvis det skulle udskrives som ren tekst, altså
---
response.write "<a hef='ditdomæne.dk/test.asp?_
sideVar=<%=Side%>_
&AarVar=<%=Aar%>_
'>Her er linket med variablene</a>"
---
& er en erstatning i HTMLen for &-et i URLen
...så skal man jo også være sikker på, der ikke kan injectes, og man
skal også tjekke for, om der kommer menneskelige skrivefejl i URLen,
så jeg har lavet et lille eksempel - det lader til at virke efter
hensigten, men det kan nok gøres smartere, nu det er lavet rimeligt
hurtigt - jeg ved jo heller ikke, hvad dine kriterier er.
<%
'Hent variablene, sørg for, det kun er tal
if IsNumeric(request.querystring("AarVar")) then
Aar=CInt(0 + request.querystring("AarVar"))
end if
if IsNumeric(request.querystring("SideVar")) then
Side=CInt(0 + request.querystring("SideVar"))
end if
'Aaret maa ikke vaere aeldre end 1971 eller højere end indevaerende
aar
if Aar<1971 or Aar> year(now) then Aar=1971
'Side skal vaere højere end 0
if side<0 then side=1
response.write "Aar=" & Aar & "<br />"
response.write "Side=" & Side & "<br />"
response.write"Hvis du trykker paa linket, bliver begge variable
plusset med 1<br />"
'Gør et eller andet med variablene, her plusses med 1
Aar = Aar + 1
Side = Side + 1
%>
'Her laves linket til samme side, men der er ikke noget i vejen for at
det er en anden side -
'saa skal den også bare have en check for injections og evt.
behandling af variable mv.
<a href="test.asp?AarVar=<%=server.URLEncode(Aar)%>&SideVar=<
%=server.URLEncode(side)%>">link til samme side med variablene Aar og
Side</a>
%>
---
Jeg plejer ikke at bruge server.URLENcode, så jeg er ikke sikker på,
om det skal ind dér.
> Der er ikke problemer med at hente fra databasen og anbringe de forskellige
> svar i en tabel, herunder også 'Aar' og 'Side'.
> Så vidt jeg kan se, mangler jeg en hændelsesstyret knap, der véd hvilken
> række i tabellen, der er trykket på og derfra forsyner adresselinien med
> rette data!
Udfra det du skriver, ville jeg nok bruge en SUBMIT. Det er måske ikke
helt korrekt, men mere brugervenligt, end en knap forsynet med
Javascript. Hvis du skikker et link til din side, skal jeg se, om jeg
kan lave et eksempel med en knap, som overfører variablene i stedet.
> Dertil har jeg kikket på en pegefølsom knap (JavaScript); jeg har prøvet at
> indsætte den via FrontPages 'automatik', det gav nogle linier kode i
> headeren og noget ved knappen.
Nu er det så bare min mening, men... Jeg ville (umiddelbart) holde mig
fra Frontpage. Det er ikke standard (kan dog ikke huske, om der er en
gruppe til det), og (jeg synes, det er) besværligt at arbejde med.
Hvilket vil sige, prøv med dette eller andet før du hopper på
Frontpage-vognen.
> Hvis koden i headeren og ved knappen skal gentages for hver knap, bliver det
> voldsomt, da der kan komme op til mellem 25.000 og 30.000 rækker i svarene
> fra databasen.
Det kunne lyde, som om du kunne have fordel af at bruge noget
Serverside include. Eller også så bruger du ikke selve sproget til at
behandle data, men hardcoder meget af det i hånden...?
MVH
Rune Jensen
| |
Rune Jensen (24-03-2008)
| Kommentar Fra : Rune Jensen |
Dato : 24-03-08 15:09 |
|
On Mar 24, 9:59 pm, Rune Jensen <runeofdenm...@gmail.com> wrote:
> Det kunne lyde, som om du kunne have fordel af at bruge noget
> Serverside include.
...der gik lige en prås op for mig. Redningen hedder formentlig value,
og det felt, du skal have skal så være hidden, hvis du vil have en
knap. Læs f.eks. her: http://www.w3schools.com/tags/tag_input.asp
Håber, det kan bruges.
MVH
Rune Jensen
| |
Rune Jensen (26-03-2008)
| Kommentar Fra : Rune Jensen |
Dato : 26-03-08 00:40 |
|
On Mar 24, 9:59 pm, Rune Jensen <runeofdenm...@gmail.com> wrote:
> ...så skal man jo også være sikker på, der ikke kan injectes, og man
> skal også tjekke for, om der kommer menneskelige skrivefejl i URLen,
Hej, Kurt,
Jeg har lidt kommentarer, som jeg skriver her, fordi, de er ret
generelle
Først, så er din approach med at sende variablene som tal eller tekst
i stedet for at lade en variabel være en sti til et billede netop den
rigtige. Jo simplere, dine variable er, des lettere er det at tjekke
for, om de er valide (og søgemaskiner vil også have lettere ved at
indeksere de sider). Så den er helt fin.
Yderligere om sikkerhed vulnerability og bots:
------------------------------------------------------------------
1. Det er ikke sikkert, du opdager, du er inficeret. Botter skjuler
deres spor godt.
2. Det er ikke nødvendigvis kun dig, det går ud over, hvis botter får
inficeret din side (som jeg har forstået det), for der findes masser
af hjemmesideejere som huser botter uden at vide det, som spammer
andre sider, og de hjemmesideejere er jo uskyldige, men er blevet
inficeret, fordi de ikke havde taget hensyn til sikkerhed
3. Man skal altid tjekke for, at de inputs, man får, og det er, om det
er via querystring eller en POST fra en form eller andet, om de også
er valide. Og det gælder i særlig grad, når man bruger database. Dvs.
hvis du vil bruge en variabel som tal, så skal du tjekke for, at det
kun er tal, du får ind - og yderligere at de tal holder sig indenfor
den grænse, som bruges i siden (f.eks. min og max-sidetal). Samme
gælder med tekst.
Problemerne med sikkerhed bliver meget tit nedprioriteret - fordi det
ikke er noget kunden direkte kan se, der er arbejdet med (og derfor
heller ikke vil betale for). Men læs evt.: http://en.wikipedia.org/wiki/Code_injection
...reelt, så kunne jeg forestille mig noget så simpelt, som en enkelt
ændring af en URL, så den i stedet henviser til en side med malware.
Jeg ved ikke, om man kan få databasen til at lave "ændringer i sig
selv" på den måde, når først man har fundet sikkerhedshullet, men
ellers er der dusinvis andre metoder til at injecte og inficere og
sprede bots og malware til andre. Men helt grundlæggende, så er det i
alles interesse, at man sikkerhedsoptimerer sin side, altså sørg for,
det alene er valide inputs, du får at arbejde med, så er du godt på
vej.
HTML:
----------
Du kan i øjeblikket ikke vise ø (i "Søg igen"), fordi du ikke har
angivet tegnsæt. Du vil yderligere kunne "tjene" lidt, hvis du også
angiver en DOC type. En DOC type gør det lettere at lave siderne mere
ens imellem browserne. Om dette læs evt.: http://www.hintzmann.dk/articles/doctype/
MVH
Rune Jensen
| |
Kurt G (26-03-2008)
| Kommentar Fra : Kurt G |
Dato : 26-03-08 11:09 |
|
"Rune Jensen" <runeofdenmark@gmail.com> skrev i en meddelelse
news:4bb3205b-ecd5-4a88-94dc-015075edd082@t54g2000hsg.googlegroups.com...
On Mar 24, 9:59 pm, Rune Jensen <runeofdenm...@gmail.com> wrote:
> ...så skal man jo også være sikker på, der ikke kan injectes, og man
> skal også tjekke for, om der kommer menneskelige skrivefejl i URLen,
Hej, Kurt,
Jeg har lidt kommentarer, som jeg skriver her, fordi, de er ret
generelle
Først, så er din approach med at sende variablene som tal eller tekst
i stedet for at lade en variabel være en sti til et billede netop den
rigtige. Jo simplere, dine variable er, des lettere er det at tjekke
for, om de er valide (og søgemaskiner vil også have lettere ved at
indeksere de sider). Så den er helt fin.
Yderligere om sikkerhed vulnerability og bots:
------------------------------------------------------------------
1. Det er ikke sikkert, du opdager, du er inficeret. Botter skjuler
deres spor godt.
2. Det er ikke nødvendigvis kun dig, det går ud over, hvis botter får
inficeret din side (som jeg har forstået det), for der findes masser
af hjemmesideejere som huser botter uden at vide det, som spammer
andre sider, og de hjemmesideejere er jo uskyldige, men er blevet
inficeret, fordi de ikke havde taget hensyn til sikkerhed
3. Man skal altid tjekke for, at de inputs, man får, og det er, om det
er via querystring eller en POST fra en form eller andet, om de også
er valide. Og det gælder i særlig grad, når man bruger database. Dvs.
hvis du vil bruge en variabel som tal, så skal du tjekke for, at det
kun er tal, du får ind - og yderligere at de tal holder sig indenfor
den grænse, som bruges i siden (f.eks. min og max-sidetal). Samme
gælder med tekst.
Problemerne med sikkerhed bliver meget tit nedprioriteret - fordi det
ikke er noget kunden direkte kan se, der er arbejdet med (og derfor
heller ikke vil betale for). Men læs evt.:
http://en.wikipedia.org/wiki/Code_injection
....reelt, så kunne jeg forestille mig noget så simpelt, som en enkelt
ændring af en URL, så den i stedet henviser til en side med malware.
Jeg ved ikke, om man kan få databasen til at lave "ændringer i sig
selv" på den måde, når først man har fundet sikkerhedshullet, men
ellers er der dusinvis andre metoder til at injecte og inficere og
sprede bots og malware til andre. Men helt grundlæggende, så er det i
alles interesse, at man sikkerhedsoptimerer sin side, altså sørg for,
det alene er valide inputs, du får at arbejde med, så er du godt på
vej.
HTML:
----------
Du kan i øjeblikket ikke vise ø (i "Søg igen"), fordi du ikke har
angivet tegnsæt. Du vil yderligere kunne "tjene" lidt, hvis du også
angiver en DOC type. En DOC type gør det lettere at lave siderne mere
ens imellem browserne. Om dette læs evt.:
http://www.hintzmann.dk/articles/doctype/
MVH
Rune Jensen
------------------------
Tak for tipsene og hjælpen.
Jeg er nu klar over, at jeg skal have lavet sikkerhedscheck, som minimum på,
at det er de forventede formater og størrelser.
Hvad du mener med at tjene lidt ved DOC-typer, forstår jeg ikke. KAn du
uddybe det?
Mvh Kurt
| |
Rune Jensen (26-03-2008)
| Kommentar Fra : Rune Jensen |
Dato : 26-03-08 12:59 |
|
On 26 Mar., 11:09, "Kurt G" <kur...@guldbaek.net> wrote:
> Tak for tipsene og hjælpen.
Selvtak;)
> Hvad du mener med at tjene lidt ved DOC-typer, forstår jeg ikke. KAn du
> uddybe det?
Ja... En doc type vil sætte IE i standard-modus, hvilket vil sige, den
vil følge standarderne (så godt den nu kan), som f.eks. FF gør i
forvejen. Hvis kke der er en sådan, går den automatisk i en slags
fejlsikret tilstand, kaldet QUIRKS-mode, som er unikt for lige IE (den
opfatter din kode anderledes, mere slapt). Det betyder igen, det vil
være nemmere at lave et design, som er ens i mellem browserne, hvis IE
er i standard-tilstand.
Sålænge, du har et rimelig "løst" design, dvs. det er ikke pixel-nært,
vil du måske ikke lægge mærke til det, men ønsker du (på et
tidspunkt?) at lave lidt mere avanceret design, og skal det samtidig
"ligne hinanden" på de forskellige browsere, så kan det virkelig
hjælpe hvis der er DOC type. Og man kan kæmpe mange timer med
Conditional Comments og andet skrammel (efter min mening er CC noget
skrammel, men man skal jo passe på med, hvad man siger;) ) hvis den
ene browser kører sit eget løb, mens de andre følger standarderne. Så
hvis du bliver lidt mere avanceret i designet, og gerne vil have mere
pixelnært design, så er en DOC type nærmest uundgåelig.
Der er også den helt grundlæggende, at hvis du spørger omkring nogle
problemer med design i designgrupperne (webdesign og webdesign-html),
så kan du komme ud for, de beder dig om at validere siderne, og det
kan man ikke uden en DOC type.
...mht til tegnsættet, så skal det ind efter DOC typen. Jeg kan ikke
huske, hvordan og hvorledes, for efterhånden er jeg blevet så doven,
så jeg har bare nogle standard-udkast, som jeg starter fra, og så
glemmer jeg selvfølgelig lykkeligt fremgangsmåden, men der burde være
en forklaring på både doc type og tegnsæt på linket til hintzmann...
ellers, så sidder der også nogle kloge mennesker i webdesign.html. Det
er fra dem (og den anden webdesign-gruppe), jeg selv har lært langt
det meste om HTML og CSS. De vil måske også kunne uddybe forskellen på
docype/ikke doctype og hvorfor -
PS. Jeg fandt lige dette:
http://www.hjemmesideskolen.dk/html/elmnt/dtd.asp
MVH
Rune Jensen
| |
Jørn Andersen (26-03-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 26-03-08 23:44 |
|
On Wed, 26 Mar 2008 11:58:33 -0700 (PDT), Rune Jensen
<runeofdenmark@gmail.com> wrote:
>lidt mere avanceret design, og skal det samtidig
>"ligne hinanden" på de forskellige browsere, så kan det virkelig
>hjælpe hvis der er DOC type.
Absolut.
>Og man kan kæmpe mange timer med
>Conditional Comments og andet skrammel (efter min mening er CC noget
>skrammel, men man skal jo passe på med, hvad man siger;) ) hvis den
>ene browser kører sit eget løb, mens de andre følger standarderne.
CC er ikke som sådan "noget skrammel" - men du har selvfølgelig ret i,
at man skal tænke sig om.
Som jeg ser det, så er det på to forskellige niveauer:
Hvis man har et grundlæggende dårligt design - som måske ikke engang
validerer, eller ikke har en DOCTYPE - så kan man bruge oceaner af tid
på at rette ind efter hver enkelt browser.
Men hvis man starter med et fornuftigt design, som validerer og har en
fornuftig DOCTYPE, så kan man begynde at kigge på browser-forskelle.
Langt de fleste forskelle kan elimineres ved at nulstille
default-værdier (margin, padding, border osv.).
Når det er gjort kan der være enkelte mindre "særheder" (især for IE6).
Her man kan enten bruge diverse "hacks" eller man kan bruge Conditional
Comments.
Efter min mening er CC en langt mere veldefineret måde at "ramme" en
specifik (IE-) browser på, og indtil browserne bliver 100 pct.
standrad-overholdende, kunne man ønske, at andre browser-fabrikanter
ville tilslutte sig den metode.
Nu er det jo som regel IE6, der er problemet - men der altså også andre
browsere, der har "særheder".
Så, ja, hvis man starter med at tilpasse med CC, hacks og andet, så er
det noget skrammel. Men når man har lavet det rigtigt fra bunden, så kan
man i nogle situationer bruge CC på en "pæn" måde til at kompensere for
særheder.
Bare min mening.
Mvh. Jørn
--
Jørn Andersen,
Brønshøj
| |
Stig Johansen (27-03-2008)
| Kommentar Fra : Stig Johansen |
Dato : 27-03-08 05:42 |
|
Rune Jensen wrote:
> De vil måske også kunne uddybe forskellen på
> docype/ikke doctype og hvorfor -
Nu er jeg ikke webdesigner, men jeg kan lave en analogi i forhold til ASP.
Vi har før været inde på starten:
<%@language=vbscript%>
Det er en sprog deklaration, der fortæller at den kode, der kommer er
vbscript.
Det er _default_ på IIS, men ikke en naturlov.
Man kan også bruge jscript i ASP:
<%@language=jscript%>
Så er det jscript, der kommer.
Hvis man undlader deklarationen, og koder vbscript, vil det fejle på en IIS,
der default er sat op til jscript, og vice versa.
På samme måde med browsere, dor er det et _regelsæt_, og ikke et sprog.
Hver doctype har en URL til selve DTD'et, og eksempelvis xhtml1 strict:
< http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>
Her står regelsættet klart og tydeligt ;) - nej DTD er noget skidt at læse
uden hjælpeprogrammer.
Her bruger jeg selv XMLSpy, men der skal man vistnok rive godt i mølposen.
Men jeg har set at der med xHTML2.0 kommer XmlSchema deklaration også.
Nå, men det jeg ville sige er, at uden en doctype, og dermed henvisning til
regelsæt, er de enkelte browsere nødt til selv at lave et kvalificeret
_gæt_ ud fra HTML'et.
--
Med venlig hilsen
Stig Johansen
| |
Rune Jensen (27-03-2008)
| Kommentar Fra : Rune Jensen |
Dato : 27-03-08 02:18 |
|
On Mar 27, 5:41 am, Stig Johansen <wopr...@gmaill.com> wrote:
> Nå, men det jeg ville sige er, at uden en doctype, og dermed henvisning til
> regelsæt, er de enkelte browsere nødt til selv at lave et kvalificeret
> _gæt_ ud fra HTML'et.
Måske man kan sammenligne det med menneskesprog. Selvom Norsk og Dansk
ligner hinanden, så er der altså forskelle. Hvis man fortæller en
normand, at man synes nordmænd er flinke og rare, skal man lige blive
enige om, om det er ment på dansk (hvad det jo nok er) eller norsk. På
Norsk er flink=dygtig og rar=mærkelig... Mødte engang et par nordmænd,
som også var lidt sproginteresserede, så derfra jeg lærte det. Men
altså, hvis man ikke specificerer sprogtype, når man taler med folk,
svenskere eller nordmænd, som ikke taler dansk, så kan det man siger
misforstås, og så skal man ud i et "kvalificeret gæt" som modtager.
Og hvis man overfører det til browsere, så er IE nok den
allerdårligste til at lave kvalificerede gæt. Hvad det rent faktisk
kan betyde er (blandt mange ting), at hvis man laver en boks med en
DIV, og ikke sætter DOC type, så vil IE opfatte margin og padding
forskelligt fra alle andre browsere. Og derfor kan designet "skride" i
den browser, men ikke i andre (i nær samme grad). Det er så her, at
nogen vil benytte CC, og som Jørgen er inde på, så kan det give
gevaldige problemer den vej (altså kompensere for IE QUIRKS-mode fejl
med CC). Med en DOC type er det hele sat fra starten, og browseren er
klar over, hvilket sprog, som tales. Om man så vil kompensere for
"dialektforskelle" med CC, er jo en smagssag;)...selv har jeg ikke
benyttet hverken hacks eller CC på min nyeste side, der som
udgangspunkt vises ens fra IE5 og op (samt selvfølgelig alle
standardoverholdende browsere).
MVH
Rune Jensen
| |
|
|