/ 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
En pudsig valideringsfejl
Fra : Jens U. K.


Dato : 02-03-04 14:08

Ønskes: adgangsbegrænsning til bestemte filer, (der fungerer *altid*

Problem: Hvis URL'en : "......./asp/querytest.asp" indtastes to gange i
træk, kommer der første gang et "korrekt" svar om at brugervalidering ikke
lykkedes, mens der anden gang "fejlagtigt" er adgang til den
adgangsbegrænsede side, dog med en asp-fejl i bunden af siden:
--- start fejl ---
Response object error 'ASP 0156 : 80004005'
Header Error
/asp/Querytest.asp, line 3
The HTTP headers are already written to the client browser. Any HTTP
header modifications must be made before writing page content.

--- slut fejl ---

Ud fra fejlen tyder det jo på at min kode forsøger at skriver noget
headerinformation efter der allerede er påbegyndt noget bodyinformation,
og det mener jeg ikke er tilfældet.
Det, som jeg ikke lige forstår er hvorfor den opfører sig anderledes anden
gang den samme URL indtastes.
Session("auth") bliver for resten på intet tidspunkt sat til noget i dette
eksempel.
Nogen der kan spotte fejlen?

Haves: et par filer

- /asp/IsAuth.asp:
--- start ---
<SCRIPT LANGUAGE="vbscript" RUNAT="Server">
if not Session("Auth") = "Y" then
response.Redirect "/filer/uaa.htm"
end if
</SCRIPT>
--- slut ---

- /filer/uaa.htm
--- start ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>DEMO</title></head>
<body>
<H1 align="center">Brugervalidering lykkedes ikke</H1>
</body>
</html>

--- slut ---

- /asp/querytest.asp
--- start ---
<!-- #INCLUDE FILE="IsAuth.asp" -->
<html>
<head>
<title>DEMO</title>
</head>
<body>
<h1>Hovsa, der knækkede filmen!</h1>
</body>
</html>
--- slut ---

- /global.asa
--- start ---
<!--==Visual InterDev Generated - startspan==-->
<!--METADATA TYPE="TypeLib"
uuid="{00000205-0000-0010-8000-00AA006D2EA4}"-->
<!--==Visual InterDev Generated - endspan==-->
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
Response.Buffer=true
End Sub
</SCRIPT>
--- slut ---

Pft.

/Jens Ulrik


 
 
Jens Gyldenkærne Cla~ (02-03-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 02-03-04 21:57

Jens U. K. skrev:

> Problem: Hvis URL'en : "......./asp/querytest.asp" indtastes
> to gange i træk, kommer der første gang et "korrekt" svar om
> at brugervalidering ikke lykkedes, mens der anden gang
> "fejlagtigt" er adgang til den adgangsbegrænsede side,

Har du et link til siden?


> Header Error
> /asp/Querytest.asp, line 3

Hvad er linje 3 i Querytest.asp? Det lader ikke til at være den
linje tre du har gengivet længere nede.



> <SCRIPT LANGUAGE="vbscript" RUNAT="Server">

Det gør formentlig ikke nogen forskel, men har du prøvet med
<% ... %> i stedet for <script>?


> - /asp/querytest.asp
> --- start ---

Der er intet før din includelinje?


> <SCRIPT LANGUAGE=VBScript RUNAT=Server>
> Sub Session_OnStart
> Response.Buffer=true

Hvorfor har du Response.Buffer her? Har du prøvet uden?
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jens U. K. (03-03-2004)
Kommentar
Fra : Jens U. K.


Dato : 03-03-04 11:03

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
news:Xns94A0DF3E973D5jcdmfdk@gyrosmod.cybercity.dk...
> Jens U. K. skrev:
>
> > Problem: Hvis URL'en : "......./asp/querytest.asp" indtastes
> > to gange i træk, kommer der første gang et "korrekt" svar om
> > at brugervalidering ikke lykkedes, mens der anden gang
> > "fejlagtigt" er adgang til den adgangsbegrænsede side,
>
> Har du et link til siden?

Nej, det kører på en intern IIS.
Siden er en nedkogt version, der kun er rettet mod at finde fejlen.

>
> > Header Error
> > /asp/Querytest.asp, line 3
>
> Hvad er linje 3 i Querytest.asp? Det lader ikke til at være den
> linje tre du har gengivet længere nede.
>

Der burde have stået:
/asp/IsAuth.asp, line 3
Det er nok mig der er kommet til at klippe forkert...
Fejlen sker når response.redirect udføres. Maskineriet påstår at der
allerede er påbegyndt header-skrivning...

>
>
> > <SCRIPT LANGUAGE="vbscript" RUNAT="Server">
>
> Det gør formentlig ikke nogen forskel, men har du prøvet med
> <% ... %> i stedet for <script>?

Næh, jeg har ikke været så langt ude endnu... men jeg vil da afprøve
det...
! Dette er hvad der sker:
med <% *auth-script* %> i stedet for <Script> *auth-script* </Script> så
virker alt efter hensigten.
Jeg må jo krybe til korset og indrømme at jeg troede det var to
forskellige måder og skrive det samme på, altså syntaktisk sukker, men det
er det åbenbart ikke. Eller også er det en bug i den version af ASP/IIS
der kører på den interne server her i huset.

En pudsighed er dog at på det "rigtige" site har jeg andre
adgangsbegrænsede asp-sider, men de fejler ikke ligegyldigt hvor mange
gange de bliver kaldt. Forskellen på dem er dog at de *kun* indeholder
<script>...</script>, hvor imod querytest.asp også indeholder "normale"
html-tags.

>
>
> > - /asp/querytest.asp
> > --- start ---
>
> Der er intet før din includelinje?

Nej.

> > <SCRIPT LANGUAGE=VBScript RUNAT=Server>
> > Sub Session_OnStart
> > Response.Buffer=true
>
> Hvorfor har du Response.Buffer her? Har du prøvet uden?

Fordi det er mest fornuftigt ifm det "rigtige" site. Men jeg vil da prøve
at sætte buffer til false og se hvad der så sker.
! Dette er hvad der sker:
Hvis buffer er sat til false, så fejler siden allerede første gang URL'en
kaldes og med samme fejl som før.

Er der ikke nogen der for sjov har afprøvet det lille eksempel selv?

/Jens Ulrik


Jens Gyldenkærne Cla~ (03-03-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 03-03-04 12:06

Jens U. K. skrev:

>> Har du et link til siden?
>
> Nej, det kører på en intern IIS.

Har du mulighed for at lægge eksemplet op online?


> Der burde have stået:
> /asp/IsAuth.asp, line 3
> Det er nok mig der er kommet til at klippe forkert...

- så er det jo svært at hjælpe ;)


> Fejlen sker når response.redirect udføres.

Det giver meget bedre mening.

> Maskineriet påstår at der allerede er påbegyndt header-
> skrivning...

Nej, den påstår at headerskrivningen er overstået. Hvis du har
udskrevet kode til browseren - fx blot ved en smule html-kode før
din include-linje - så kan du ikke ændre ved headerne på siden.


>> <% ... %> i stedet for <script>?

> ! Dette er hvad der sker:
> med <% *auth-script* %> i stedet for <Script> *auth-script*
> </Script> så virker alt efter hensigten.

O.k. - jeg kan ikke forklare hvorfor, men det er da godt at det
virker.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jens U. K. (03-03-2004)
Kommentar
Fra : Jens U. K.


Dato : 03-03-04 13:52

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
news:Xns94A17B2BA382Djcdmfdk@gyrosmod.cybercity.dk...
> Jens U. K. skrev:
>
> >> Har du et link til siden?
> >
> > Nej, det kører på en intern IIS.
>
> Har du mulighed for at lægge eksemplet op online?

Mjah, ikke rigtig. Så skal jeg lægge det på et produktionssite, og det er
jeg ikke så meget for.

[...]
> Nej, den påstår at headerskrivningen er overstået.

Læs hvad jeg mener (ikke hvad jeg skriver

> Hvis du har
> udskrevet kode til browseren - fx blot ved en smule html-kode før
> din include-linje - så kan du ikke ændre ved headerne på siden.

Det er korrekt forstået, og det er selvfølgelig også derfor at jeg undrer
mig over fejlen.

[...]
> > med <% *auth-script* %> i stedet for <Script> *auth-script*
> > </Script> så virker alt efter hensigten.
>
> O.k. - jeg kan ikke forklare hvorfor,

O.k. - er der evt. nogen andre her inde der har set denne fejl før, eller
kan forklare nærmere.

> men det er da godt at det
> virker.

Jep. Tak for ideerne.

/Jens Ulrik


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

Månedens bedste
Årets bedste
Sidste års bedste