/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Qstring gange 2
Fra : Anders M


Dato : 27-11-08 17:27

Hej..
jeg er ved at lave en hjemmeside, og laver det i q-string..
dvs. forside = id=0 og om os =id=2 f.eks.

jeg har lavet en nyhedsside, som vi siger er ?id=3
jeg har så artikler dertil, hvordan får jeg det til at være

?id=3&article=1

altså spørgsmålet: hvordan overfører man mere end en variable i
q-string?
lige lidt kode:

<%

id=Request.QueryString("id"): if id="" then id=0

Select case id
Case 0 ' forside %>
<h1>beta</h1>
<p>123</p>
<% Case 1 ' jj (id=1)%>
<h1>beta</h1>
<p>info om sa</p>
<% Case 2 ' jjjj (id=2) %>
<h1>pølse</h1>
<p>zm jjj</p>
<% Case 3 ' 123 (id=3) %>
<h1>123</h1>
<p>FIX SERVICE</p>
<% End Select%>

jeg er meget ny i asp så kan nogen skrive koden?
mvh Anders

--
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

 
 
Christian Kragh (28-11-2008)
Kommentar
Fra : Christian Kragh


Dato : 28-11-08 00:40

> altså spørgsmålet: hvordan overfører man mere end en variable i
> q-string?
> lige lidt kode:

<%
qTempID = Request.QueryString("id")
select case qTempID
case "1"
response.write "Viser 1"
case "2"
response.write "Viser 2"
case "3"
response.write "Viser 3"
case "3"
response.write "Viser 4"
case else
response.write "Viser ukendt"
end select
%>

Det er så hovedsiden...
Du kan lave undersiderne enden som en select case inden i den enkelte side,
men det kræver at du ved præcis hvilket indhold du har på siden.
<%
qTempID = Request.QueryString("id")
qTempUID = Request.QueryString("uid")
select case qTempID
case "1"
response.write "Viser 1"

case "2"
response.write "Viser 2"
select case qTempUID
case "1"
response.write "Viser 2.1"
case "2"
response.write "Viser 2.2"
case "3"
response.write "Viser 2.3"
case "4"
response.write "Viser 2.4"
case else
response.write "Viser 2.ukendt"
end select

case "3"
response.write "Viser 3"

case "3"
response.write "Viser 4"

case else
response.write "Viser ukendt"

end select
%>

Hvis du ikke kender antallet af det indhold du har kan du bruge en database
til det.
<%
qTempID = Request.QueryString("id")
qTempUID = Request.QueryString("uid")

if len(qTempUID) > 0 then
strSQL = "select * from tblData where id = " & qTempUID
'' Den side vi skal vise er indholdet af databasen med UID svarende til
qTempUID

elseif len(qTempID) > 0 then
strSQL = "select * from tblData where id = " & qTempID
'' Den side vi skal vise har id svarende til qTempID

else
strSQL = "select * from tblData where id = 1"
'' Forsiden har id 1 i databasen

end if
%>

Det eneste jeg mangler her er forbindelsen til databasen samt udtrækket af
dataen.
Du skal også være opmærksom på at det er en god ide at validere det indhold
brugeren sender til dig igennem querystrings.
for eksempel brug følgende funktion til alle sql strenge:

<%
function safesql(text)
if len(text) > 0 then
safesql = replace(text,"'","&quot;")
else
safqsql = ""
end if
end function
%>

For at kalde det bruger du:
<%
qTempID = Request.QueryString("id")
strsql = "select * from tblData where id = " & safesql(qTempID)
%>

Christian


Rune Jensen (28-11-2008)
Kommentar
Fra : Rune Jensen


Dato : 28-11-08 10:24

On 28 Nov., 00:39, "Christian Kragh" <dsl516...@vip.cybercity.dk>
wrote:


> Du skal også være opmærksom på at det er en god ide at validere det indhold
> brugeren sender til dig igennem querystrings.
> for eksempel brug følgende funktion til alle sql strenge:
>
> <%
> function safesql(text)
>   if len(text) > 0 then
>     safesql = replace(text,"'","&quot;")
>   else
>     safqsql = ""
>   end if
> end function
> %>
>
> For at kalde det bruger du:
> <%
> qTempID = Request.QueryString("id")
> strsql = "select * from tblData where id = " & safesql(qTempID)
> %>

