webForumDet fria alternativet

Meddelande script prob.

ASPur ASP

11 svar · 225 visningar · startad av Melea

MeleaMedlem sedan juli 20033 147 inlägg
#1

Hejsan!

Nu är jag tillbaka med ett problem jag inte hittar ngt svar till :)

Jag håller på att fixa ett meddelande system till en sida jag jobbar på. Folk ska alltså kunna skicka meddelanden till varandra och det var absolut inga problem att fixa, men! När jag ska skriva en kod som gör att det inte går att skicka ett meddelande till en viss person om personen inte existerar i databasen så får jag ett problem. Själva Session meddeladet visas även om jag skriver till en person som finns i databasen. Min nuvarande kod ser ut såhär:

MySQL = "SELECT * FROM members" 
Set RecSet = Connect.Execute(MySQL)

Do Until RecSet.EOF

If Request.Form("userTO") <> RecSet("username") then
Session("nouser") = "Det finns ingen med det användarnamnet"
Response.Redirect "../message_send.asp"
End If

RecSet.Movenext
Loop

Vore ytterst tacksam om någon kunde hjälpa mig med det här.

Tack på förhand

//Jonas "Mellow" Stenberg

Jesper TMedlem sedan nov. 20017 144 inlägg
#2

Jag skulle nog ha gjort så här:

sql = "SELECT * FROM members WHERE username = '" & Request.Form("userTO") &"'"
Set rsUser = Server.CreateObject("ADODB.Recordset")
rsUser.Open sql, conn, 3, 3

if not rsUser.EOF then

'uppdatera databasen med nytt meddelande

else 

Session("nouser") = "Det finns ingen med det användarnamnet"
Response.Redirect "../message_send.asp"

end if
MeleaMedlem sedan juli 20033 147 inlägg
#3

Nu hänger jag inte med riktigt, beror antagligen på min "trötthet" :OO

Men...

Såhär lyder hela koden:

<%
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "Driver={MySQL ODBC 3.51 Driver};server=localhost;uid=xxx;pwd=xxx;database=xxx" 
Set RecSet = Server.CreateObject("ADODB.Recordset")

MySQL = "SELECT * FROM members" 
Set RecSet = Connect.Execute(MySQL)

Do Until RecSet.EOF

If Request.Form("userTO") <> RecSet("username") then
Session("nouser") = "Det finns ingen med det användarnamnet"
Response.Redirect "../message_send.asp"
End If

RecSet.Movenext
Loop

dim struserTO, struserFROM, strTopic, strText, strDatum, strIP
struserTO = Request.Form("userTO")
struserFROM = Request.Form("userFROM")
strtopic = Request.Form("topic")
strtext = Request.Form("text")
strdatum = Hour(Time) & ":" & Minute(Time) & ":" & Second(Time)
strIP = Request.ServerVariables("REMOTE_ADDR")
sql = " insert into message(userTO, userFROM, Topic, Text, Datum, IP) "  & " values('" & struserTO & "','" & struserFROM & "', '" & strtopic & "','" & strtext & "','" & strdatum & "','" & strIP & "') "
Connect.Execute sql,,128

Session("sent") = "Meddelandet är nu skickat till " & Request.Form("userTO") & ". "
Response.Redirect("../message_send.asp")
%>
Jesper TMedlem sedan nov. 20017 144 inlägg
#4

Som princip:

 <%
dim struserTO, struserFROM, strTopic, strText, strDatum, strIP
struserTO = Request.Form("userTO")
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "Driver={MySQL ODBC 3.51 Driver};server=localhost;uid=xxx;pwd=xxx;database=xxx" 
Set RecSet = Server.CreateObject("ADODB.Recordset")

MySQL = "SELECT * FROM members where username = '"& struserTO &"'"
Set RecSet = Connect.Execute(MySQL)

if not RecSet.EOF then

struserFROM = Request.Form("userFROM")
strtopic = Request.Form("topic")
strtext = Request.Form("text")
strdatum = Hour(Time) & ":" & Minute(Time) & ":" & Second(Time)
strIP = Request.ServerVariables("REMOTE_ADDR")
sql = " insert into message(userTO, userFROM, Topic, Text, Datum, IP) "  & " values('" & struserTO & "','" & struserFROM & "', '" & strtopic & "','" & strtext & "','" & strdatum & "','" & strIP & "') "
Connect.Execute sql,,128

Session("sent") = "Meddelandet är nu skickat till " & Request.Form("userTO") & ". "
Response.Redirect("../message_send.asp")
else 
Session("nouser") = "Det finns ingen med det användarnamnet"
Response.Redirect "../message_send.asp"
end if
%>
Jesper TMedlem sedan nov. 20017 144 inlägg
#5

Att skapa två sessioner är onödigt, du kan ju lägga in olika meddelanden i samma session med samma namn som du sedan skriver ut på sidan message_send.asp

MeleaMedlem sedan juli 20033 147 inlägg
#6

Feltyp:
ADODB.Recordset (0x800A0BB9)
Parametrarna är felaktiga, ligger utanför tillåtet intervall eller skapar en inbördes konflikt.
/creative/counter-strike/admin/message_send.asp, line 10

sql = "SELECT * FROM members WHERE username = '" & Request.Form("userTO") &"'"
Set rsUser = Server.CreateObject("ADODB.Recordset")
rsUser.Open sql, conn, 3, 3 'HÄR ÄR RAD 10
Jesper TMedlem sedan nov. 20017 144 inlägg
#7

Det är för en annan connection. Testa koden jag limmade in senast i stället.

...
MySQL = "SELECT * FROM members where username = '"& struserTO &"'"
Set RecSet = Connect.Execute(MySQL)
...
MeleaMedlem sedan juli 20033 147 inlägg
#8

Aa nog e jag trött :) Men trodde inte jag var så här trött...

Allt funkar perfekt nu, tack så hemskt mkt för din uthållighet :e

MVH Jonas "Mellow" Stenberg

Jesper TMedlem sedan nov. 20017 144 inlägg
#9

Vad funkar?
Din gamla kod?

MeleaMedlem sedan juli 20033 147 inlägg
#10

Din nya kod ;)

Jesper TMedlem sedan nov. 20017 144 inlägg
#11

Puuuhh. Grattis! :bire

MeleaMedlem sedan juli 20033 147 inlägg
#12

cheers mate :birp

138 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)