webForumDet fria alternativet

response.redirect(referer) - A URL is required

8 svar · 378 visningar · startad av annesophie

annesophieMedlem sedan juni 20012 236 inlägg
#1

Hej,

Har stött på ett märkligt problem i mitt forum.
En medlem kan inte logga in och får felmeddelande, se nedan, men om jag loggar in som henne med hennes
användarnamn och lösen så går det bra. Ingen annan medlem verkar ha problem med inloggning eller forumet.

När medlemmen försöker logga in får hon följande felmeddelande:

Response object error 'ASP 0158 : 80004005'

Missing URL

/login.asp, line 22

A URL is required.

Login.asp ser ut så här:

<%
	' LOG MEMBER IN IF A MATCH IS FOUND FOR MEMBER NAME AND PASSWORD
	username = request.form("username")
	userpw = request.form("userpw")
	
	sql = "select * from Member where memName = '" & username & "'"
	set rs = conn.execute(sql)
	if not rs.eof then
		if ucase(userpw) = ucase(rs("memPassword")) then
			session("forumid") = rs("memID")
			sessioN("forumname") = rs("memName")
			session("forumlevel") = rs("memLevel")
			
			sql = "update member set memLoggedOn = " & true & ", memLastActive = #" & now & "# where memID = " & session("forumid")
			conn.execute(sql)
		end if
	end if
	
	referer = request.servervariables("HTTP_REFERER")
	[b]response.redirect(referer)[/b]
%>

Rad 22:

	[b]response.redirect(referer)[/b]

Kan någon förklara för mig varför jag kan logga in utan att få felmeddelande, plus uppenbarligen andra medlemmar, men inte hon.
Jag är helt ställd! :(

martinpartinMedlem sedan jan. 2001373 inlägg
#2
response.redirect(referer)

skriv ut strängen

response.write(referer)

Vad ger det ?

cyprysMedlem sedan dec. 20003 563 inlägg
#3

Har man avaktiverat cookies (har jag för mig) innehåller inte http-referer något värde.
Det är alltså inte en helt säker metod att använda referer.

annesophieMedlem sedan juni 20012 236 inlägg
#4

martinpartin: Ja för henne innehåller den uppenbarligen inget.

cyprus: Ok, inget bra sätt alltså... Hur skulle du göra då? HELP!

cyprysMedlem sedan dec. 20003 563 inlägg
#5

Eftersom det bara handlar om en inloggning skulle jag gjort något sånthär.

referer = request.servervariables("HTTP_REFERER")

if len(trim(referer)) = 0 then referer = "index.asp"

response.redirect(referer)
K@llenMedlem sedan mars 20032 667 inlägg
#6

annesophie skrev:

cyprus: Ok, inget bra sätt alltså... Hur skulle du göra då? HELP!

Skicka med URL:en i ett hiddenfält i inloggningsformuläret. Använd sedan denna URL för att skicka tillbaka besökaren.

Finns en färdig funktion (signerad Pace) i scriptarkivet som tar ut URL:en från adressraden.

martinpartinMedlem sedan jan. 2001373 inlägg
#7

läste som valigt inte hela frågan... ;-)

annesophieMedlem sedan juni 20012 236 inlägg
#8

Tack killar! :)
Återkommer senare för att acceptera ett svar om hon meddelar att hon kommer in nu (testade Cyprus lösning men antar att K@llens är mer långsiktig?).

K@llenMedlem sedan mars 20032 667 inlägg
#9

Det beror ju på din smak. ;)

Vill du att besökaren ska hamna på startsidan om referer är tom, då är cyprys fullt tillräcklig, men vill du att alla ska bli tillbakaskickade till den föregående sidan, då bör du välja min. Smaksak alltså. :)

Men jag är inte säker på att cyprys-koden funkar som tänkt. När jag testat (dock inte i ASP) har referer returnerat allt utom filnamnet när brandväggen varit inställd på att inte tillåta referer. Ex:

Avstängd:
http://webforum.nu/member/

Aktiverad:
http://webforum.nu/member/info.php?action=do

Detta kan nog skilja mellan olika brandväggar m.m.

133 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)