Stor ros, fordi det er blevet acceptabelt at snakke sikkerhed.

Jeg interesserer mig selv en del for det emne, og har nogle inputs - i
er velkomne til at rette, hvis det er, here goes:

Ovenstående kaldes, svjv for fattigmandssikkerhed - fordi " kan
erstattes af f.eks. en %-værdi.

Der findes to indgangsvinkler til sikkerhed på input til DB via
querystring, hvor jeg kun vil tage den ene, som berører selve
querystring.

En whitelisting på querystring generelt (inspireret af bl.a. Stig
Johansen). Her sørger man for, det udelukkende er bestemte tegn,
f.eks. store/små bogstaver og tal, som er tilladte i querystring. Den
metode har taget samtlige forsøg hos mig. Man kan overhovedet ikke på
noigen måde lave injection udelukkende vha. bogstaver og tal.

Min idé her er, at man ikke skal bruge data i querystring, altså ikke
noget med ?url=http://etellerandet.

Her bruges et tal ell. lign, som henviser i stedet.

Altså f.eks. ?url=1, hvor 1 peger på urlen i DBen.

Denne regel skal så være generel for alle sider.

Med den måde at se det på, kan man opbygge en generel whitelisting,
som ser ud som følger - jeg har lagt en næsten identisk funktion
allerførst i alle dokumenter som include.

URIQuery = Request.Servervariables("QUERY_STRING")

if URIQuery <> "" then

    SET RegExUrlQuery = New RegExp
RegExUrlQuery.Global = true
RegExUrlQuery.pattern = "[_&=\-a-zA-Z0-9]"
RegExUrlQuery.ignorecase = false
Temp=RegExUrlQuery.replace( URIQuery, "")

if Temp <>"" then
Response.Status = "404 Page not Found"
Response.Write "Sorry, you seem to make
some injection attempts "
Response.End
end if

set RegExUrlQuery = nothing
end if

Det vigtige her er pattern, som angiver tilladte tegn og range for
dem. Ingen variable noget sted på siden må gå ud over pattern - så får
man som bruger en fejlside.


MVH
Rune Jensen

Stig Johansen (28-11-2008)
Kommentar
Fra : Stig Johansen


Dato : 28-11-08 18:46

Rune Jensen wrote:

> Ovenstående kaldes, svjv for fattigmandssikkerhed - fordi " kan
> erstattes af f.eks. en %-værdi.

Det er nok mig der kalder den for fattigmandssikkerhed.

Baggrunden er, at det ikke kun er inden for web man har et problem med sql
injection.

Nøjagtig den samme problemstilling eksisterer også ved almindelige
client/server applikationer.

Ovre i Delphi grupperne har vi tærsket langhalm på det, i hvert fald siden
'95.

--
Med venlig hilsen
Stig Johansen

Rune Jensen (28-11-2008)
Kommentar
Fra : Rune Jensen


Dato : 28-11-08 11:13

On 28 Nov., 18:45, Stig Johansen <wopr...@gmaill.com> wrote:
> Rune Jensen wrote:
> > Ovenstående kaldes, svjv for fattigmandssikkerhed - fordi " kan
> > erstattes af f.eks. en %-værdi.
>
> Det er nok mig der kalder den for fattigmandssikkerhed.
>
> Baggrunden er, at det ikke kun er inden for web man har et problem med sql
> injection.
>
> Nøjagtig den samme problemstilling eksisterer også ved almindelige
> client/server applikationer.


Humm, ja. Fattig, det kan godt opfattes negativt, det var nu ikke
hensigten at kritisere... men det kan tage fokus fra selve indholdet -
noget at huske til næste gang.

Iøvrigt, så kan jeg se, der er en lille brøler i scriptet, hvor
objektet bør "lukkes" så tidligt som muligt, så:

URIQuery = Request.Servervariables("QUERY_STRING")

if URIQuery <> "" then

SET RegExUrlQuery = New RegExp
RegExUrlQuery.Global = true
RegExUrlQuery.pattern = "[_&=\-a-zA-Z0-9]"
RegExUrlQuery.ignorecase = false
Temp=RegExUrlQuery.replace( URIQuery, "")

set RegExUrlQuery = nothing

if Temp <>"" then
Response.Status = "404 Page not Found"
Response.Write "Sorry, you seem to make
some injection attempts "
Response.End
end if

end if


