webForumDet fria alternativet

request fungerar inte

ASP

17 svar · 436 visningar · startad av LR^evil.sid

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

här sätts ett värde ( har kollat genom "view source" )

[red]response.write "	<input type = 'hidden' value = '" & rs ( "gb_id" ) & "' name = 'msgid'>" & vbcrlf[/red]

här skall ett värde hämtas

[red]set con = server.createobject ( "adodb.connection" )
con.open = driver
con.execute ( " select gb_id, gb_usr from gb where gb_id = "&request ( "msgid" )&" " )[/red]

men det fungerar inte. request ( "msgid" ) innehåller inget värde när jag tittar

Medlem sedan aug. 20011 099 inlägg
#2

request ( "msgid" )
till:
request.form( "msgid" )

Medlem sedan maj 2002560 inlägg
#3

har testat det. det fungerar inte heller ( och heller inte request.form ( "msgid" ) ) jag har testat utan några som hellst mellanslag med samma resultat.

Medlem sedan dec. 19996 721 inlägg
#4

Mellanslagen ska bort, även om det knappast är det som orsakar problemet. Visa gärna mer kod.

Medlem sedan dec. 200012 464 inlägg
#5

Har du något formelement på den sidan? Dvs, húr ser resten av HTML-koden ut?

Medlem sedan maj 2002560 inlägg
#6

delen som skriver ut databasen

[red]<!-- #include file = 'inc/head.inc' -->
<!-- #include file = 'inc/func.inc' -->
					<table width = '100%' cellpadding = '2' cellspacing = '0' border = '0' bgcolor = '#fafafa'>
<%
	dim driver, con, rs, rd, sql, itemdate, itemtime
	dim goOn, errMess, errEml, gb_eml
	dim i, trcolor
	dim gb_post, gb_usr, gb_home

	driver = ( "driver={microsoft access driver (*.mdb)}; dbq=" & server.mappath ( "\project\db\db.mdb" ) )

	select case request ( "action" )
		case ""
			set con = server.createobject ( "adodb.connection" )
			con.open = driver
			set rs = con.execute ( " select gb_id, gb_usr, gb_eml, gb_home, gb_post, gb_time from gb order by gb_time desc" )

			i = 0

			response.write "[blue]<form action = '" & request.servervariables ( "script_name" ) & "' method = 'post'>[/blue]" & vbcrlf

			do while not rs.eof
				set rd = con.execute ( " select gb_time, format$ ( [gb_time], 'dddd dd mmm yyyy' ) as itemdate, format$ ( [gb_time], 'HH:mm' ) as itemtime from gb where gb_id = "&rs ( "gb_id" )&" " )
				gb_post = rs ( "gb_post" )
				gb_post = gb_postFixOut(gb_post)
				gb_post = formatCrLf(gb_post)

				gb_usr = rs ( "gb_usr" )
				gb_usr = gb_usrFixOut(gb_usr)

				gb_home = rs ( "gb_home" )
				gb_home = gb_homeFixOut(gb_home)

				call(colortr)
				response.write "<tr bgcolor = '#" & trcolor & "'>" & vbcrlf
				response.write "<td width = '56'><font color = '#000088'>posted by</font></td>" & vbcrlf
				response.write "<td>:&nbsp;</td>" & vbcrlf
				response.write "<td><font color = '#990077'>" & gb_usr & "</font> @ <font color = '#000077'>" & lcase ( rd ( "itemdate" ) ) & " " & lcase ( rd ( "itemtime" ) ) & "</font>"
				if not len ( rs ( "gb_eml" ) ) = 0 then
					response.write " <a href = 'mailto:" & rs ( "gb_eml" ) & "'><img src = 'img/eml.gif' alt = 'mail to: " & gb_usr & "' border = '0'></a>"
				end if
				if not len ( gb_home ) = 0 then
					response.write " <a href = 'http://" & gb_home & "' target = '_blank'><img src = 'img/home.gif' alt = 'http://" & gb_home & "' border = '0'></a>"
				end if
				response.write " <a href='" & request.servervariables ( "script_name" ) & "?action=re'><img src = 'img/reply.gif' alt = 'reply to message' border = '0'></a></td>" & vbcrlf
				response.write "<td align = 'right'><a href='index.asp?action=edit'><img src = 'img/edit.gif' alt = 'edit your message' border = '0'></a>"
				response.write " <a href='index.asp?action=del'><img src = 'img/delete.gif' alt = 'delete form messagebord' border = '0'></a>"
				response.write " <a href='index.asp?action=ip'><img src = 'img/ip.gif' alt = 'show ip' border = '0'></a></td>" & vbcrlf
				response.write "<input type = 'hidden' value = '" & rs ( "gb_id" ) & "' name = 'msgid'>" & vbcrlf
				response.write "</tr>" & vbcrlf
