|
| Validatoren finder 20 fejl - jeg ikke kan ~ Fra : Jens R. Rasmussen |
Dato : 09-03-10 17:34 |
|
Hej/
Når jeg har skrevet en asp-side og fået den til at virke med min
browser, tjekker jeg altid efterfølgende siden for korrekt
syntaks med valideringssiden fra W3C, og det sker jævnligt at
validatoren finder fejl, som min browser har båret over med. Ofte
vil en enkelt fejl genere en hav af fejlmeddelelser.
Denne gang har jeg fået valideret siden tumpemedlem.asp, som
virker såvel med IE som med Firefox, men validatoren påpeger 20
fejl. Næste alle fejl er forkert font og manglende slut-tags.
Fejl som jeg ikke kan se er i mit dokument.
Fejlmeddelelserne er eksempelvis
• Line 42, column : Premature end of data in tag html line 2
…rial" size=2>/tumpemedlem.asp</font><font face="Arial" size=2>,
line 77</font>
1. end tag for X omitted, but OMITTAG NO was specified
✉
You may have neglected to close an element, or perhaps you meant
to "self-close" an element, that is, ending it with "/>" instead
of ">".
• Line 38, column 37: end tag for "p" omitted, but OMITTAG NO was
specified
<p>Microsoft VBScript runtime </font> <font face="Arial"
size=2>error '800a000d…
• Line 37, column 179: element "font" undefined
…='tumpemedlemmer.asp'>Retur til login-siden</a></h4> <font
face="Arial" size=2>
Osv.
Validatorens listning af teksten er:
37. <h4>Du skal angive såvel Brugernavn som Password.<br />Gå
tilbage og ret de indtastede data. <a
href='tumpemedlemmer.asp'>Retur til login-siden</a></h4> <font
face="Arial" size=2>
38. <p>Microsoft VBScript runtime </font> <font face="Arial"
size=2>error '800a000d'</font>
39. <p>
40. <font face="Arial" size=2>Type mismatch: 'rs'</font>
41. <p>
42. <font face="Arial" size=2>/tumpemedlem.asp</font><font
face="Arial" size=2>, line 77</font>
Og mine programstumper startende med l. 37 er :
….
Response.Write "<h4>Du skal angive såvel Brugernavn som
Password.<br />Gå tilbage og ret de indtastede data. <a
href='tumpemedlemmer.asp'>Retur til login-siden</a></h4>"
Session("Kunde") = ""
End If
If Session("kunde") = "maaske-medlem" then
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open DSN
strSQL = "Select * From Tumpemedlemmer Where Brugerid = '" &
brugernavnff & "' AND Loesen = '" & brugerloesen & "'"
set rs = Conn.Execute(strSQL)
If rs.eof then
' Databasen kender ikke det angivne bruger-id og
password
response.write "<h4>Der er fejl i bruger-id og/eller
password.</h4><ul><li>Gå tilbage og prøv igen. <a
href='tumpemedlemmer.asp'>Retur til login-siden</a></li>"
Response.write "<li>Jeg kan ikke huske mit brugernavn
og password. <a href='tumpeglemtpassword.asp'>Hjælp
mig</a>!</li></ul>"
Session("Kunde") = "fejl"
Elseif (not rs.eof AND (StrComp(brugernavnff, rs("Brugerid"),
vbBinaryCompare) <> 0 OR StrComp(brugerloesen, rs("Loesen"),
vbBinaryCompare) <> 0)) THEN
' Der er fejl i store og små bogstaver
response.write "<h4>Der er fejl i bruger-id og/eller
password. <br />Husk at store og små bogstaver skal indtastes
korrekt - så tjek om Caps Lock måske er sat til! <br />Gå tilbage
og prøv igen . <a href='tumpemedlemmer.asp'>Retur til
login-siden</a></h4>"
Session("kunde") = "fejl"
Elseif (not rs.eof AND StrComp(brugernavnff, rs("Brugerid"),
vbBinaryCompare) = 0 AND StrComp(brugerloesen, rs("Loesen"),
vbBinaryCompare) = 0) THEN
Jeg vil blive utrolig glad, hvis nogen ud fra ovenstående virvar
kan påpege min(e) fejl.
Nu er linjerne taget ud af en større sammenhæng – men jeg synes
ikke jeg vil vedlægge hele dokumentet her, da jeg tror fejlen er
koncentreret omkring disse få linjer 37-42 i validatorens
oplistning af mit program (efter ASP-oversættelse).
Mvh.
/jens
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Stig Johansen (09-03-2010)
| Kommentar Fra : Stig Johansen |
Dato : 09-03-10 18:06 |
|
Jens R. Rasmussen wrote:
> 38. <p>Microsoft VBScript runtime </font> <font face="Arial"
> size=2>error '800a000d'</font>
> 39. <p>
> 40. <font face="Arial" size=2>Type mismatch: 'rs'</font>
> 41. <p>
> 42. <font face="Arial" size=2>/tumpemedlem.asp</font><font
> face="Arial" size=2>, line 77</font>
.....
> Jeg vil blive utrolig glad, hvis nogen ud fra ovenstående virvar
> kan påpege min(e) fejl.
Der er sikkert ingen fejl, men du bruger (formentlig) validatoren til en
side, der kræver login, eller andre former for sessionvariable.
Validatoren læser den side du beder den om, uden forudgående kendskab til
forløbet, og får en fejlmelding fra dit ASP script.
Det du skal kigge efter er (udklip fra ovenstående):
.....
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'rs'
/tumpemedlem.asp, line 77
.....
Der er mao tale om, at dit ASP fejler overfor validatoren og returnerer en
ikke HTML compliant side.
Kig i linie 77 i dit ASP script.
--
Med venlig hilsen
Stig Johansen
| |
Jens R. Rasmussen (09-03-2010)
| Kommentar Fra : Jens R. Rasmussen |
Dato : 09-03-10 20:21 |
|
Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> Der er sikkert ingen fejl, men du bruger (formentlig) validatoren til en
> side, der kræver login, eller andre former for sessionvariable.
>
> Validatoren læser den side du beder den om, uden forudgående kendskab til
> forløbet, og får en fejlmelding fra dit ASP script.
>
> Det du skal kigge efter er (udklip fra ovenstående):
> .....
> Microsoft VBScript runtime error '800a000d'
> Type mismatch: 'rs'
> /tumpemedlem.asp, line 77
> .....
>
> Der er mao tale om, at dit ASP fejler overfor validatoren og returnerer
en
> ikke HTML compliant side.
>
> Kig i linie 77 i dit ASP script.
>
> --
> Med venlig hilsen
> Stig Johansen
Tak Stig - endnu en gang er du min hurtige og sikre redningsmand. Jeg
opdagede, takket være dig, at ved kigge på linje 77, at her referede jeg
til nogel udtræk rs("...") uanset om logindata var fundet i basen eller ej.
Så validatoren blev bedt om at kigge på et rs("..") den aldrig havde
udtrukket
NÅ - men et sidste sprøgmål - fra en anden side, som hedder næsten det
samm, nemlig tumpemedlemmer.asp, har jeg også en fejl, der er svær at
finde. Igen viser FireFox og IE siden som forventet, og validatoren har
også kun lykønskninger til siden
Men ved IE står der nede i venstra hjørne en gul advarselstrekant, som
fortæller at siden er blevet udført på trods af fejl. Og fejlen er:
Detaljer om fejl på websiden
Brugeragent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1;
Trident/4.0)
Tidsstempling: Tue, 9 Mar 2010 18:59:20 UTC
Meddelelse: Tegnet ';' var ventet
Linje: 48
Tegn: 17
Kode: 0
URI: http://www.vinvenner.dk/tumpemedlemmer.asp
Linje 48 i min asp-kode hedder: set rs = Conn.Execute(strSQL)
så her er næppe noget galt og da slet ikke med tegn 17.
I kildekoden ses linje 48 som
<table><tr><td class='op'><a href='tumpebilleder/8.jpg'><img
src='tumpebilleder/8small.jpg' title='tumpebillede' alt='?' /></a></td><td
class='op'>Alice Rudolff</td><td class='op'>Haderslevgade 9,
4.tv., 1671 københavn V</td><td class='op'>33245602<br
/>29443612<br /></td><td class='op'><a href='mailto:Rudloff@post.tele.dk'
title='e-mail1' onmouseover='this.href=mailto:Rudloff@post.tele.dk'
onfocus='this.href=mailto:Rudloff@post.tele.dk'>mail1</a></td><td
class='op'></td><td class='op'>Medlem siden 2. halvår 2004, og medlem
dette semester.</td></tr>
Tegn 17 er "l" i class - så her skal næppe være et ";"
Dette er en løkke som gentages 30 gange og jeg får også fejltrekanten med
30 ens fejlmeddelelser - så det er her fejlen er. Måske er noget af
syntaksen ikke understøttet af IE - kan det være der fejlen er - for
Firefox meddeler intet om fejl - det wer kun IE.
I mit css er "op" defineret som
td.op {vertical-align:top;}
mvh
/jens
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Leif Neland (09-03-2010)
| Kommentar Fra : Leif Neland |
Dato : 09-03-10 22:00 |
|
Jens R. Rasmussen skrev:
> Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
>> Der er sikkert ingen fejl, men du bruger (formentlig) validatoren til en
>> side, der kræver login, eller andre former for sessionvariable.
>>
>> Validatoren læser den side du beder den om, uden forudgående kendskab til
>> forløbet, og får en fejlmelding fra dit ASP script.
>>
>> Det du skal kigge efter er (udklip fra ovenstående):
>> .....
>> Microsoft VBScript runtime error '800a000d'
>> Type mismatch: 'rs'
>> /tumpemedlem.asp, line 77
>> .....
>>
>> Der er mao tale om, at dit ASP fejler overfor validatoren og returnerer
> en
>> ikke HTML compliant side.
>>
>> Kig i linie 77 i dit ASP script.
>>
>> --
>> Med venlig hilsen
>> Stig Johansen
>
> Tak Stig - endnu en gang er du min hurtige og sikre redningsmand. Jeg
> opdagede, takket være dig, at ved kigge på linje 77, at her referede jeg
> til nogel udtræk rs("...") uanset om logindata var fundet i basen eller ej.
> Så validatoren blev bedt om at kigge på et rs("..") den aldrig havde
> udtrukket
>
> NÅ - men et sidste sprøgmål - fra en anden side, som hedder næsten det
> samm, nemlig tumpemedlemmer.asp, har jeg også en fejl, der er svær at
> finde. Igen viser FireFox og IE siden som forventet, og validatoren har
> også kun lykønskninger til siden
> Men ved IE står der nede i venstra hjørne en gul advarselstrekant, som
> fortæller at siden er blevet udført på trods af fejl. Og fejlen er:
>
> Detaljer om fejl på websiden
>
> Brugeragent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1;
> Trident/4.0)
> Tidsstempling: Tue, 9 Mar 2010 18:59:20 UTC
>
> Meddelelse: Tegnet ';' var ventet
> Linje: 48
> Tegn: 17
> Kode: 0
> URI: http://www.vinvenner.dk/tumpemedlemmer.asp
>
> Linje 48 i min asp-kode hedder: set rs = Conn.Execute(strSQL)
> så her er næppe noget galt og da slet ikke med tegn 17.
Browseren ved ikke, hvordan html-koden er lavet; den kender ikke noget
til din asp-kode.
>
> I kildekoden ses linje 48 som
> <table><tr><td class='op'><a href='tumpebilleder/8.jpg'><img
> src='tumpebilleder/8small.jpg' title='tumpebillede' alt='?' /></a></td><td
> class='op'>Alice Rudolff</td><td class='op'>Haderslevgade 9,
> 4.tv., 1671 københavn V</td><td class='op'>33245602<br
> />29443612<br /></td><td class='op'><a href='mailto:Rudloff@post.tele.dk'
> title='e-mail1' onmouseover='this.href=mailto:Rudloff@post.tele.dk'
> onfocus='this.href=mailto:Rudloff@post.tele.dk'>mail1</a></td><td
> class='op'></td><td class='op'>Medlem siden 2. halvår 2004, og medlem
> dette semester.</td></tr>
>
> Tegn 17 er "l" i class - så her skal næppe være et ";"
<a href='mailto:Rudloff@post.tele.dk' title='e-mail1'
onmouseover='this.href=mailto:Rudloff@post.tele.dk'
onfocus='this.href=mailto:Rudloff@post.tele.dk'>mail1</a>
Hvad har du gang i her? Vil du være helt sikker på at spambotterne ser
emailadressen? Hvorfor bruger du to javascriptmetoder til at sætte href
til noget, den allerede er?
Og derudover, så er
this.href=mailto:Rudloff@post.tele.dk
syntaktisk forkert, du mangler anførselstegn om strengen. Det 17, tegn
er ":". Altså, du sætter this.href lig variablen mailto, der sikkert er
udefineret, og så kommer et umotiveret kolon.
Leif
>
> Dette er en løkke som gentages 30 gange og jeg får også fejltrekanten med
> 30 ens fejlmeddelelser - så det er her fejlen er. Måske er noget af
> syntaksen ikke understøttet af IE - kan det være der fejlen er - for
> Firefox meddeler intet om fejl - det wer kun IE.
>
> I mit css er "op" defineret som
> td.op {vertical-align:top;}
>
> mvh
> /jens
>
>
>
--
Jeg foretrækker min the tilberedt efter BS6008
| |
Birger Sørensen (09-03-2010)
| Kommentar Fra : Birger Sørensen |
Dato : 09-03-10 22:07 |
|
Jens R. Rasmussen sendte dette med sin computer:
> Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
>> Der er sikkert ingen fejl, men du bruger (formentlig) validatoren til en
>> side, der kræver login, eller andre former for sessionvariable.
>>
>> Validatoren læser den side du beder den om, uden forudgående kendskab til
>> forløbet, og får en fejlmelding fra dit ASP script.
>>
>> Det du skal kigge efter er (udklip fra ovenstående):
>> .....
>> Microsoft VBScript runtime error '800a000d'
>> Type mismatch: 'rs'
>> /tumpemedlem.asp, line 77
>> .....
>>
>> Der er mao tale om, at dit ASP fejler overfor validatoren og returnerer en
>> ikke HTML compliant side.
>>
>> Kig i linie 77 i dit ASP script.
>>
>> --
>> Med venlig hilsen
>> Stig Johansen
>
> Tak Stig - endnu en gang er du min hurtige og sikre redningsmand. Jeg
> opdagede, takket være dig, at ved kigge på linje 77, at her referede jeg
> til nogel udtræk rs("...") uanset om logindata var fundet i basen eller ej.
> Så validatoren blev bedt om at kigge på et rs("..") den aldrig havde
> udtrukket
>
> NÅ - men et sidste sprøgmål - fra en anden side, som hedder næsten det
> samm, nemlig tumpemedlemmer.asp, har jeg også en fejl, der er svær at
> finde. Igen viser FireFox og IE siden som forventet, og validatoren har
> også kun lykønskninger til siden
> Men ved IE står der nede i venstra hjørne en gul advarselstrekant, som
> fortæller at siden er blevet udført på trods af fejl. Og fejlen er:
>
> Detaljer om fejl på websiden
>
> Brugeragent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1;
> Trident/4.0)
> Tidsstempling: Tue, 9 Mar 2010 18:59:20 UTC
>
> Meddelelse: Tegnet ';' var ventet
> Linje: 48
> Tegn: 17
> Kode: 0
> URI: http://www.vinvenner.dk/tumpemedlemmer.asp
>
> Linje 48 i min asp-kode hedder: set rs = Conn.Execute(strSQL)
> så her er næppe noget galt og da slet ikke med tegn 17.
>
> I kildekoden ses linje 48 som
> <table><tr><td class='op'><a href='tumpebilleder/8.jpg'><img
> src='tumpebilleder/8small.jpg' title='tumpebillede' alt='?' /></a></td><td
> class='op'>Alice Rudolff</td><td class='op'>Haderslevgade 9,
> 4.tv., 1671 københavn V</td><td class='op'>33245602<br
> />29443612<br /></td><td class='op'><a href='mailto:Rudloff@post.tele.dk'
> title='e-mail1' onmouseover='this.href=mailto:Rudloff@post.tele.dk'
> onfocus='this.href=mailto:Rudloff@post.tele.dk'>mail1</a></td><td
> class='op'></td><td class='op'>Medlem siden 2. halvår 2004, og medlem
> dette semester.</td></tr>
>
> Tegn 17 er "l" i class - så her skal næppe være et ";"
>
> Dette er en løkke som gentages 30 gange og jeg får også fejltrekanten med
> 30 ens fejlmeddelelser - så det er her fejlen er. Måske er noget af
> syntaksen ikke understøttet af IE - kan det være der fejlen er - for
> Firefox meddeler intet om fejl - det wer kun IE.
>
> I mit css er "op" defineret som
> td.op {vertical-align:top;}
>
> mvh
> /jens
Det skyldes fejl på apostrofferne....
f.eks.
onfocus='this.href=mailto:Rudloff@post.tele.dk'
mangler inderste angivelse. som f.eks.
onfocus="this.href='mailto:Rudloff@post.tele.dk'"
(eller byt om på " og ', som du nu selv syntes)
href skal være en streng, eller en var, der evaluerer til en streng...
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk
| |
Jens R. Rasmussen (10-03-2010)
| Kommentar Fra : Jens R. Rasmussen |
Dato : 10-03-10 00:31 |
|
Svar til leif:
ja det er ikke godt nok. Jeg kender de små konverteringsprogrammer, som ligger
som artikler, og hvor jeg kan hente html.-koden godt krypteret. Men da jeg
henter en lang række e-mail fra en database har jeg brug for en lille
funktion, der kan lave krypteringer for mig. Findes den - eller skal jeg selv
koden den?
Svar til Birger:
Ja det er (for mig) frygteligt svært med de anførselstegn. Det går godt
sålængde vi kun har et enkelt par som fx med html-koden
<a href="mailto: hans@petersen.dk"> send </a>
Der vel under asp hedder
Response.write "<a href='mailto: hans@petersen.dk'> send </a>"
Og hvis hans@petersen.dk er gemt i variablen mail, er det vel
Response.write "<a href='mailto:" & mail & "'> send </a>"
Og jeg troede faktisk at min kode var korrekt - men det kan jeg forstå på det
du siger, at det er den ikke.
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Erik Ginnerskov (10-03-2010)
| Kommentar Fra : Erik Ginnerskov |
Dato : 10-03-10 00:45 |
|
Jens R. Rasmussen wrote:
> Svar til leif:
> ja det er ikke godt nok. Jeg kender de små konverteringsprogrammer,
> som ligger som artikler, og hvor jeg kan hente html.-koden godt
> krypteret. Men da jeg henter en lang række e-mail fra en database har
> jeg brug for en lille funktion, der kan lave krypteringer for mig.
> Findes den - eller skal jeg selv koden den?
http://hjemmesideskolen.dk/services/adressekoder.php
--
Med venlig hilsen
Erik Ginnerskov
http://ginnerskov.dk - http://html-faq.dk
| |
Jens R. Rasmussen (11-03-2010)
| Kommentar Fra : Jens R. Rasmussen |
Dato : 11-03-10 15:45 |
|
Erik Ginnerskov wrote in dk.edb.internet.webdesign.serverside.asp:
> Jens R. Rasmussen wrote:
> > Svar til leif:
> > ja det er ikke godt nok. Jeg kender de små konverteringsprogrammer,
> > som ligger som artikler, og hvor jeg kan hente html.-koden godt
> > krypteret. Men da jeg henter en lang række e-mail fra en database
har
> > jeg brug for en lille funktion, der kan lave krypteringer for mig.
> > Findes den - eller skal jeg selv koden den?
>
> http://hjemmesideskolen.dk/services/adressekoder.php
>
> --
> Med venlig hilsen
> Erik Ginnerskov
> http://ginnerskov.dk - http://html-faq.dk
>
>
Ja den side kender jeg godt. Men det jeg ønsker er et lille script, som
jeg kan lægge ind på min asp-side. Altså en funktion jeg kan kalde med
e-mailadresse som parameter, og så få returneret den kodede
e-mailadresse som svar. Gerne med ekstra java-kode inkluderet.
Så jeg i mit asp-program kan skrive
Response.write "mail= " & function(rs("e-mail")
mvh
/Jens
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Stig Johansen (11-03-2010)
| Kommentar Fra : Stig Johansen |
Dato : 11-03-10 15:49 |
|
Jens R. Rasmussen wrote:
> Ja den side kender jeg godt. Men det jeg ønsker er et lille script, som
> jeg kan lægge ind på min asp-side. Altså en funktion jeg kan kalde med
> e-mailadresse som parameter, og så få returneret den kodede
> e-mailadresse som svar. Gerne med ekstra java-kode inkluderet.
>
> Så jeg i mit asp-program kan skrive
>
> Response.write "mail= " & function(rs("e-mail")
Den løsning har du fået i mit andet svar til dig.
--
Med venlig hilsen
Stig Johansen
| |
Jens R. Rasmussen (11-03-2010)
| Kommentar Fra : Jens R. Rasmussen |
Dato : 11-03-10 17:00 |
|
Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> Jens R. Rasmussen wrote:
>
> > Ja den side kender jeg godt. Men det jeg ønsker er et lille script, som
> > jeg kan lægge ind på min asp-side. Altså en funktion jeg kan kalde med
> > e-mailadresse som parameter, og så få returneret den kodede
> > e-mailadresse som svar. Gerne med ekstra java-kode inkluderet.
> >
> > Så jeg i mit asp-program kan skrive
> >
> > Response.write "mail= " & function(rs("e-mail")
>
> Den løsning har du fået i mit andet svar til dig.
>
> --
> Med venlig hilsen
> Stig Johansen
ja-tak - det er jeg klar over. jeg ville blot lige kvittere. Jeg er i fuld
gang med at afprøve dit forslag. Itv. ser det lovende ud - og 'dødsmart'
mvh
/Jens
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Stig Johansen (10-03-2010)
| Kommentar Fra : Stig Johansen |
Dato : 10-03-10 04:09 |
|
"Jens R. Rasmussen" <jens.r.rasmussen@uni-c.dk> wrote in message
news:4b96da23$0$286$14726298@news.sunsite.dk...
> Svar til leif:
> ja det er ikke godt nok. Jeg kender de små konverteringsprogrammer, som
ligger
> som artikler, og hvor jeg kan hente html.-koden godt krypteret. Men da jeg
> henter en lang række e-mail fra en database har jeg brug for en lille
> funktion, der kan lave krypteringer for mig. Findes den - eller skal jeg
selv
> koden den?
>
> Svar til Birger:
> Ja det er (for mig) frygteligt svært med de anførselstegn. Det går godt
> sålængde vi kun har et enkelt par som fx med html-koden
> <a href="mailto: hans@petersen.dk"> send </a>
> Der vel under asp hedder
> Response.write "<a href='mailto: hans@petersen.dk'> send </a>"
> Og hvis hans@petersen.dk er gemt i variablen mail, er det vel
> Response.write "<a href='mailto:" & mail & "'> send </a>"
>
> Og jeg troede faktisk at min kode var korrekt - men det kan jeg forstå på
det
> du siger, at det er den ikke.
Koden er korrekt, men det bot'erne ser er det samme som browseren ser (under
vis kilde).
Jeg har lavet et lille eksempel med encoding i ASP, og decoding i
javascript:
http://w-o-p-r.dk/test/mail.enc.asp
Ideen er at lave mailadresser om til et tal array, som kan decodes i
javascript.
Jeg går ud fra du i dit program har en eller anden tæller når du udskriver
dine adresser, her kalder jeg den counter.
Når emailadresserne udskrives, gør jeg det med funktionen tonumber (se
senere):
.....
Response.Write "<li><a id='mail"+ cStr(counter) +"'
href='"+tonumber(emailarray(counter))+"'>email</a></li>"
----
emailarray(counter) er email adressen, som i dit program åbenmart hedder
mail (skulle det ikke være rs("mail")?)
Men erstat 'emailarray(counter)' med det aktuelle.
(PS: fjern onfocus og mouseover).
Vi har nu en stribe emails med id=mail0,id=mail1 osv..
Disse indeholder blot en talrække, og er intetsigende for bot'er.
Disse talrækker bliver lavet om i javascriptet, der blover kaldt vha <body
onload="convertmail();">
Javascriptet kan du finde med vis kilde, og (ASP) funktionen tonumber er
her:
.....
<% Function tonumber(email)
Dim C
tonumber=""
for C = 1 to Len(email)
tonumber=tonumber+cStr(Asc(mid(email,C,1)))+","
next
end function
.....
PS: du skal ikke tage dig af jeg bruger + i stedet for &, det er fordi jeg
godt kan lide typestærke(=selvkorrigerende) 'ting'.
I eksemplet kan du se hvad vot'erne ser(Vis kilde) og hvad brugerne ser i
browseren.
--
Med venlig hilsen/Best regards
Stig Johansen
| |
Jens R. Rasmussen (12-03-2010)
| Kommentar Fra : Jens R. Rasmussen |
Dato : 12-03-10 18:18 |
|
Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> "Jens R. Rasmussen" <jens.r.rasmussen@uni-c.dk> wrote in message
> news:4b96da23$0$286$14726298@news.sunsite.dk...
hej stig.
Tak for hjælpen. Det går fremad, men virker ikke helt endnu.
Jeg har forstået din asp-kodning med tonumber og har med success lavet såvel
funktionen tonumber som en løkke med
Response.write "<td class='op'><a id='mail" & cStr(counter) & "' href=" &
tonumber(rs("Email1")) & ">mail1</a>"
counter = counter + 1
Resultatet er som forventet en streng med ascii-værdier for hver karakter fra
emailen. Det eneste der undrer mig er, at strengen slutter med komma. Havde jeg
selv skulle kode den havde jeg nok undladt sidste komma.
Herefter har jeg kopieret dine javascripts og som hos dig lagt dem i min
head-sektion. Og har ændret body-taget med tilføjelse af on-load ligesom hos
dig. Andre ændringer har jeg ikke gjort! Det skal jeg måske?
Men det virker ikke. For når jeg trykker på et af hyperlinkene fx mail17, så
får jeg fejlmeddelelsen at browseren ikke kan finde siden http.....103,
117,124,.... hvor tallene er ascii-tegnenen, så de er nok ikke konverteret i
java-scriptet.
Nu er jeg slet ikke kendt med javascript-syntaks, så jeg har lidt svært ved at
fejlsøge. Fx undre det mig at der i convertmail er en variabel emailout, som
tilsyneladende ikke bruges. Nå jeg skal ikke trætte dig med elementære
spørgsmål om javascripting. jeg må dykke ned i det, så jeg 100% forstår dine
scripts - for det gør jeg pt. ikke.
Men hvis du umiddelbart har et gæt på hvorfor mine hyperlinks ikke virker vil
jeg med tak modtage dine kommentarer.
mvh
/Jens
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Stig Johansen (12-03-2010)
| Kommentar Fra : Stig Johansen |
Dato : 12-03-10 20:20 |
|
Jens R. Rasmussen wrote:
> Resultatet er som forventet en streng med ascii-værdier for hver karakter
> fra emailen. Det eneste der undrer mig er, at strengen slutter med komma.
> Havde jeg selv skulle kode den havde jeg nok undladt sidste komma.
Der er to måder at undgå det sidste komma.
Enten kan man strippe det i ASP, eller i javascriptet.
I det her eksempel bliver det sidste komma strippet i javascriptet her:
.....
for ( var c=0;c< sarray.length-1;c++) {
.....
bemærk sarray.length-1 , som sørger for vi ikke får det sidste med.
> Herefter har jeg kopieret dine javascripts og som hos dig lagt dem i min
> head-sektion. Og har ændret body-taget med tilføjelse af on-load ligesom
> hos dig. Andre ændringer har jeg ikke gjort! Det skal jeg måske?
Nej, det burde virke.
> Men det virker ikke. For når jeg trykker på et af hyperlinkene fx mail17,
> så får jeg fejlmeddelelsen at browseren ikke kan finde siden http.....103,
> 117,124,.... hvor tallene er ascii-tegnenen, så de er nok ikke
> konverteret i java-scriptet.
Hvis du får den fejlmelding, så er de ikke konverteret.
> Nu er jeg slet ikke kendt med javascript-syntaks, så jeg har lidt svært
> ved at fejlsøge. Fx undre det mig at der i convertmail er en variabel
> emailout, som tilsyneladende ikke bruges.
Den bliver heller ikke brugt, så det er nok en reminisens fra copy/paste.
> Nå jeg skal ikke trætte dig med
> elementære spørgsmål om javascripting. jeg må dykke ned i det, så jeg 100%
> forstår dine scripts - for det gør jeg pt. ikke.
<body onload="convertmail();">
kalder funktionen convertmail når dokumentet er hentet ind i browseren.
convertmail() gør ca.
find alle elementer med en id="mail"+counter (dvs. mail1,mail2 osv..)
for hver af dem sætter vi href="mailto:'+ fromnumber(..)
Funktionen fromnumber tager en streng "et.eller.andet#tal1,tal2,tal3..."
var sarray = numbers.split('#')[1].split(',');
split er det samme som i ASP, og splitter en streng op i et array, så
split('#') laver et array med to elementer, før og efter # tegnet.
Disse er nummereret 0..1, så numbers.split('#')[1] indeholder element nummer
2, som er den kommasepararede streng.
..split(',') splitter den kommasepararede streng op i et nyt array
indeholdende talværdierne.
String.fromCharCode(sarray[c]) laver asciiværdien om til en karakter.
> Men hvis du umiddelbart har et gæt på hvorfor mine hyperlinks ikke virker
> vil jeg med tak modtage dine kommentarer.
Ikke andet end at du skal sikre dig, at id nummereringen passer med
javascriptet.
Dvs dine mail links skal hedde id='mail0',id='mail1'...
Hvis du har nummereret dem 'mail1','mail2'.. finder javascriptet dem ikke.
Du kan justere nummerrækken ved at ændre:
var counter = 0 ;
til f.eks
var counter = 1 ;
så starter vi med 'mail1','mail2'...
--
Med venlig hilsen
Stig Johansen
| |
Jens R. Rasmussen (20-03-2010)
| Kommentar Fra : Jens R. Rasmussen |
Dato : 20-03-10 17:56 |
|
Tillad mig at vende tilbage (efter en dejlig uge i Rom)
> > Men det virker ikke. For når jeg trykker på et af hyperlinkene fx mail17,
> > så får jeg fejlmeddelelsen at browseren ikke kan finde siden http.....103,
> > 117,124,.... hvor tallene er ascii-tegnenen, så de er nok ikke
> > konverteret i java-scriptet.
>
> Hvis du får den fejlmelding, så er de ikke konverteret.
Jeg tror ikke convertmail() virker hos mig. Jeg har i scriptet tilføjet
sætningen documentwrite("halløj");
hvilket vel skulle resultere i en udskrift på siden. Men den ser jeg heller
ikke.
Jeg har de krævede id'er med mail0, mail1, .... idet tonumber tilsyneladende
virker korrekt.
> <body onload="convertmail();">
> kalder funktionen convertmail når dokumentet er hentet ind i browseren.
hm - tilsyneladende ikke hos mig.
> Med venlig hilsen
> Stig Johansen
udtræk fra vis kode nede i table, tr,td
<a id='mail0' href=82,117,100,108,111,
hvis jeg sammenligner med din kode, så mangler der vist '# foran 82 og et '
efter sidste tegn.
udtræk fra vis kode - <body>
<body onload="convertmail();">
udtræk fra vis kode - under head
<script type="text/javascript">
function fromnumber(numbers) {
var r = '' ;
var sarray = numbers.split('#')[1].split(',');
for ( var c=0;c<sarray.length-1;c++) {
r +=String.fromCharCode(sarray[c]) ;
}
return r ;
}
function convertmail() {
var counter = 0 ;
documentwrite("halløj");
var found = true ;
var email ;
var emailout ;
while (found) {
email = document.getElementById('mail'+counter);
if (email) {
email.href='mailto:'+fromnumber(email.href)
}else{
found=false;
}
counter++;
}
}
</script>
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Stig Johansen (20-03-2010)
| Kommentar Fra : Stig Johansen |
Dato : 20-03-10 18:57 |
|
"Jens R. Rasmussen" <Jens.R.Rasmussen@uni-c.dk> wrote in message
news:4ba4fe3a$0$272$14726298@news.sunsite.dk...
> Tillad mig at vende tilbage (efter en dejlig uge i Rom)
De to drenge snakkede sammen.
- Jeg har en hugorm i sprit.
- Og hvad så, sagde den anden, jeg har en fætter i Rom.
> hvis jeg sammenligner med din kode, så mangler der vist '# foran 82 og et
'
> efter sidste tegn.
lille fejl stor virkning.
Der må være smuttet noget i min copy/paste, for der skal være et # før
javascriptet virker.
Jeg prøver lige at paste hele koden fra eksempet:
.....
<%@ LANGUAGE = VBScript%><%Option Explicit%><%
Dim pagetitle
pagetitle = "Email encoding"
Dim counter
Dim email
Dim emailarray(9)
for counter=0 to 9
emailarray(counter)="navn nr"+cstr(counter)+"@adresse.tld"
next
%><!--#include virtual="/include_files/doctype.inc.asp"-->
<script type="text/javascript">
function fromnumber(numbers) {
var r = '' ;
var sarray = numbers.split('#')[1].split(',');
for ( var c=0;c< sarray.length-1;c++) {
r +=String.fromCharCode(sarray[c]) ;
}
return r ;
}
function convertmail() {
var counter = 0 ;
var found = true ;
var email ;
var emailout ;
while (found) {
email = document.getElementById('mail'+counter);
if (email) {
email.href='mailto:'+fromnumber(email.href)
}else{
found=false;
}
counter++;
}
}
</script>
</head>
<body onload="convertmail();">
<ol>
<%
for counter=0 to 9
Response.Write "<li><a id='mail"+ cStr(counter) +"'
href='#"+tonumber(emailarray(counter))+"'>email</a></li>"
next
%>
</ol>
</body></html>
<% Function tonumber(email)
Dim C
tonumber=""
for C = 1 to Len(email)
tonumber=tonumber+cStr(Asc(mid(email,C,1)))+","
next
end function
%>
.....
--
Med venlig hilsen/Best regards
Stig Johansen
| |
Jens R. Rasmussen (21-03-2010)
| Kommentar Fra : Jens R. Rasmussen |
Dato : 21-03-10 17:13 |
|
Tak Stig, nu virker det.
Der er dog en mindre skønhedsfejl.
Hvis jeg, som du angiver, skriver:
for ( var c=0;c< sarray.length-1;c++) {
så fortæller HTML-validatoren mig, at tegnet mindre end ikke er tilladt her
(inden i head- og script-sektionen). Og den foreslår i stedet at skrive <
Men gør jeg det virker scriptet ikke. Er der en metode til at fortælle at <
virkelig betyder mindre end og ikke er et start-tag? Det hjælper heller ikke
at lave sætningen om til asp med <% response.write "for (var c=0; c<
sarray.lenght-1;c++) {" %>
Men som sagt, scriptet virker med "<" selvom validatoren ikke mener at dette
tegn er legalt her
mvh
/jens
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Stig Johansen (21-03-2010)
| Kommentar Fra : Stig Johansen |
Dato : 21-03-10 18:51 |
|
Jens R. Rasmussen wrote:
> Men som sagt, scriptet virker med "<" selvom validatoren ikke mener at
> dette tegn er legalt her
I princippet er det validatoren, der "viser forkert", for indholdet af
script er såkadt CDATA (hvor < er tilladt).
Nu har vi lagt scriptet ind i selve html'et, men normat ville man lægge det
i en extern fil, og referere til denne i <head> sektionen.
--
Med venlig hilsen
Stig Johansen
| |
Rune Jensen (21-03-2010)
| Kommentar Fra : Rune Jensen |
Dato : 21-03-10 19:10 |
|
Den 21-03-2010 17:13, Jens R. Rasmussen skrev:
> Tak Stig, nu virker det.
>
> Der er dog en mindre skønhedsfejl.
>
> Hvis jeg, som du angiver, skriver:
>
> for ( var c=0;c< sarray.length-1;c++) {
>
> så fortæller HTML-validatoren mig, at tegnet mindre end ikke er tilladt her
> (inden i head- og script-sektionen). Og den foreslår i stedet at skrive<
> Men gør jeg det virker scriptet ikke. Er der en metode til at fortælle at<
> virkelig betyder mindre end og ikke er et start-tag? Det hjælper heller ikke
> at lave sætningen om til asp med<% response.write "for (var c=0; c<
> sarray.lenght-1;c++) {" %>
>
> Men som sagt, scriptet virker med "<" selvom validatoren ikke mener at dette
> tegn er legalt her
Som jeg forstår det, er det fordi JSen er inline, og validatoren
opfatter det som HTML. Så kan du lave alle mulige fiksfakserier, lægge
det i HTML-remark, som lægges i JS-remark, som lægges i...
Men i stedet kan du jo også bare lægge det i en ekstern fil, så er du
fri for at tænke mere på det...?
Har du noget, som ændres i JSen via ASP?
MVH
Rune Jensen
| |
Jens R. Rasmussen (21-03-2010)
| Kommentar Fra : Jens R. Rasmussen |
Dato : 21-03-10 19:54 |
|
Rune Jensen wrote in dk.edb.internet.webdesign.serverside.asp:
> Som jeg forstår det, er det fordi JSen er inline, og validatoren
> opfatter det som HTML. Så kan du lave alle mulige fiksfakserier, lægge
> det i HTML-remark, som lægges i JS-remark, som lægges i...
>
> Men i stedet kan du jo også bare lægge det i en ekstern fil, så er du
> fri for at tænke mere på det...?
Hvis jeg nu lægger scripten i sit eget dokument, hvordan refererer jeg så til
det i head'en? Jeg prøvede med at kalde scripten tjava.inc og så lave en
<!--#include file="tjava.inc"-->
men det giver fejl.
>
> Har du noget, som ændres i JSen via ASP?
næ
>
>
> MVH
> Rune Jensen
mvh
/Jens
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Jens R. Rasmussen (21-03-2010)
| Kommentar Fra : Jens R. Rasmussen |
Dato : 21-03-10 20:27 |
|
En løsning er åbenbart at inkludere hele scriptet i
<script type="text/javascript">
//<![CDATA[
function fromnumber(numbers) {
....
...
}
//]]>
</script>
Ikke at jeg forstår hvad jeg laver - men Stigs hentydning til CDATA og
validatorens forslag er altså at bruge //<![CDATA[......]]
mvh
/Jens
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Jens R. Rasmussen (21-03-2010)
| Kommentar Fra : Jens R. Rasmussen |
Dato : 21-03-10 21:25 |
|
Jens R. Rasmussen wrote in dk.edb.internet.webdesign.serverside.asp:
> En løsning er åbenbart at inkludere hele scriptet i
>
> <script type="text/javascript">
> //<![CDATA[
> function fromnumber(numbers) {
> ....
> ...
> }
> //]]>
> </script>
>
> Ikke at jeg forstår hvad jeg laver - men Stigs hentydning til CDATA og
> validatorens forslag er altså at bruge //<![CDATA[......]]
Der er faktisk en ganske god forklaring på problemet og dets løsninger
på http://javascript.about.com/library/blxhtml.htm
Og ved siden af på http://javascript.about.com/library/bltut13.htm
kan jeg så læse hvordan jeg lavet et eksternt javascript og inkluderer det i
scriptet.
Tak til Stig og Rune for jeres utrættelige og gode råd til mig.
mvh
/Jens
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Birger Sørensen (22-03-2010)
| Kommentar Fra : Birger Sørensen |
Dato : 22-03-10 01:53 |
|
Følgende er skrevet af Jens R. Rasmussen:
8X
> Hvis jeg nu lægger scripten i sit eget dokument, hvordan refererer jeg så til
> det i head'en? Jeg prøvede med at kalde scripten tjava.inc og så lave en
> <!--#include file="tjava.inc"-->
> men det giver fejl.
8X
<script type="text/javascript" src="tjava.js"></script>
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk
| |
Birger Sørensen (09-03-2010)
| Kommentar Fra : Birger Sørensen |
Dato : 09-03-10 18:13 |
|
Jens R. Rasmussen skrev den 09-03-2010:
> Hej/
>
> Når jeg har skrevet en asp-side og fået den til at virke med min
> browser, tjekker jeg altid efterfølgende siden for korrekt
> syntaks med valideringssiden fra W3C, og det sker jævnligt at
> validatoren finder fejl, som min browser har båret over med. Ofte
> vil en enkelt fejl genere en hav af fejlmeddelelser.
> Denne gang har jeg fået valideret siden tumpemedlem.asp, som
> virker såvel med IE som med Firefox, men validatoren påpeger 20
> fejl. Næste alle fejl er forkert font og manglende slut-tags.
> Fejl som jeg ikke kan se er i mit dokument.
> Fejlmeddelelserne er eksempelvis
> • Line 42, column : Premature end of data in tag html line 2
> …rial" size=2>/tumpemedlem.asp</font><font face="Arial" size=2>,
> line 77</font>
>
> 1. end tag for X omitted, but OMITTAG NO was specified
> ✉
> You may have neglected to close an element, or perhaps you meant
> to "self-close" an element, that is, ending it with "/>" instead
> of ">".
> • Line 38, column 37: end tag for "p" omitted, but OMITTAG NO was
> specified
>
> <p>Microsoft VBScript runtime </font> <font face="Arial"
> size=2>error '800a000d…
> • Line 37, column 179: element "font" undefined
> …='tumpemedlemmer.asp'>Retur til login-siden</a></h4> <font
> face="Arial" size=2>
>
> Osv.
>
> Validatorens listning af teksten er:
> 37. <h4>Du skal angive såvel Brugernavn som Password.<br />Gå
> tilbage og ret de indtastede data. <a
> href='tumpemedlemmer.asp'>Retur til login-siden</a></h4> <font
> face="Arial" size=2>
> 38. <p>Microsoft VBScript runtime </font> <font face="Arial"
> size=2>error '800a000d'</font>
> 39. <p>
> 40. <font face="Arial" size=2>Type mismatch: 'rs'</font>
> 41. <p>
> 42. <font face="Arial" size=2>/tumpemedlem.asp</font><font
> face="Arial" size=2>, line 77</font>
>
> Og mine programstumper startende med l. 37 er :
> ….
> Response.Write "<h4>Du skal angive såvel Brugernavn som
> Password.<br />GÃ¥ tilbage og ret de indtastede data. <a
> href='tumpemedlemmer.asp'>Retur til login-siden</a></h4>"
> Session("Kunde") = ""
> End If
>
> If Session("kunde") = "maaske-medlem" then
> Set Conn = Server.CreateObject("ADODB.Connection")
> Conn.Open DSN
> strSQL = "Select * From Tumpemedlemmer Where Brugerid = '" &
> brugernavnff & "' AND Loesen = '" & brugerloesen & "'"
> set rs = Conn.Execute(strSQL)
> If rs.eof then
> ' Databasen kender ikke det angivne bruger-id og
> password
> response.write "<h4>Der er fejl i bruger-id og/eller
> password.</h4><ul><li>Gå tilbage og prøv igen. <a
> href='tumpemedlemmer.asp'>Retur til login-siden</a></li>"
> Response.write "<li>Jeg kan ikke huske mit brugernavn
> og password. <a href='tumpeglemtpassword.asp'>Hjælp
> mig</a>!</li></ul>"
> Session("Kunde") = "fejl"
> Elseif (not rs.eof AND (StrComp(brugernavnff, rs("Brugerid"),
> vbBinaryCompare) <> 0 OR StrComp(brugerloesen, rs("Loesen"),
> vbBinaryCompare) <> 0)) THEN
> ' Der er fejl i store og små bogstaver
> response.write "<h4>Der er fejl i bruger-id og/eller
> password. <br />Husk at store og små bogstaver skal indtastes
> korrekt - så tjek om Caps Lock måske er sat til! <br />Gå tilbage
> og prøv igen . <a href='tumpemedlemmer.asp'>Retur til
> login-siden</a></h4>"
> Session("kunde") = "fejl"
> Elseif (not rs.eof AND StrComp(brugernavnff, rs("Brugerid"),
> vbBinaryCompare) = 0 AND StrComp(brugerloesen, rs("Loesen"),
> vbBinaryCompare) = 0) THEN
>
> Jeg vil blive utrolig glad, hvis nogen ud fra ovenstående virvar
> kan påpege min(e) fejl.
> Nu er linjerne taget ud af en større sammenhæng – men jeg synes
> ikke jeg vil vedlægge hele dokumentet her, da jeg tror fejlen er
> koncentreret omkring disse få linjer 37-42 i validatorens
> oplistning af mit program (efter ASP-oversættelse).
> Mvh.
> /jens
Ser lidt ud somom validatoren ikke kan finde ud af hvilken doctype dit
dokument har.
<font> er deprecated, og ikke lovligt i nogle (X)HTML versioner.
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk
| |
|
|