PDA

View Full Version : Hur gör jag?


Vincent
2002-09-02, 19:24
Hur gör jag för att jag ska kunna skicka mess till vem som hälst så här ser koden ut på sidan som formulären är på
------------------------------------------------------------------------------------
<%
If Session("login") <> "ok" Then
Session("meddelande") = "du har blivit utloggad"
Response.Redirect "index.asp"
End If
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db.mdb")&";pwd=losen"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From kompis Where ID1 = "&Session("id")
RecSet.Open Addera, Connect, 3, 3
%>
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top" colspan="3"><b>Skicka
ett meddelande till n&aring;gon av dina v&auml;nner </b></td>
</tr>
<tr>
<td valign="top" colspan="3">
<form name="form1" method="post" action="do_send.asp">
<% If Request.QueryString("direct") = "no" Then %>
<input type="text" name="to" size="30" maxlength="50" value="">
Till...
<br>
<input type="text" name="rubrik" size="30" maxlength="50">
Rubrik<br>
Meddelande<br>
<textarea name="text" cols="50" rows="8"></textarea>
<br>
<input type="submit" name="Submit" value="Skicka meddelandet">
</form>
</td>
</tr>
</table>
</body>
</html>

------------------------------------------------------------------------------------
Och så här ser koden ut som skickar iväg messet
------------------------------------------------------------------------------------

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db.mdb")&";pwd=losen"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From message"
RecSet.Open Addera, Connect, 3, 3
RecSet.AddNew
RecSet("tillID") = Request.Form("to")
RecSet("rubrik") = Request.Form("rubrik")
RecSet("text") = Request.Form("text")
RecSet("datum") = Date
RecSet("read") = 0
RecSet("namn") = Session("username")
RecSet("fromID") = Session("id")
RecSet.Update
RecSet.Close
Connect.close
Set RecSet = nothing
Set Connect = nothing
Response.Redirect "skicka_mess.asp?direct=no"
%>


------------------------------------------------------------------------------------
det är ett community aspsidanscommunity v.1.0 hur ska jag göra
för att kunna skicka mess till vem som hälst?

Palleman
2002-09-02, 19:38
1. Kolla vilken typ av mailkomponent som används på din server.
2. Skapa en liten funktion som använder komponenten i fråga och skicka din mail med hjälp av den. (ex. CDO-NTS, JMail)

OveRRidE
2002-09-03, 07:00
Om du återkommer med namnet på komponenten så kan vi nog hjälpa dig. :)

voigtann1
2002-09-03, 07:06
det är nog ingen komponent.. utan typ Community Mess-skickande-sak

OveRRidE
2002-09-03, 10:36
Aha. Nu förstår jag. Dags att läsa tråden ytterligare en gång. :r

Du vill alltså inte skicka ett mail, utan ett bara ett 'mess'? Men, till vem som helst låter lite konstigt, du menar inte till alla?

Palleman
2002-09-03, 11:20
Ok, Palle fattar också nu.. :r ;)

Vincent
2002-09-03, 17:39
Jo men hur gör jag så att det visas ett fält som jag skriver in namnet i så skickas det till den personen om det inte finns så ska den bara skita i det och ej skicka!

alj
2002-09-03, 17:53
Läste inte inlägget, så då får jag väl ta bort allt jag skrev :p

OveRRidE
2002-09-03, 19:03
Problemet med din kod är att när du väl fyller i informationen i formuläret, så får du välja en mottagare, och fältet är ett vanligt textfält, som har maxsize 50 och en size på 30. Detta ger ett intryck av att det är användarnamnet som skall fyllas i.

Däremot i filen som tar emot formulärdata:t, (din undre kod), vill scriptet hämta det som står i denna ruta och tror att det är ett user-ID, det står uttryckligen; RecSet("tillID") = Request.Form("to").

Du måste byta ut fältet "to" i ditt formulär mot en rullgardingsmeny som innehåller användarnas namn och ID-nummer så att relationerna i databasen blir rätt. Typ:


<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db.mdb")&";pwd=losen"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From kompis"
RecSet.Open Addera, Connect, 3, 3
%>

<select name="userId">
<% do until recset.eof %>
<option value="<%=recset("usrId")%>"><%=recset("username")%>
<% recset.movenext
loop
%>
</select>


Och sen ta emot det ungefär såhär:


<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db.mdb")&";pwd=losen"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From message"
RecSet.Open Addera, Connect, 3, 3
RecSet.AddNew
RecSet("tillID") = Request.Form("userId")
RecSet("rubrik") = Request.Form("rubrik")
RecSet("text") = Request.Form("text")
RecSet("datum") = Date
RecSet("read") = 0
RecSet("namn") = Session("username")
RecSet("fromID") = Session("id")
RecSet.Update
RecSet.Close
Connect.close
Set RecSet = nothing
Set Connect = nothing
Response.Redirect "skicka_mess.asp?direct=no"
%>

Vincent
2002-09-04, 19:10
men då blir det ju en option med alla namn hur gör jag för att få ett fält som man skriver in bara namnet? det var schysst att du hjälpte mig så långt!

OveRRidE
2002-09-05, 06:41
Det du frågar efter är ju precis det som du har i ditt script i dagsläget. :q