'				call(colortr)
				response.write "<tr bgcolor = '#" & trcolor & "'>" & vbcrlf
				response.write "<td valign = 'top'><font color = '#000077'>message</font></td>" & vbcrlf
				response.write "<td valign = 'top'>:&nbsp;</td>" & vbcrlf
				response.write "<td colspan = '2'>" & gb_post & "</td>" & vbcrlf
				response.write "</tr>" & vbcrlf
				rs.movenext
			loop

			response.write "					</table>" & vbcrlf

			rs.close
			con.close

			set rs = nothing
			set con = nothing

			i = ""
			trcolor = ""
%>
				</td>
			</tr>
		</table>
		<br>
		<table cellpadding = '1' cellspacing = '0' border = '0' bgcolor = '#fafafa'>
			<tr bgcolor = '#fafafa'>
				<td>
					<table cellpadding = '2' cellspacing = '0' border = '0' bgcolor = '#fafafa'>
						<tr>
							<td colspan = '3'>submit your message:</td>
						</tr>
						<tr>
							<td>usr</td>
							<td>:&nbsp;</td>
							<td><input type = 'text' name = 'usr'></td>
						</tr>
						<tr>
							<td>eml</td>
							<td>:&nbsp;</td>
							<td><input type = 'text' name = 'eml'></td>
						</tr>
						<tr>
							<td>home</td>
							<td>:&nbsp;</td>
							<td><input type = 'text' value = 'http://' name = 'home'></td>
						</tr>
						<tr>
							<td valign = 'top'>message</td>
							<td valign = 'top'>:&nbsp;</td>
							<td><textarea rows = '5' cols = '50' name = 'post'></textarea></td>
						</tr>
						<tr>
							<td colspan = '3' align = 'right'><input type = 'image' src = 'img/btnmsg.gif'></td>
							<input type = 'hidden' value = 'send' name = 'action'>
							<input type = 'hidden' value = '<% =request.servervariables ( "remote_addr" ) %>' name = 'ip'>
						</tr>
					</table>
					[blue]</form>[/blue][/red]

delen som inte funkar

[red]<%
	case "re"
		set con = server.createobject ( "adodb.connection" )
		con.open = driver
		con.execute ( " select gb_id, gb_usr from gb where gb_id = "&[blue]request ( "msgid" )[/blue]&" " )
		con.execute ( " select gb_time, format$ ( [gb_time], 'dddd dd mmm yyyy' ) as itemdate, format$ ( [gb_time], 'HH:mm' ) as itemtime from gb where gb_id = "&gbre_id&" " )

		con.close
		set con = nothing

		goOn = true

		errMess = "<tr>" & vbcrlf
		errMess = errMess & "<td>" & vbcrlf
		errMess = errMess & "<blockquote>" & vbcrlf
		errMess = errMess & "<br>folowing errors need to be corrected before posting your message:<br>" & vbcrlf
		errMess = errMess & "<blockquote>" & vbcrlf

		if len ( request ( "usr" ) ) = 0 then
			errMess = errMess & "- you need to apply usr-name<br>"
			goOn = false
		end if
%>[/red]
Medlem sedan maj 2002560 inlägg
#7

har markerat form-taggen & request:en som inte fungerar, det är de här case-satserna som är relevanta.

ursäkta tabbarna men det är så jag kodar..

Medlem sedan maj 2002560 inlägg
#8

ingen som ser nått fel?

Medlem sedan juni 200032 967 inlägg
#9

Har du on error resume next i koden?
Du borde nämligen få ett felmeddelande.

För det första skall det inte vara likhetstecken efter con.open. Du skapar dessutom inget recordset när du exekverar dina select-satser.

set con = server.createobject ( "adodb.connection" )
con.open driver
[b]set objRS = [/b]con.execute ("select gb_id, gb_usr from gb where gb_id = " & request ("msgid"))

Mvh,

Medlem sedan maj 2002560 inlägg
#10

tänkte inte använda recordset. tänkte få ut värdet genom

[red]con.execute ( " select gb_id as variabel from gb where gb_id = " & "&request ( "msgid" )&" " )[/red]

men det är inte det som är problemet. problemet är att request ( "msgid" ) inte innehåller något värde

Medlem sedan nov. 20017 144 inlägg
#11

Skulle det vara en idé att lägga in request ( "msgid" ) i en variabel innan "caset" så att värdet lägger sig där oavsätt "case"?

MVH Jesper
Har du skrivit ut det med Response.write?

Medlem sedan maj 2002560 inlägg
#12

hur skulle det gå till? den här koden sitter på samma sida alltihop. har provat att innan exekvera databaskopplingen skriva ut request:en med response.write och den innehöll inte något värde.

har inget on error resume next i koden

Medlem sedan dec. 19996 721 inlägg
#13

Börja med att rensa koden från onödiga mellanslag (bara för att undanröja potentiella felkällor). Kör även den resulterande HTML:en genom en HTML-validator (det finns massor på nätet).

Du måste använda recordset för att få ut något från databasen.

Medlem sedan maj 2002560 inlägg
#14

hela koden som den ser ut nu

[red]<!-- #include file = 'inc/head.inc' -->
<!-- #include file='inc/func.inc' -->
					<table width='100%' cellpadding='2' cellspacing='0' border='0' bgcolor='#fafafa'>
<%
	dim driver, con, rs, rd, sql, itemdate, itemtime
	dim goOn, errMess, errEml, gb_eml
	dim i, trcolor
	dim gb_post, gb_usr, gb_home

	driver =("driver={microsoft access driver (*.mdb)}; dbq=" & server.mappath("\project\db\db.mdb"))

	select case request("action")
		case ""
			set con=server.createobject("adodb.connection")
			con.open=driver
			set rs=con.execute(" select gb_id, gb_usr, gb_eml, gb_home, gb_post, gb_time from gb order by gb_time desc")

			i=0

			response.write "<form action='" & request.servervariables("script_name") & "' method='post'>" & vbcrlf

			do while not rs.eof
				set rd=con.execute(" select gb_time, format$([gb_time], 'dddd dd mmm yyyy') as itemdate, format$([gb_time], 'HH:mm') as itemtime from gb where gb_id="&rs("gb_id")&" ")
				gb_post=rs("gb_post")
				gb_post=gb_postFixOut(gb_post)
				gb_post=formatCrLf(gb_post)

				gb_usr=rs("gb_usr")
				gb_usr=gb_usrFixOut(gb_usr)

				gb_home=rs("gb_home")
				gb_home=gb_homeFixOut(gb_home)

				call(colortr)
				response.write "<tr bgcolor='#" & trcolor & "'>" & vbcrlf
				response.write "<td width='56'><font color='#000088'>posted by</font></td>" & vbcrlf
				response.write "<td>:&nbsp;</td>" & vbcrlf
				response.write "<td><font color='#990077'>" & gb_usr & "</font> @ <font color='#000077'>" & lcase(rd("itemdate")) & " " & lcase(rd("itemtime")) & "</font>"
				if not len(rs("gb_eml"))=0 then
					response.write " <a href='mailto:" & rs("gb_eml") & "'><img src='img/eml.gif' alt='mail to: " & gb_usr & "' border='0'></a>"
				end if
				if not len(gb_home)=0 then
					response.write " <a href='http://" & gb_home & "' target='_blank'><img src='img/home.gif' alt='http://" & gb_home & "' border='0'></a>"
				end if
				response.write " <a href='" & request.servervariables("script_name") & "?action=re'><img src='img/reply.gif' alt='reply to message' border='0'></a></td>" & vbcrlf
				response.write "<td align='right'><a href='index.asp?action=edit'><img src='img/edit.gif' alt='edit your message' border='0'></a>"
				response.write " <a href='index.asp?action=del'><img src='img/delete.gif' alt='delete form messagebord' border='0'></a>"
				response.write " <a href='index.asp?action=ip'><img src='img/ip.gif' alt='show ip' border='0'></a></td>" & vbcrlf
				response.write "<input type='hidden' value='" & rs("gb_id") & "' name='msgid'>" & vbcrlf
				response.write "</tr>" & vbcrlf
'				call(colortr)
				response.write "<tr bgcolor='#" & trcolor & "'>" & vbcrlf
				response.write "<td valign='top'><font color='#000077'>message</font></td>" & vbcrlf
				response.write "<td valign='top'>:&nbsp;</td>" & vbcrlf
				response.write "<td colspan='2'>" & gb_post & "</td>" & vbcrlf
				response.write "</tr>" & vbcrlf
				rs.movenext
			loop

			response.write "</table>" & vbcrlf

			rs.close
			con.close

			set rs=nothing
			set con=nothing

			i=""
			trcolor=""
%>
				</td>
			</tr>
		</table>
		<br>
		<table cellpadding='1' cellspacing='0' border='0' bgcolor='#fafafa'>
			<tr bgcolor='#fafafa'>
				<td>
					<table cellpadding='2' cellspacing='0' border='0' bgcolor='#fafafa'>
						<tr>
							<td colspan='3'>submit your message:</td>
						</tr>
						<tr>
							<td>usr</td>
							<td>:&nbsp;</td>
							<td><input type='text' name='usr'></td>
						</tr>
						<tr>
							<td>eml</td>
							<td>:&nbsp;</td>
							<td><input type='text' name='eml'></td>
						</tr>
						<tr>
							<td>home</td>
							<td>:&nbsp;</td>
							<td><input type='text' value='http://' name='home'></td>
						</tr>
						<tr>
							<td valign='top'>message</td>
							<td valign='top'>:&nbsp;</td>
							<td><textarea rows='5' cols='50' name='post'></textarea></td>
						</tr>
						<tr>
							<td colspan='3' align='right'><input type='image' src='img/btnmsg.gif'></td>
							<input type='hidden' value='send' name='action'>
							<input type='hidden' value='<% =request.servervariables("remote_addr") %>' name='ip'>
						</tr>
					</table>
					</form>
<%
	case "send"
		goOn=true

		errMess="<tr>" & vbcrlf
		errMess=errMess & "<td>" & vbcrlf
		errMess=errMess & "<blockquote>" & vbcrlf
		errMess=errMess & "<br>folowing errors need to be corrected before posting your message:<br>" & vbcrlf
		errMess=errMess & "<blockquote>" & vbcrlf

		if len(request("usr"))=0 then
			errMess=errMess & "- you need to apply usr-name<br>"
			goOn=false
		end if
%>
		<!-- #include file='inc/eml.inc' -->
<%
		if len(request("post"))=0 then
			errMess=errMess & "- you need to post a message<br>"
			goOn=false
		end if

		errMess=errMess & "</blockquote>" & vbcrlf
		errMess=errMess & "</blockquote>" & vbcrlf
		errMess=errMess & "</td>" & vbcrlf
		errMess=errMess & "</tr>" & vbcrlf
		errMess=errMess & "</table>" & vbcrlf

		if goOn=true then
			gb_post=request("post")
			gb_post=gb_postFixIn(gb_post)

			gb_usr=request("usr")
			gb_usr=gb_usrFixIn(gb_usr)

			gb_home=request("home")
			gb_home=gb_homeFixIn(gb_home)

			if trim(left(gb_home, 7))="http://" then gb_home=trim(right(gb_home, len(gb_home) - 7))

			sql="insert into gb(gb_usr, gb_eml, gb_home, gb_post, gb_ip) "
			sql=sql & "values('"&trim( gb_usr)&"', "
			sql=sql & "'"&trim( request("eml"))&"', "
			sql=sql & "'"&gb_home&"', "
			sql=sql & "'"&trim( gb_post)&"', "
			sql=sql & "'"&trim( request("ip"))&"') "

			set con=server.createobject("adodb.connection")
			con.open=driver
			con.execute(sql)

			con.close
			set con=nothing

			response.redirect request.servervariables("script_name")
		else
			response.write errMess
		end if
	case "re"
		set con=server.createobject("adodb.connection")
		con.open=driver
rad 170 -->	rs=con.execute(" select gb_id, gb_usr from gb where gb_id="&request("msgid")&" ")
		rs=con.execute(" select gb_time, format$([gb_time], 'dddd dd mmm yyyy') as itemdate, format$([gb_time], 'HH:mm') as itemtime from gb where gb_id="&gbre_id&" ")

		con.close
		set con=nothing

		goOn=true

		errMess="<tr>" & vbcrlf
		errMess=errMess & "<td>" & vbcrlf
		errMess=errMess & "<blockquote>" & vbcrlf
		errMess=errMess & "<br>folowing errors need to be corrected before posting your message:<br>" & vbcrlf
		errMess=errMess & "<blockquote>" & vbcrlf

		if len(request("usr"))=0 then
			errMess=errMess & "- you need to apply usr-name<br>"
			goOn=false
		end if
%>
		<!-- #include file='inc/eml.inc' -->
<%
		if len(request("post"))=0 then
			errMess=errMess & "- you need to post a message<br>"
			goOn=false
		end if

		errMess=errMess & "</blockquote>" & vbcrlf
		errMess=errMess & "</blockquote>" & vbcrlf
		errMess=errMess & "</td>" & vbcrlf
		errMess=errMess & "</tr>" & vbcrlf
		errMess=errMess & "</table>" & vbcrlf

		if goOn=true then
			gb_post=request("post")
			gb_post=gb_postFixIn(gb_post)

			gb_usr=request("usr")
			gb_usr=gb_usrFixIn(gb_usr)

			gb_home=request("home")
			gb_home=gb_homeFixIn(gb_home)

			if trim(left(gb_home, 7))="http://" then gb_home=trim(right(gb_home, len(gb_home) - 7))

			gb_post="[reply to: " & left(gb_usr, 10) & itemdate & " " & itemtime & "]"

			sql="insert into gb(gb_usr, gb_eml, gb_home, gb_post, gb_ip) "
			sql=sql & "values('"&trim(gb_usr)&"', "
			sql=sql & "'"&trim( request("eml"))&"', "
			sql=sql & "'"&gb_home&"', "
			sql=sql & "'"&trim(gb_post)&"', "
			sql=sql & "'"&trim(request("ip"))&"') "

			set con=server.createobject("adodb.connection")
			con.open=driver
			con.execute(sql)

			con.close
			set con=nothing

			response.redirect request.servervariables("script_name")
		else
			response.write errMess
		end if
	case "del"
	case "edit"
	case "ip"
	end select
%>
<!-- #include file='inc/foot.inc' -->[/red]

html:en fungerar fint

felmeddelande:

[red]Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'gb_id='.
/project/index.asp, line 170[/red]
Medlem sedan maj 2002560 inlägg
#15

ingen som har någon idé om varför requesten inte fungerar?

Medlem sedan dec. 19996 721 inlägg
#16

Den raden är det inget fel på (förutom att set saknas framför rs). Däremot kan jag inte se att man kan komma dit med med någon slags msgid. Det enda du har är ju

response.write " <a href='" & request.servervariables("script_name") & "?action=re'><img src='img/reply.gif' alt='reply to message' border='0'></a></td>" & vbcrlf

...och där saknas msgid i länken.

Medlem sedan maj 2002560 inlägg
#17

msgid sitter i en input hidden. det är den markerade raden

[red]response.write " <a href='" & request.servervariables("script_name") & "?action=re'><img src='img/reply.gif' alt='reply to message' border='0'></a></td>" & vbcrlf
response.write "<td align='right'><a href='index.asp?action=edit'><img src='img/edit.gif' alt='edit your message' border='0'></a>"
response.write " <a href='index.asp?action=del'><img src='img/delete.gif' alt='delete form messagebord' border='0'></a>"
response.write " <a href='index.asp?action=ip'><img src='img/ip.gif' alt='show ip' border='0'></a></td>" & vbcrlf
[blue]response.write "<input type='hidden' value='" & rs("gb_id") & "' name='msgid'>" & vbcrlf[/blue][/red]

vart saknas det ett rs säger du?

Medlem sedan maj 2002560 inlägg
#18

känner mig som en komplett idiot men problemet är löst :i

[red]response.write " <a href='index.asp?action=re[b][blue]&msgid=" & rs("gb_id") &[/blue][/b] "'><img src='img/reply.gif' alt='reply to message' border='0'></a></td>" & vbcrlf[/red]

tack alla!

481 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
334 ms — deklarationer (db)
0 ms — hämta statistik (cache)
145 ms — hämta tråd, inlägg och bilagor (db)
333 ms — ändringar (db)