Avatar billede cybles Nybegynder
10. november 2000 - 14:46 Der er 16 kommentarer og
1 løsning

Sende post fra database


Til eksperterne

Jeg har lavet en lille e-handels løsning. Det fungere meget godt, der er bare lige det, at når brugern laver en bestilling, ender den i en database, men det er jo ikke så smart, for så skal jeg jo hele tiden kigge i den database for at se om der ligger nye ordre.

Hvordan løser jeg dette nemmest ?
Avatar billede diktator Nybegynder
10. november 2000 - 14:57 #1
Hvis ordren går igennem kan du bare lade dit script afsende dig en mail så du ved besked..

/D!ktator
Avatar billede cybles Nybegynder
10. november 2000 - 14:59 #2
Fortæl ?
Avatar billede ricky Nybegynder
10. november 2000 - 15:02 #3
du kan også bare enten lave en popup eller sende en mail til dig selv - i.f.m. den kode der håndterer ordreindlæggelsen. Eller hvis ingen kode... lav et \'on timer\' event der checker for nye ordrer.
Avatar billede ricky Nybegynder
10. november 2000 - 15:03 #4
jeg synes at script er en dårlig ide, da det oftest afhænger af en ekstern mailtjeneste... og disse er ikke altid lige stabile...
Avatar billede diktator Nybegynder
10. november 2000 - 15:03 #5
Hvis din bestilling er ok  afvikles dette script med Jmail:


