MeleaMedlem sedan juli 20033 147 inlägg 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 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 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 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 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 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 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 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 Vad funkar?
Din gamla kod?