Avatar billede musicchart.dk Nybegynder
19. juni 2002 - 14:29 Der er 28 kommentarer og
2 løsninger

skrive <% %>

Hey

Jeg har en side hvor jeg skriver artikler om ASP. Så skal jeg have nogle eksempler med kode, som fx:

<%response.write Now%>

... men så skriver den jo bare tidspunktet, hvor jeg vil have printet "<%response.write Now%>"...

Hvordan får jeg den til ikke at tolke den som en asp-kode??

/Bjarke - (KLEIFDESIGN)
Avatar billede Slettet bruger
19. juni 2002 - 14:32 #1
&lt;% Response.Write(Now()) %&gt;
Avatar billede md_craig Nybegynder
19. juni 2002 - 14:32 #2
Skal det hentes fra en database... der går jeg ud fra... så brug Replace...

Gem det du skal have udsrevet i en variabel... fx

Body = RS("FELT")

eller

HTML encrypt...
Avatar billede md_craig Nybegynder
19. juni 2002 - 14:37 #3
Body = Replace("body", "<", "&lt;")

http://activedeveloper.dk/iishelp/vbscript/htm/vsfctreplace.htm

det er en måde
Avatar billede musicchart.dk Nybegynder
19. juni 2002 - 14:38 #4
<< magik , tak det virker.

<< md_craig >> , kan du ikke forklare lidt nærmere hvordan jeg replacer fx <% %> ??
Avatar billede md_craig Nybegynder
19. juni 2002 - 14:38 #5
Server.HTMLEncode("body")

det er den anden
Avatar billede musicchart.dk Nybegynder
19. juni 2002 - 14:40 #6
takker..!

kan jeg så skrive dette:

<%
Body = RS("artikel")
Body = Replace("body", "<", "&lt;")
response.write rs("artikel")%>
Avatar billede musicchart.dk Nybegynder
19. juni 2002 - 14:40 #7
...eller hvordan skal jeg sætte det ind?
Avatar billede Slettet bruger
19. juni 2002 - 14:41 #8
Hvis du vil Replace vil det nok være lige så nemt at anvende Server.HTMLEncode. Hvis du benytter et Recordset kan du gøre følgende:

strTekst = Server.HTMLEncode(rs("feltnavn"))
Avatar billede md_craig Nybegynder
19. juni 2002 - 14:43 #9
Der er en lille ulempe ved det |magik| har. hvis du fx vil kunne tilføje en artikel så skal du skrive &lt; hver gang du vil skrive <... men bruger du fx Replace... så gør serveren det for dig og du kan nu skrive < så todset du vil...

skriver du fx

<%response.write Now%>

så skriver den dette ind i din database

&lt;% Response.Write(Now()) %>

og der er så bedst hvis du gør således her

Body = Replace("body", "<", "&lt;")
Body = Replace("body", ">", "&gt;")

Til HTMLEncode:

http://activedeveloper.dk/iishelp/iis/htm/asp/intr9aat.htm
Avatar billede Slettet bruger
19. juni 2002 - 14:43 #10
Du skal ikke have " om body når du bruger Replace-funktionen.

<% Dim body

body = RS("artikel")

body = Replace(body, "<", "&lt;")

body = Replace(body, ">", "&gt;")

Response.Write(body)

%>

Men som sagt vil Server.HTMLEncode nok være nemmere.

<%

Dim body

body = RS("artikel")

body = Server.HTMLEncode(body)

Response.Write(body)

%>
Avatar billede md_craig Nybegynder
19. juni 2002 - 14:44 #11
NEJ:
<%
Body = RS("artikel")
Body = Replace("body", "<", "&lt;")
response.write rs("artikel")%>

JA:
<%
Body = RS("artikel")
Body = Replace("body", "<", "&lt;")
response.write Body%>
Avatar billede musicchart.dk Nybegynder
19. juni 2002 - 14:45 #12
<< magik, jo men med Server.HTMLEncode , vil alt mit HTML i artiklen bliver omsat til tegn... det er ikke min mening, der er bare nogle få ting jeg vil replace, så jeg tror at jeg vil bruge replace
Avatar billede md_craig Nybegynder
19. juni 2002 - 14:46 #13
eller Endelig

Response.Write Server.HTMLEncode(RS("Artikel"))
Avatar billede musicchart.dk Nybegynder
19. juni 2002 - 14:46 #14
<< md_craig , ja, kom også til at tænke mig frem til det,.. havde ikke rigtig tænkt mig om, da jeg skrev det... :o)
Avatar billede Slettet bruger
19. juni 2002 - 14:46 #15
md_craig: Ingen af de dele du nævner vil virke. Det du gør er at Replace noget i en tekststreng der indeholder teksten "body".

