webForumDet fria alternativet

fel i värden?

ASP

10 svar · 295 visningar · startad av LR^evil.sid

Medlem sedan maj 2002560 inlägg
Frågan#1

tjena på er allihop!
nu har jag grävt ner mig i kod igen :)
finns det någon som kan se vad som blir fel
---
det första som händer när du kommer till sidan är rad 64
därefter fyller du i ett lösenord och hamnar på rad 40
sedan bockar du av checkboxen och klickar på länken "yes". då ska du hamna på rad 31 men hamnar på rad 64 utan att något ändrats i databasen.

har två tabeller som ser ut på följande vis:

tabell [config]
      cfg_id --> räknare [värde 1/1] <-- endast en rad
      cfg_dontask --> true/false [värde false]

tabell [gb]
      gb_id --> räknare
      gb_usr --> text
      gb_eml --> text
      gb_home --> text
      gb_post --> pm
      gb_ip --> text
      gb_time --> datum

sätter jag värdet "true" i tabellen "[config]" fungerar allt utmärkt.
---
har markerat raderna som skickar värden
---

[red]case = "del"
	dim scriptname, msgid, pwd

	driver=("driver={microsoft access driver (*.mdb)}; dbq=" & server.mappath("\project\db\db.mdb"))
	scriptname=request.servervariables("script_name")
	msgid=request("msgid")
	session("pwd")=request("pwd")

	if session("pwd")="usrPassword" then
		set con=server.createobject("adodb.connection")
		con.open=driver
		set rs=con.execute(" select cfg_dontask from config ")

		if rs("cfg_dontask")=true then
			con.execute(" delete * from gb where gb_id="&msgid&" ")

			rs.close
			con.close

			set rs=nothing
			set con=nothing

			session.abandon
			response.redirect scriptname
[blue]rad 31[/blue]		else
			if cbool(request("goOn"))=true then
				set con=server.createobject("adodb.connection")
				con.open=driver
				con.execute(" delete * from gb where gb_id="&msgid&" ")
				if request("config")="true" then con.execute(" update config set cfg_dontask=true ")

				session.abandon
				response.redirect scriptname
[blue]rad 40[/blue]			else
				if cbool(request("q"))=false then
					response.write "<tr>" & vbcrlf
					response.write "<td colspan='2'>are you sure you want to delete the post?" & vbcrlf
					response.write "</tr>" & vbcrlf
					response.write "<tr>" & vbcrlf
					response.write "<td>dont ask me again. <input type='checkbox' name='config' checked></td>" & vbcrlf
					[b]response.write "<td><a href='" & scriptname & "?action=del&goOn=true&q=true" & "'>yes</a> "
					response.write "<a href='" & scriptname & "?action=del&goOn=false&q=false" & "'>no</a></td>" & vbcrlf[/b]
					response.write "</tr>" & vbcrlf
					response.write "</table>" & vbcrlf
				else
					session.abandon
					response.redirect scriptname
				end if
			end if
		end if
	elseif not session("pwd")="usrPassword" and len(session("pwd")) > 0 then
		response.write "<tr>" & vbcrlf
		response.write "<td>you have to be an administrator to delete posts</td>" & vbcrlf
		response.write "</tr>" & vbcrlf
		response.write "</table>" & vbcrlf

		session.abandon
[blue]rad 64[/blue]	else
		[b]response.write "<form action='" & scriptname & "?action=del&msgid=" & msgid & "' method='post'>" & vbcrlf[/b]
		response.write "<tr>" & vbcrlf
		response.write "<td>enter your password</td>" & vbcrlf
		response.write "</tr>" & vbcrlf
		response.write "<tr>" & vbcrlf
		response.write "<td>pwd: <input type='password' value='usrPassword' name='pwd'>" & vbcrlf
		response.write "</tr>" & vbcrlf
		response.write "</table>" & vbcrlf
		response.write "<input type='image' src='img/sbmt.gif' class='sbmt'></td>" & vbcrlf
		response.write "</form>" & vbcrlf
		response.write "<script language='javascript'>" & vbcrlf
		response.write "document.forms[0].pwd.focus(0)" & vbcrlf
		response.write "</script>" & vbcrlf

		session.abandon
	end if[/red]
Medlem sedan mars 20015 287 inlägg
#2

if session("pwd")="usrPassword" then

Hur får usrPassword sitt värde? Längre upp i koden eller?
Annars ska det väl stå:
if session("pwd")=request.form("usrPassword") then

Medlem sedan maj 2002560 inlägg
#3

jusst nu ÄR usrPassword lösenordet. den ska egentligen få den genom en "request" men får den nu default genom html-koden för enkelhetens skull...

[red][blue]rad 70[/blue]		response.write "<td>pwd: <input type='password' [b]value='usrPassword'[/b] name='pwd'>" & vbcrlf[/red]

det kommer att hämtas genom rad 7

[red]session("pwd")=request("pwd")[/red]

utan att ligga i hårdknackad kod

Medlem sedan okt. 20005 273 inlägg
#4

Är du säker att den får nått värde ?

Testa att skriva ut den genom

[red]
Response.Write Session("pwd")
[/red]
Medlem sedan maj 2002560 inlägg
#5

jodå... den har rätt värde.

Medlem sedan juni 200032 967 inlägg
#6

Och om du skriver ut cbool(request("goOn")) med response.write?

Medlem sedan maj 2002560 inlägg
#7

1:a False
2:a False
3:e True

stora bokstäver. alltså .asp och inte en sträng eftersom jag kodar allt i små bokstäver.

Medlem sedan maj 2002560 inlägg
#8

nån som har någon annan ide?

Medlem sedan maj 2002560 inlägg
#9

jag sitter fast! nån som orkar?

Medlem sedan mars 20015 287 inlägg
#10

config får aldrig sitt värde, det ändrade från kryssrutan du checka i/av eftersom du inte postar något formulär utan endast klickar på en länk.
(Tror jag efter att ha skummat igenom det hela.)

Medlem sedan maj 2002560 inlägg
#11

det måste det ju vara... ska ta tag i det nu på en gång :)

413 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
145 ms — deklarationer (db)
123 ms — hämta statistik (db)
137 ms — hämta tråd, inlägg och bilagor (db)
143 ms — ändringar (db)