<% IF Bestilling = \"OK\" THEN

    Set JMail = Server.CreateObject(\"JMail.SMTPMail\")
   
    JMail.ServerAddress = \"din.server.dk\"

    JMail.Sender = \"email@email.dk\"

    JMail.Sendername = Request.Form(Trim(\"Variable\"))

    JMail.Subject = \" tekst \"

    \' **** Modtager af e-mailen ( f.eks. din@email.dk ) ************
    JMail.AddRecipient \"din@e-mail.dk\"
   
    JMail.body = \"Til: \" & vbCrLf
    JMail.Priority = 3

    JMail.AddHeader \"Originating-IP\", Request.ServerVariables(\"REMOTE_ADDR\")
   
    \' **** Sender E-Mailen ************
    JMail.Execute

END IF %>
Avatar billede diktator Nybegynder
10. november 2000 - 15:05 #6
På den måde kan du også sende en bekræftigelse på ordren til kunden.

Eks.

IF NOT Request.Form(\"Email\")=\"\" THEN
    JMail.AddRecipientBCC Request.Form(\"Email\")
    END IF
Avatar billede cybles Nybegynder
10. november 2000 - 15:23 #7

Til Diktator

Ok din ide syndes jeg er en god ide. Derfor har jeg nu installeret Jmail. Nu skal jeg bare vide, hvor skal jeg sætte det stykke kode ind du har postet her ?
Avatar billede diktator Nybegynder
10. november 2000 - 15:30 #8
Du kan sætte det ind umiddelbart efter du har opdateret din db. Nu ved jeg jo ikke lige hvordan dit script ser ud, men sæt en variabel, f.eks. \'bestilling\' = ok hvis ordren går fejlfri igennem og put det ind efterfølgende på siden...
Avatar billede cybles Nybegynder
10. november 2000 - 16:34 #9
Ok nu har jeg rodet med den men jeg tror nok at jeg sætter fast, hvordan kommer jeg videre ?
Avatar billede diktator Nybegynder
10. november 2000 - 16:53 #10
Det burde være simpelt nok...
Hvor sidder du fast henne?

Prøv etv. at liste din kode der opdaterer din db
-så går det måske lidt nemmere ;-)

Avatar billede cybles Nybegynder
10. november 2000 - 16:59 #11
Language=VBScript %>

<!-- #include file=\"db.inc\" -->
<%

If Session(\"customerid\") = \"\" Then
    Response.Redirect \"error.asp?error=\" & Server.URLEncode (\"Jeg fandt desværre ikke dine informationer, udfyld venligst de nødvendige informationer.\")
End If

Dim rs
Set rs = Server.CreateObject (\"ADODB.Recordset\")
    rs.Open \"customers\", dbc, adOpenForwardOnly, adLockReadOnly, adCmdTable
    rs.Filter = \"custID = \" & CInt(Session(\"customerid\"))
If rs.EOF then
    Response.Redirect \"customer.asp?error=\" & Server.URLEncode(\"Jeg fandt desværre ikke nogle informationer om dig.\")
End If
msg = Request.QueryString (\"msg\")
%>
<%
\'prevent browsers from caching page
Response.Expires = 0
%>
<html>
<head>
<meta name=\"GENERATOR\" Content=\"Microsoft Visual Studio 6.0\">
<title>Gå til kassen</title>
</head>
<body bgcolor=\"#FFFFFF\" text=\"#000000\" alink=\"#003399\" link=\"#003399\" vlink=\"#003399\">
<basefont face=\"Verdana, arial, helvetica\">
<table border=\"0\" width=\"100%\" cellpadding=\"6\" cellspacing=\"1\">
  <tr>
<td>
    <form action=\"verify.asp\" method=\"POST\" id=\"form1\" name=\"form1\">
  </tr>
    <table width=\"100%\">

    <td colspan=\"2\" bgcolor=\"#336699\"><font color=\"white\" face=\"Verdana, arial, helvetica\" size=\"1\">ØNSKER DU AT BETALE VIA EFTERKRAV SKAL DU AFGIVE DIN ORDRE PÅ TELEFON 32 48 65</font></td>
    </table>
<BR>
<table border=\"0\" cellpadding=\"3\" cellspacing=\"2\" width=\"100%\">
          <tr bgcolor=\"#336699\">
            <td width=\"15%\"><font color=\"#FFFFFF\" face=\"Verdana, arial, helvetica\" size=\"1\">TOTAL</font></td>
          </tr>
<%
Dim isubtotal, i, metacartItem, arrCart
metacartItem = Session(\"cartItem\")
arrCart = Session(\"MyCart\")
isubtotal = 0
For i = 1 to metacartItem
%>
  <tr bgcolor=\"#D3D3D3\">
            <td width=\"15%\"><font face=\"Verdana, arial, helvetica\" size=\"1\"><input name=\"selected\" <%= cstr(i)%> type=\"checkbox\" value=\"yes\" checked><%= arrCart(cProductCode,i) %></font></td>
            <td width=\"40%\"><font face=\"Verdana, arial, helvetica\" size=\"1\"><%= arrCart(cProductname,i) %></font></td>
            <td width=\"15%\"><font face=\"Verdana, arial, helvetica\" size=\"1\"><input type=\"text\" name=\"quantity\" <%= cstr(i) %> value=\"<%= arrCart(cQuantity,i) %>\" size=\"1\"></font></td>
            <td width=\"15%\"><font face=\"Verdana, arial, helvetica\" size=\"1\"><%= FormatCurrency(arrCart(cUnitPrice,i),2) %></font></td>
            <td width=\"15%\" align=\"right\"><font face=\"Verdana, arial, helvetica\" size=\"1\"><%= FormatCurrency(arrCart(cUnitPrice,i) * arrCart(cQuantity,i),2) %></font></td>
          </tr>
<%
    isubtotal = isubtotal + (arrCart(cUnitPrice,i) * arrCart(cQuantity,i))
    Next
%>
  <tr>
    <tr>
            <td width=\"15%\">&nbsp;</td>
            <td width=\"40%\">&nbsp;</td>
            <td width=\"15%\">&nbsp;</td>
            <td bgcolor=\"#336699\" width=\"15%\"><font color=\"#FFFFFF\" face=\"Verdana, arial, helvetica\" size=\"1\">Levering</font></td>
            <td bgcolor=\"#D3D3D3\" width=\"15%\" align=\"right\"><font face=\"Verdana, arial, helvetica\" size=\"1\"><%= FormatCurrency(isubtotal * Application(\"shipP\"),2) %></font></td>
          </tr>
          <tr>
            <td width=\"15%\">&nbsp;</td>
            <td width=\"40%\">&nbsp;</td>
            <td width=\"15%\">&nbsp;</td>
            <td bgcolor=\"#336699\" width=\"15%\"><font color=\"#FFFFFF\" face=\"Verdana, arial, helvetica\" size=\"1\">Moms</font></td>
            <td bgcolor=\"#D3D3D3\" width=\"15%\" align=\"right\"><font face=\"Verdana, arial, helvetica\" size=\"1\"><%= FormatCurrency(isubtotal * Application(\"taxP\"),2) %></font></td>
          </tr>
        <tr>
            <td width=\"15%\">&nbsp;</td>
            <td width=\"40%\">&nbsp;</td>
            <td width=\"15%\">&nbsp;</td>
            <td bgcolor=\"#336699\" width=\"15%\"><font color=\"#FFFFFF\" face=\"Verdana, arial, helvetica\" size=\"1\">Total</font></td>
            <td bgcolor=\"#D3D3D3\" width=\"15%\" align=\"right\"><font face=\"Verdana, arial, helvetica\" size=\"1\"><%= FormatCurrency(isubtotal + (isubtotal * Application(\"taxP\")) + (isubtotal * Application(\"shipP\")),2) %></font></td>
          </tr>
</table>
    <input type=\"hidden\" name=\"ordertotal\" value=\"<%= FormatCurrency(isubtotal + (isubtotal * Application(\"taxP\")) + (isubtotal * Application(\"shipP\")),2) %>\">

</form>

  </td>
</tr>
</table>
</basefont>
</body>
</html>
Avatar billede cybles Nybegynder
10. november 2000 - 17:00 #12
upz det må du undskylde Diktator, kom hvis til at paste hele lortet, nå men du kan nok gennemskue det.
Avatar billede diktator Nybegynder
10. november 2000 - 17:19 #13
hmm..
Det er din form!?
Du skal have fat i det script der opdaterer din db, for at sikre at det går igennem...

Jeg kan se du sender din form til \'verify.asp\' Det kunne meget vel være der det sker :-)

-eller hvis du har en confirm side ...
Avatar billede cybles Nybegynder
10. november 2000 - 17:22 #14
<%@ Language=VBScript %>

<!-- #include file=\"db.inc\" -->
<%
For Each key in Request.Form
        strname = key
        strvalue = Request.Form(key)
        Session(strname) = strvalue
    Next

If Request.Form(\"cardaddress\") = \"\" OR len(Request.Form(\"cardaddress\")) <=8 Then
    Response.Redirect \"checkout.asp?msg=\" & Server.URLEncode (\"Skriv venligst en adresse som vi kan sende en kvittering til.\")
Else

Dim arrCart, metacartItem
arrCart = Session(\"MyCart\")
metacartItem = Session(\"cartItem\")


Dim rsorder
Set rsorder = Server.CreateObject (\"ADODB.recordset\")
    rsorder.Open \"orders\", dbc, adOpenKeyset, adLockPessimistic, adCmdTable
    rsorder.AddNew
    rsorder(\"ocustomerid\") = Session(\"customerid\")
    rsorder(\"odate\") = Date
    rsorder(\"orderamount\") = Request.Form(\"ordertotal\")
    rsorder(\"oshipmethod\") = CInt(Request.Form(\"shipment\"))
    rsorder(\"ocardtype\") = Request.Form(\"paymentm\")
    rsorder(\"ocardno\") = Request.Form(\"cardno\")
    rsorder(\"ocardname\") = Request.Form(\"cardname\")
    rsorder(\"ocardexpires\") = Request.Form(\"cardexpire\")
    rsorder(\"ocardaddress\") = Request.Form(\"cardaddress\")
    If Not Request.Form(\"shipaddress\")=\"\" then
    rsorder(\"oshipaddress\") = Request.Form(\"shipaddress\")
    End If
    If Not Request.Form(\"shiptown\")=\"\" then
    rsorder(\"oshiptown\") = Request.Form(\"shiptown\")
    End If
    If Not Request.Form(\"shipzip\")=\"\" then
    rsorder(\"oshipzip\") = Request.Form(\"shipzip\")
    End If
    If Not Request.Form(\"shipstate\")=\"\" then
    rsorder(\"oshipstate\") = Request.Form(\"shipstate\")
    End If
    If Not Request.Form(\"shipcountry\")=\"\" then
    rsorder(\"oshipcountry\") = Request.Form(\"shipcountry\")
    End If
    rsorder.Update
    rsorder.Close
   
    Dim oid, sqlo
    sqlo = \"SELECT max(orderID) FROM orders\"
    Set rso = dbc.Execute(sqlo)   
        oid = Cint(rso(0))
    rso.Close
   
If oid < 1 Then
    Response.Redirect \"error.asp?msg=\" & Server.URLEncode (\"Error: No order id.\")
Else
    Dim rsitem
    Set rsitem = Server.CreateObject (\"ADODB.recordset\")
    rsitem.Open \"oitems\", dbc, adOpenKeyset, adLockOptimistic , adcmdtable
    For i = 1 To metacartItem
        rsitem.AddNew
        rsitem(\"orderid\") = oid
        rsitem(\"catalogid\") = arrCart(cProductid,i)
        rsitem(\"numitems\") = arrCart(cQuantity,i)
        rsitem.Update
    Next
    rsitem.Close
End if

If dbc.Errors.Count > 0 then
    dbc.Close
    set dbc = nothing
    Response.Redirect \"error.asp?msg=\" & Server.URLEncode (\"Did not succeed. Error: \") & dbc.Error.Description
Else
    dbc.close
    set dbc = nothing
    Response.Redirect \"checkout1.asp\"
End If
End If
%>
Avatar billede cybles Nybegynder
10. november 2000 - 17:24 #15
Er det den her du skal bruge ?
Avatar billede diktator Nybegynder
10. november 2000 - 17:42 #16
Ja, sæt koden ind nederst i scriptet som vist:

-- clip --

If dbc.Errors.Count > 0 then
    dbc.Close
    set dbc = nothing
    Response.Redirect \"error.asp?msg=\" & Server.URLEncode (\"Did not succeed. Error: \") & dbc.Error.Description
Else
    dbc.close
    set dbc = nothing


\' ******* her sættes Jmail funktionen ind

Set JMail = Server.CreateObject(\"JMail.SMTPMail\")
JMail.ServerAddress = \"din.server.dk\"
JMail.Sender = \"email@email.dk\"
JMail.Sendername = \" Navn \"
JMail.Subject = \" tekst \"
\' **** Modtager af e-mailen ( f.eks. din@email.dk ) ************
JMail.AddRecipient \"din@e-mail.dk\"
JMail.body = \"Beskeden etc.\"
JMail.Priority = 3
JMail.AddHeader \"Originating-IP\", Request.ServerVariables(\"REMOTE_ADDR\")
\' **** Sender E-Mailen ************
JMail.Execute
\'********** her afsluttes Jmail ******


    Response.Redirect \"checkout1.asp\"
End If
End If
%>


___________________________________

Du skal selvfølgelig lige tilrette Jmail til din server, e-mail adresse, osv

Håber du klarer dig - jeg kan først være tilbage i morgen
/D!ktator
Avatar billede cybles Nybegynder
10. november 2000 - 18:26 #17

Tak det virker som det skal.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester