webForumDet fria alternativet

Skicka meddelande till ALLA användare

ASP

8 svar · 317 visningar · startad av Melea

Medlem sedan juli 20033 147 inlägg
Frågan#1

Hejsan!

Jag jobbar som sagt på ett meddelande script som gör att medlemmarna kan skicka meddelande till varandra and so on...

Nu vill jag alltså som administratör kunna skicka meddelanden till ALLA användare...

Jag har tyvärr inte en aning om hur jag ska lyckas med detta :)

Så här ser iaf koden ut i nuläget:

<!-- #include file="adovbs.inc" -->
<!-- #include file="../../data.inc" -->
<%
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="&strserver&";uid="&struser&";pwd="&strpass&";database="&strdb&"" 
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

dim struserTO2, struserFROM2, strTopic2, strText2, strDatum2, strIP2
struserTO2 = Request.Form("userTO")
struserFROM2 = Request.Form("userFROM")
strtopic2 = Request.Form("topic")
strtext2 = Request.Form("text")
strdatum2 = Hour(Time) & ":" & Minute(Time) & ":" & Second(Time)
strIP2 = Request.ServerVariables("REMOTE_ADDR")
sql = " insert into message_outbox(userTO, userFROM, Topic, Text, Datum, IP) "  & " values('" & struserTO2 & "','" & struserFROM2 & "', '" & strtopic2 & "','" & strtext2 & "','" & strdatum2 & "','" & strIP2 & "') "
Connect.Execute sql,,128

Session("fel") = "Meddelandet är nu skickat till " & Request.Form("userTO") & ". "
Response.Redirect("../message_send.asp")
else 
Session("fel") = "Det finns ingen med det användarnamnet"
Response.Redirect "../message_send.asp"
end if
%>

Tacksam för svar! ;)

MVH Jonas "Mellow" Stenberg

Medlem sedan juli 20033 147 inlägg
#2

Ingen som har ork att kolla den här? :(

Medlem sedan dec. 20003 563 inlägg
#3

Du får helt enkelt lov att skapa en funktion till dig själv som loopar igenom samtliga medlemmar och skapar en post för varje medlem.

ex.
IntadminID = 1
StrMessage = "Här är ett meddelande"
Set Rs = conn.execute("SELECT id FROM members")
do until Rs.Eof
  conn.execute("INSERT INTO messages (from, to, mess) VALUES("& IntadminID &", "& rs("id") &", '" & StrMessage & "'")
Rs.MoveNext
Loop
Medlem sedan juli 20033 147 inlägg
#4

Mm Tack så hemskt mkt...

För er som är intresserade hur koden blev så har ni den här:

<!-- #include file="adovbs.inc" -->
<%
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")

If Request.Form("userTO") = "tillallaanvandare" then

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

Do Until RecSet.EOF

dim struserTO3, struserFROM3, strTopic3, strText3, strDatum3, strIP3
struserTO3 = RecSet("username")
struserFROM3 = Request.Form("userFROM")
strtopic3 = Request.Form("topic")
strtext3 = Request.Form("text")
strdatum3 = Hour(Time) & ":" & Minute(Time) & ":" & Second(Time)
strIP3 = Request.ServerVariables("REMOTE_ADDR")
sql = " insert into message(userTO, userFROM, Topic, Text, Datum, IP) "  & " values('" & struserTO3 & "','" & struserFROM3 & "', '" & strtopic3 & "','" & strtext3 & "','" & strdatum3 & "','" & strIP3 & "') "
Connect.Execute sql,,128

RecSet.Movenext
Loop

Session("msg") = "Meddelandet är nu skickat till " & Request.Form("userTO") & ". "
Response.Redirect("../message_send.asp")

End If

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

dim struserTO2, struserFROM2, strTopic2, strText2, strDatum2, strIP2
struserTO2 = Request.Form("userTO")
struserFROM2 = Request.Form("userFROM")
strtopic2 = Request.Form("topic")
strtext2 = Request.Form("text")
strdatum2 = Hour(Time) & ":" & Minute(Time) & ":" & Second(Time)
strIP2 = Request.ServerVariables("REMOTE_ADDR")
sql = " insert into message_outbox(userTO, userFROM, Topic, Text, Datum, IP) "  & " values('" & struserTO2 & "','" & struserFROM2 & "', '" & strtopic2 & "','" & strtext2 & "','" & strdatum2 & "','" & strIP2 & "') "
Connect.Execute sql,,128

Session("msg") = "Meddelandet är nu skickat till " & Request.Form("userTO") & ". "
Response.Redirect("../message_send.asp")
else 
Session("msg") = "Det finns ingen med det användarnamnet"
Response.Redirect "../message_send.asp"
end if
%>

Sen funkar det så att om jag skriver "tillallaanvandare" i userTO formuläret så skickas meddelandet till ALLA användare...

Som ni ser har jag också gjort så alla meddelanden sparas i "message_outbox" för att de inte ska bli borttagna om ena parten tar bort sitt meddelande.

Medlem sedan mars 20015 287 inlägg
#5

Lite OT, men är det där all kod på sidan?
Varför inkluderar du adovbs.inc?

red/ fel av mig...

Medlem sedan juli 20033 147 inlägg
#6

Har inte en aning varför jag inkluderar abovbs.inc, ibland måste man ha den (tydligen?)... inte vet jag :D

Är självlärd när det gäller asp, har prövat mig fram, därför jag inte kan alla uttryck o konstiga ord :P

Btw. OT = ? :)

Medlem sedan juni 20019 519 inlägg
#7

OT = Off-Topic

Medlem sedan mars 20015 287 inlägg
#8

adovbs.inc innehåller konstanter, oftas när man behöver den är det när man skapar ett recordset som så här:

sql= "SELECT * FROM medlem ORDER BY Enamn"
RecSet.Open sql, Connect, adOpenStatic, adLockOptimistic

I detta fall är då: adOpenStatic samt adLockOptimistic konstanter som får sitt värde från just adovbs.inc, men... du kan lika gärna deklarera dessa värden direkt:

sql= "SELECT * FROM medlem ORDER BY Enamn"
RecSet.Open sql, Connect, 3, 3

På så sätt slipper du att inkludera den filen.

Vad jag kan se använder du dig inte av någon av konstanterna över huvud taget i din kod...

Medlem sedan juli 20033 147 inlägg
#9

Okej, tack så mkt! :)

264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)