Replace("body"...)

skal da nærmere være:

Replace(body...)

Da body er en string-variabel.
Avatar billede md_craig Nybegynder
19. juni 2002 - 14:48 #16
Hvis du vi Holde di til Replace så kan du gøre således...

<%
Dim Body

Body = RS("artikel")
Body = Replace("Body", "<", "&lt;")
Body = Replace("Body", ">", "&gt;")

Response.Write Body

%>
Avatar billede Slettet bruger
19. juni 2002 - 14:49 #17
musicchart.dk:

Så vil dette jo virke fint:

<% Dim body

body = RS("artikel")

body = Replace(body, "<", "&lt;")

body = Replace(body, ">", "&gt;")

Response.Write(body)

%>

Men du skal tænke på at det bliver Replace't hver eneste gang en bruger requester siden. Det ville være smartere at Replace inden du lægger det i databasen, idet du så kun skal udføre Replace() én gang.
Avatar billede md_craig Nybegynder
19. juni 2002 - 14:49 #18
Ups...


<%
Dim Body

Body = RS("artikel")
Body = Replace(Body, "<", "&lt;")
Body = Replace(Body, ">", "&gt;")

Response.Write Body

%>
Avatar billede musicchart.dk Nybegynder
19. juni 2002 - 14:53 #19
hmm... den har samme effect som Server.HTMLEncode, den laver alt min HTML kode om til tegn
Avatar billede md_craig Nybegynder
19. juni 2002 - 14:54 #20
Jeg gør det selv når jeg henter...

Grund:

Har du et system hvor du fx er intereseret i at kunne ændre i din artikel... så vil artiken der som man skrev den... EKX...

Indsrives:

<%response.write Now%>

Vises for brugeren:

&lt;% Response.Write(Now()) %&gt;

Vises når du vil redigere:

<%response.write Now%>
Avatar billede musicchart.dk Nybegynder
19. juni 2002 - 14:55 #21
...og det er jo klart, da man også bruger < > i html... ØV
Avatar billede Slettet bruger
19. juni 2002 - 14:55 #22
Du vil måske KUN have lavet <% og %> om? Og ikke < og > når de står alene?

<%

Dim body

body = RS("artikel")

body = Replace(body, "<%", "&lt;%")

body = Replace(body, "%>", "%&gt;")

%>
Avatar billede md_craig Nybegynder
19. juni 2002 - 14:55 #23
Ja... men du skal tænke på at du bliver nød til at skrive dette til browseren: &lt; og så vil den vise <
Avatar billede musicchart.dk Nybegynder
19. juni 2002 - 15:02 #24
<< magik , det giver fejlen:

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0409)
Strengkonstanten er uafsluttet
/mypage/realthing/html/aspartikel.asp, line 72, column 22
body = Replace(body, "
Avatar billede Slettet bruger
19. juni 2002 - 15:06 #25
Hva'? Kan du ikke lige poste hele linjen?
Avatar billede musicchart.dk Nybegynder
19. juni 2002 - 15:07 #26
<%

Dim body

body = RS("artikel")

body = Replace(body, "<%", "&lt;%")

body = Replace(body, "%>", "%&gt;")

Response.Write Body

%>


linie72;... body = Replace(body, "%>", "%&gt;")
Avatar billede Slettet bruger
19. juni 2002 - 15:14 #27
Underligt. ASP-fortolkeren opfatter åbenbart "<%" i Replace() som værende en ASP-instruktion, hvilket det ikke er.
Avatar billede musicchart.dk Nybegynder
19. juni 2002 - 15:17 #28
...ja... men det virker jo hvis den kun replacer den ene... da der ikke er nogen slutning på <%
Avatar billede md_craig Nybegynder
21. juni 2002 - 20:49 #29
MusicChart >>> Nej for den vil så gå ind og brokke sig over at der netop ikke er en slutning....

Hvis det virker, er det noget underligt....

Du må derfor holde dig til '<'.... men hvorfor kan du ikke bruge det... det er jo i principielt ligemeget... og hvis du vil have muglighed for at bruge HTML Scripting, så kan du evt. tage [ og ] i brug... således:

Ups...


<%
Dim Body

Body = RS("artikel")
Body = Replace(Body, "<", "&lt;")
Body = Replace(Body, ">", "&gt;")

Body = Replace(Body, "[", "<")
Body = Replace(Body, "], ">)

Response.Write Body

%>
Avatar billede musicchart.dk Nybegynder
22. juni 2002 - 21:10 #30
hmmm... det virker med det jeg skrev: 19/06-2002 15:17:33 , men jeg vil da overveje den anden mulighed
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
Kurser inden for grundlæggende programmering

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