> Ovre i Delphi grupperne har vi tærsket langhalm på det, i hvert fald siden
> '95.

Det er lang tid, i har været opmærksom på det, og det er først
indenfor de senere år, synes jeg, der er poppet lidt mere op om det i
serverside-grupperne, bl.a. også pga. nogle indlæg om at man har fået
inficeret sin database. Menæh... bedre sent end aldrig;)


MVH
Rune Jensen

Anders M (29-11-2008)
Kommentar
Fra : Anders M


Dato : 29-11-08 11:31

Christian Kragh wrote in dk.edb.internet.webdesign.serverside.asp:
> > altså spørgsmålet: hvordan overfører man mere end en variable i
> > q-string?
> > lige lidt kode:
>
> <%
> qTempID = Request.QueryString("id")
> select case qTempID
> case "1"
> response.write "Viser 1"
> case "2"
> response.write "Viser 2"
> case "3"
> response.write "Viser 3"
> case "3"
> response.write "Viser 4"
> case else
> response.write "Viser ukendt"
> end select
> %>
>
> Det er så hovedsiden...
> Du kan lave undersiderne enden som en select case inden i den enkelte side,
> men det kræver at du ved præcis hvilket indhold du har på siden.
> <%
> qTempID = Request.QueryString("id")
> qTempUID = Request.QueryString("uid")
> select case qTempID
> case "1"
> response.write "Viser 1"
>
> case "2"
> response.write "Viser 2"
> select case qTempUID
> case "1"
> response.write "Viser 2.1"
> case "2"
> response.write "Viser 2.2"
> case "3"
> response.write "Viser 2.3"
> case "4"
> response.write "Viser 2.4"
> case else
> response.write "Viser 2.ukendt"
> end select
>
> case "3"
> response.write "Viser 3"
>
> case "3"
> response.write "Viser 4"
>
> case else
> response.write "Viser ukendt"
>
> end select
> %>
>
> Hvis du ikke kender antallet af det indhold du har kan du bruge en database
> til det.
> <%
> qTempID = Request.QueryString("id")
> qTempUID = Request.QueryString("uid")
>
> if len(qTempUID) > 0 then
> strSQL = "select * from tblData where id = " & qTempUID
> '' Den side vi skal vise er indholdet af databasen med UID svarende til
> qTempUID
>
> elseif len(qTempID) > 0 then
> strSQL = "select * from tblData where id = " & qTempID
> '' Den side vi skal vise har id svarende til qTempID
>
> else
> strSQL = "select * from tblData where id = 1"
> '' Forsiden har id 1 i databasen
>
> end if
> %>
>
> Det eneste jeg mangler her er forbindelsen til databasen samt udtrækket af
> dataen.
> Du skal også være opmærksom på at det er en god ide at validere det indhold
> brugeren sender til dig igennem querystrings.
> for eksempel brug følgende funktion til alle sql strenge:
>
> <%
> function safesql(text)
> if len(text) > 0 then
> safesql = replace(text,"'",""")
> else
> safqsql = ""
> end if
> end function
> %>
>
> For at kalde det bruger du:
> <%
> qTempID = Request.QueryString("id")
> strsql = "select * from tblData where id = " & safesql(qTempID)
> %>
>
> Christian
>

' forside
case "forside"
Response.Write "<a href="?news=arkiv">Arkiv</a>"

hvorfor virker linket 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

Rune Jensen (29-11-2008)
Kommentar
Fra : Rune Jensen


Dato : 29-11-08 04:40

On 29 Nov., 11:30, Anders M <b...@fixgroup.dk> wrote:
> Christian Kragh wrote in dk.edb.internet.webdesign.serverside.asp:
>
>
>
> > > altså spørgsmålet: hvordan overfører man mere end en variable i
> > > q-string?
> > > lige lidt kode:
>
> > <%
> > qTempID = Request.QueryString("id")
> > select case qTempID
> >   case "1"
> >     response.write "Viser 1"
> >   case "2"
> >     response.write "Viser 2"
> >   case "3"
> >     response.write "Viser 3"
> >   case "3"
> >     response.write "Viser 4"
> >   case else
> >     response.write "Viser ukendt"
> > end select
> > %>
>
> > Det er så hovedsiden...
> > Du kan lave undersiderne enden som en select case inden i den enkelte side,  
> > men det kræver at du ved præcis hvilket indhold du har på siden.
> > <%
> > qTempID = Request.QueryString("id")
> > qTempUID = Request.QueryString("uid")
> > select case qTempID
> >   case "1"
> >     response.write "Viser 1"
>
> >   case "2"
> >     response.write "Viser 2"
> >     select case qTempUID
> >       case "1"
> >         response.write "Viser 2.1"
> >       case "2"
> >         response.write "Viser 2.2"
> >       case "3"
> >         response.write "Viser 2.3"
> >       case "4"
> >         response.write "Viser 2.4"
> >       case else
> >         response.write "Viser 2.ukendt"
> >     end select
>
> >   case "3"
> >     response.write "Viser 3"
>
> >   case "3"
> >     response.write "Viser 4"
>
> >   case else
> >     response.write "Viser ukendt"
>
> > end select
> > %>
>
> > Hvis du ikke kender antallet af det indhold du har kan du bruge en database  
> > til det.
> > <%
> > qTempID = Request.QueryString("id")
> > qTempUID = Request.QueryString("uid")
>
> > if len(qTempUID) > 0 then
> >   strSQL = "select * from tblData where id = " & qTempUID
> >   '' Den side vi skal vise er indholdet af databasen med UID svarende til  
> > qTempUID
>
> > elseif len(qTempID) > 0 then
> >   strSQL = "select * from tblData where id = " & qTempID
> >   '' Den side vi skal vise har id svarende til qTempID
>
> > else
> >   strSQL = "select * from tblData where id = 1"
> >   '' Forsiden har id 1 i databasen
>
> > end if
> > %>
>
> > Det eneste jeg mangler her er forbindelsen til databasen samt udtrækket af  
> > dataen.
> > Du skal også være opmærksom på at det er en god ide at validere det indhold  
> > brugeren sender til dig igennem querystrings.
> > for eksempel brug følgende funktion til alle sql strenge:
>
> > <%
> > function safesql(text)
> >   if len(text) > 0 then
> >     safesql = replace(text,"'",""")
> >   else
> >     safqsql = ""
> >   end if
> > end function
> > %>
>
> > For at kalde det bruger du:
> > <%
> > qTempID = Request.QueryString("id")
> > strsql = "select * from tblData where id = " & safesql(qTempID)
> > %>
>
> > Christian  
>
> ' forside
> case "forside"
> Response.Write "<a href="?news=arkiv">Arkiv</a>"
>
> hvorfor virker linket ikke?

Fordi du ikke escaper.

Jeg synes, det er lidt pernitten at sidde og tælle " bare for, det ser
pænt ud. Det har nemlig absolut ikke anden betydning end det. Derfor
bruger jeg '-tegnet i stedet for "

Response.Write "<a href='?news=arkiv'>Arkiv</a>"

Vær opmærksom på, det vil i begge tilfælde give en faktisk URL uden
domænenavn, det har jeg aldrig set virke.

Du skal nok ud i noget

Response.Write "<a href='sti/side.asp?news=arkiv'>Arkiv</a>"

du skal jo tyde den variabel et sted, og det gør den i den side, som
henvises til i href.

her sti/side.asp

Det er din faktiske, fysiske side. At du bruger den til at danne nye,
dynamiske sider på baggrund af variabler i querystring er noget andet.
Som regel bruger man index.asp som hovedsiden (fysisk side), og ved at
bruge variablerne kan man så danne undersider dynamisk.


MVH
Rune Jensen

Anders M (29-11-2008)
Kommentar
Fra : Anders M


Dato : 29-11-08 16:45

Rune Jensen wrote in dk.edb.internet.webdesign.serverside.asp:
> On 29 Nov., 11:30, Anders M <b...@fixgroup.dk> wrote:
> > Christian Kragh wrote in dk.edb.internet.webdesign.serverside.asp:
> >
> >
> >
> > > > altså spørgsmålet: hvordan overfører man mere end en variable i
> > > > q-string?
> > > > lige lidt kode:
> >
> > > <%
> > > qTempID = Request.QueryString("id")
> > > select case qTempID
> > >   case "1"
> > >     response.write "Viser 1"
> > >   case "2"
> > >     response.write "Viser 2"
> > >   case "3"
> > >     response.write "Viser 3"
> > >   case "3"
> > >     response.write "Viser 4"
> > >   case else
> > >     response.write "Viser ukendt"
> > > end select
> > > %>
> >
> > > Det er så hovedsiden...
> > > Du kan lave undersiderne enden som en select case inden i den enkelte side,  
> > > men det kræver at du ved præcis hvilket indhold du har på siden.
> > > <%
> > > qTempID = Request.QueryString("id")
> > > qTempUID = Request.QueryString("uid")
> > > select case qTempID
> > >   case "1"
> > >     response.write "Viser 1"
> >
> > >   case "2"
> > >     response.write "Viser 2"
> > >     select case qTempUID
> > >       case "1"
> > >         response.write "Viser 2.1"
> > >       case "2"
> > >         response.write "Viser 2.2"
> > >       case "3"
> > >         response.write "Viser 2.3"
> > >       case "4"
> > >         response.write "Viser 2.4"
> > >       case else
> > >         response.write "Viser 2.ukendt"
> > >     end select
> >
> > >   case "3"
> > >     response.write "Viser 3"
> >
> > >   case "3"
> > >     response.write "Viser 4"
> >
> > >   case else
> > >     response.write "Viser ukendt"
> >
> > > end select
> > > %>
> >
> > > Hvis du ikke kender antallet af det indhold du har kan du bruge en database  
> > > til det.
> > > <%
> > > qTempID = Request.QueryString("id")
> > > qTempUID = Request.QueryString("uid")
> >
> > > if len(qTempUID) > 0 then
> > >   strSQL = "select * from tblData where id = " & qTempUID
> > >   '' Den side vi skal vise er indholdet af databasen med UID svarende til  
> > > qTempUID
> >
> > > elseif len(qTempID) > 0 then
> > >   strSQL = "select * from tblData where id = " & qTempID
> > >   '' Den side vi skal vise har id svarende til qTempID
> >
> > > else
> > >   strSQL = "select * from tblData where id = 1"
> > >   '' Forsiden har id 1 i databasen
> >
> > > end if
> > > %>
> >
> > > Det eneste jeg mangler her er forbindelsen til databasen samt udtrækket af  
> > > dataen.
> > > Du skal også være opmærksom på at det er en god ide at validere det indhold  
> > > brugeren sender til dig igennem querystrings.
> > > for eksempel brug følgende funktion til alle sql strenge:
> >
> > > <%
> > > function safesql(text)
> > >   if len(text) > 0 then
> > >     safesql = replace(text,"'",""")
> > >   else
> > >     safqsql = ""
> > >   end if
> > > end function
> > > %>
> >
> > > For at kalde det bruger du:
> > > <%
> > > qTempID = Request.QueryString("id")
> > > strsql = "select * from tblData where id = " & safesql(qTempID)
> > > %>
> >
> > > Christian  
> >
> > ' forside
> > case "forside"
> > Response.Write "<a href="?news=arkiv">Arkiv</a>"
> >
> > hvorfor virker linket ikke?
>
> Fordi du ikke escaper.
>
> Jeg synes, det er lidt pernitten at sidde og tælle " bare for, det ser
> pænt ud. Det har nemlig absolut ikke anden betydning end det. Derfor
> bruger jeg '-tegnet i stedet for "
>
> Response.Write "<a href='?news=arkiv'>Arkiv</a>"
>
> Vær opmærksom på, det vil i begge tilfælde give en faktisk URL uden
> domænenavn, det har jeg aldrig set virke.
>
> Du skal nok ud i noget
>
> Response.Write "<a href='sti/side.asp?news=arkiv'>Arkiv</a>"
>
> du skal jo tyde den variabel et sted, og det gør den i den side, som
> henvises til i href.
>
> her sti/side.asp
>
> Det er din faktiske, fysiske side. At du bruger den til at danne nye,
> dynamiske sider på baggrund af variabler i querystring er noget andet.
> Som regel bruger man index.asp som hovedsiden (fysisk side), og ved at
> bruge variablerne kan man så danne undersider dynamisk.
>
>
> MVH
> Rune Jensen

Siden man finder linksne på er den eneste der har adgang..

kan man ikke slippe for response.write så man kan "skifte linje" så der er orden i
koderne?

VH Anders


--
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

Rune Jensen (29-11-2008)
Kommentar
Fra : Rune Jensen


Dato : 29-11-08 15:10

On 29 Nov., 16:44, Anders M <b...@fixgroup.dk> wrote:

> Siden man finder linksne på er den eneste der har adgang..
>
> kan man ikke slippe for response.write så man kan "skifte linje" så der er orden i
> koderne?

Hvis du vil skifte linje i HTML-koden med response.write, så laver du
bare en & vbCrLf til den.

f.eks. response.write"<p>kjhkjhv</p>" & vbCrLf & "<p>jhgjhgfmggvc</p>"

Vil du indsætte en response.write i din HTML, kan du bruge en
shortcut. F.esk. :

<a href="<%=sti/side.asp?news=arkiv%>">Arkiv</a>

<% script start

og det der = efter, det giver en response.write

%> script slut

At skifte linje i selve HTMLen er ikke så svært ellers, der trykker
man retur, og kommer til ny kodelinje, for det er jo som at skrive
almindelige HTML-sider.

Jeg er lidt i tvivl om, jeg har forstået dig korrekt, men ellers må du
gerne uddybe dit spørgsmål;)


MVH
Rune Jensen

Anders M (30-11-2008)
Kommentar
Fra : Anders M


Dato : 30-11-08 09:35

Rune Jensen wrote in dk.edb.internet.webdesign.serverside.asp:
> On 29 Nov., 16:44, Anders M <b...@fixgroup.dk> wrote:
>
> > Siden man finder linksne på er den eneste der har adgang..
> >
> > kan man ikke slippe for response.write så man kan "skifte linje" så der er orden i
> > koderne?
>
> Hvis du vil skifte linje i HTML-koden med response.write, så laver du
> bare en & vbCrLf til den.
>
> f.eks. response.write"<p>kjhkjhv</p>" & vbCrLf & "<p>jhgjhgfmggvc</p>"
>
> Vil du indsætte en response.write i din HTML, kan du bruge en
> shortcut. F.esk. :
>
> <a href="<%=sti/side.asp?news=arkiv%>">Arkiv</a>
>
> <% script start
>
> og det der = efter, det giver en response.write
>
> %> script slut
>
> At skifte linje i selve HTMLen er ikke så svært ellers, der trykker
> man retur, og kommer til ny kodelinje, for det er jo som at skrive
> almindelige HTML-sider.
>
> Jeg er lidt i tvivl om, jeg har forstået dig korrekt, men ellers må du
> gerne uddybe dit spørgsmål;)
>
>
> MVH
> Rune Jensen

Response.Write "jklgajkælafg
jjkljkl"

virker ikke

men det gør

Response.Write "jklgajkælafgjjkljkl"

kan man få koden til at være mere ordentlig sådan f.eks

Response.Write "<h1>jkl</h1>
<p>jkljlk</p>"

?

mvh anders

--
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

Rune Jensen (30-11-2008)
Kommentar
Fra : Rune Jensen


Dato : 30-11-08 02:36

On 30 Nov., 09:34, Anders M <b...@fixgroup.dk> wrote:

> Response.Write "jklgajkælafg
> jjkljkl"
>
> virker ikke

Nej, det er fordi et nyt linjeskift i ASP koden opfattes som ny
kodelinje
Men du kan fortsætte en kodelinje på næste kodelinje med _
F.eks.

if text<>"" then
text = text & "tekst1" & _
variabel1 & _
"tekst2"
end if

Det vil give mere overskuelig ASPkode, og det vil opfattes af serveren
som:

if text<>"" then
text = text & "tekst1" & variabel1 & "tekst2"
end if

> men det gør
>
> Response.Write "jklgajkælafgjjkljkl"
>
> kan man få koden til at være mere ordentlig sådan f.eks
>
> Response.Write "<h1>jkl</h1>
> <p>jkljlk</p>"

Er det i den færdige HTML, du vil have linjeskiftet?
Virker dette så ikke?

Response.Write "<h1>jkl</h1>" & vbCrLf & "<p>jkljlk</p>"

Er du rigtig pernitten, kan du kombinere f.eks.

response.write "<h1>jkl</h1>" & vbCrLf _
& "<p>jkljlk</p>"

Der er lige noget med at gå ind og ud af ASPen, som har noget at gøre
med hastighed.

Jeg er ikke selv så god til at overholde det, men man bør nok ikke gå
ud pg ind for mange gange.

Ovenstående kan jo sagtens skrives som alm. HTML, som vil være
hurtigere at "oversætte" end response.write.

Hvis du har større HTML-blokke med f.eks. en enkelt variabel-
udskrivning, kan det ikke betale sig at bruge response.write.

Eks.

<ul>
<li><%=variabeltextfraASP%></li>
<li>alm. tekst 1</li>
<li>Alm. text 2</li>
</ul>

<%= virker som indgang til ASPen, og laver samtidig en response.write
af den efterfølgende variabel, hvorefter der afsluttes med %>

Ellers er hele kodeblokken ren HTML med linjeskift og indrykninger.


MVH
Rune Jensen

Anders M (30-11-2008)
Kommentar
Fra : Anders M


Dato : 30-11-08 18:34

Rune Jensen wrote in dk.edb.internet.webdesign.serverside.asp:
> On 30 Nov., 09:34, Anders M <b...@fixgroup.dk> wrote:
>
> > Response.Write "jklgajkælafg
> > jjkljkl"
> >
> > virker ikke
>
> Nej, det er fordi et nyt linjeskift i ASP koden opfattes som ny
> kodelinje
> Men du kan fortsætte en kodelinje på næste kodelinje med _
> F.eks.
>
> if text<>"" then
> text = text & "tekst1" & _
> variabel1 & _
> "tekst2"
> end if
>
> Det vil give mere overskuelig ASPkode, og det vil opfattes af serveren
> som:
>
> if text<>"" then
> text = text & "tekst1" & variabel1 & "tekst2"
> end if
>
> > men det gør
> >
> > Response.Write "jklgajkælafgjjkljkl"
> >
> > kan man få koden til at være mere ordentlig sådan f.eks
> >
> > Response.Write "<h1>jkl</h1>
> > <p>jkljlk</p>"
>
> Er det i den færdige HTML, du vil have linjeskiftet?
> Virker dette så ikke?
>
> Response.Write "<h1>jkl</h1>" & vbCrLf & "<p>jkljlk</p>"
>
> Er du rigtig pernitten, kan du kombinere f.eks.
>
> response.write "<h1>jkl</h1>" & vbCrLf _
> & "<p>jkljlk</p>"
>
> Der er lige noget med at gå ind og ud af ASPen, som har noget at gøre
> med hastighed.
>
> Jeg er ikke selv så god til at overholde det, men man bør nok ikke gå
> ud pg ind for mange gange.
>
> Ovenstående kan jo sagtens skrives som alm. HTML, som vil være
> hurtigere at "oversætte" end response.write.
>
> Hvis du har større HTML-blokke med f.eks. en enkelt variabel-
> udskrivning, kan det ikke betale sig at bruge response.write.
>
> Eks.
>
> <ul>
> <li><%=variabeltextfraASP%></li>
> <li>alm. tekst 1</li>
> <li>Alm. text 2</li>
> </ul>
>
> <%= virker som indgang til ASPen, og laver samtidig en response.write
> af den efterfølgende variabel, hvorefter der afsluttes med %>
>
> Ellers er hele kodeblokken ren HTML med linjeskift og indrykninger.
>
>
> MVH
> Rune Jensen

<% case "arkiv"

<h1>Arkiv</h1>

<form name="arkiv select">
<p><select name="select1" size="1">
<option value="alerts.htm">Message Boxes</option>
<option value="alertsText.htm">Text Alerts</option>

<option value="alertsImages.htm">Alerts with images</option>
<option value="jumpfunction.htm">Jumping with a form button</option>
<option value="alertConfirm.htm">Confirming Options</option>
<option value="alertConfirm2Locs.htm">More on the Confirmation
Message Box</option>
<option value="alertOnLoad.htm">Hello and Goodbye Messages</option>
<option value="alertHelloEx.htm">Example of Hello and Goodbye
Page</option>

<option value="alertPrompts.htm">Prompting for User Input</option>
<option value="alertPromptEx.htm">Example of Prompting for
Input</option>
<option value="documentWrite.htm">Writing with Java Script</option>
<option value="documentWrite2.htm">Writing where you like</option>
<option value="WindowNew.htm">Opening new Windows</option>
<option value="WindowNew2.htm">Opening new Windows 2</option>

<option value="WindowNewHyperlinks.htm">Using Hyperlinks in New
Windows</option>
<option value="index.html">Contents of Java Script Tutorial </option>
<option value="none" selected="SELECTED">Select a page and
go!</option>
</select>&nbsp;&nbsp;<input type="BUTTON" name="B1" value="Go to
Article ..."
onclick="goToPage1()"></p>
</form>


%>

end select kommer senere..

hvordan kan det skrives?

MVH Anders

--
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

Rune Jensen (30-11-2008)
Kommentar
Fra : Rune Jensen


Dato : 30-11-08 11:28

On 30 Nov., 18:34, Anders M <b...@fixgroup.dk> wrote:

> <% case "arkiv"
>
> <h1>Arkiv</h1>

<SNIP HTML KODE>

> </form>
>
> %>
>
> end select kommer senere..
>
> hvordan kan det skrives?

Jeg formoder, du gerne vil vide, hvordan du går ud og ind af ASPen.

Du går ind i ASP med
<%
og ud med
%>

Første linje skal have en afsluttende %> for at vende tilbage til
HTML. Case vil stadig blive udført, det er bare ikke ASP men HTML så-

På samme måde skal man afslutte Select Casen i ASPen, så du skal ind
og ud nogle gange her, altså:


<% case "arkiv" %>

<h1>Arkiv</h1>

<SNIP HTML KODE>

</form>

<% end select %>


Var det det, du mente?

MVH
Rune Jensen

Anders M (30-11-2008)
Kommentar
Fra : Anders M


Dato : 30-11-08 21:26

Rune Jensen wrote in dk.edb.internet.webdesign.serverside.asp:
> On 30 Nov., 18:34, Anders M <b...@fixgroup.dk> wrote:
>
> > <% case "arkiv"
> >
> > <h1>Arkiv</h1>
>
> <SNIP HTML KODE>
>
> > </form>
> >
> > %>
> >
> > end select kommer senere..
> >
> > hvordan kan det skrives?
>
> Jeg formoder, du gerne vil vide, hvordan du går ud og ind af ASPen.
>
> Du går ind i ASP med
> <%
> og ud med
> %>
>
> Første linje skal have en afsluttende %> for at vende tilbage til
> HTML. Case vil stadig blive udført, det er bare ikke ASP men HTML
så-
>
> På samme måde skal man afslutte Select Casen i ASPen, så du skal ind
> og ud nogle gange her, altså:
>
>
> <% case "arkiv" %>
>
> <h1>Arkiv</h1>
>
> <SNIP HTML KODE>
>
> </form>
>
> <% end select %>
>
>
> Var det det, du mente?
>
> MVH
> Rune Jensen

Lige præcis!
Tusind tak for hjælpen..

--
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

Christian Kragh (01-12-2008)
Kommentar
Fra : Christian Kragh


Dato : 01-12-08 17:17

>> <% case "arkiv" %>
>> <h1>Arkiv</h1>
>> <SNIP HTML KODE>
>> </form>
>> <% end select %>

>> Var det det, du mente?
>> MVH
>> Rune Jensen

> Lige præcis!
> Tusind tak for hjælpen..

Ellers kan du gøre sådan her

function prt(text)
response.write text & vbcrlf
end function

Hver gang du vil skrive noget skal du kalde funktion "prt"

prt "Velkommen til min side"

Det betyder at der automatisk kommer et linjeskift efter "Velkommen til min
side" da der automatisk efter den variabel text i funktionen bliver sat et
vbcrlf.

Du kan selvfølgelig også selv gør det ved at skrive
<% response.write "Velkommen til min side" & vbcrlf %>
eller
<%= "Velkommen til min side" & vbcrlf %>

Jeg bruger måske bare response.write 300 gange på en side.
Funktionen fylder 62 tegn så jeg skal skrive response.write mere end 5 gange
på en side før jeg begynder at spare på pladsen da jeg kun skal bruge 3 tegn
pr. linje i modsætning til 14 normalt.

Jeg har også brugt denne funktion til at erstatte nogle tegn til UTF8 eller
andre tegnsæt hvis det er det jeg kører med.
function prt(text)
qTempTekst = replace(text ,"Æ","&AElig;")
qTempTekst = replace(qTempTekst ,"æ","&aelig;")
qTempTekst = replace(qTempTekst ,"Å","&Aring;")
qTempTekst = replace(qTempTekst ,"å","&aring;")
qTempTekst = replace(qTempTekst ,"Ø","&Oslash;")
qTempTekst = replace(qTempTekst ,"ø","&oslash;")
response.write qTempTekst & vbcrlf

end function

Du kan selvfølgelig selv lave de funktioner præcis som du ønsker

Christian


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste