Avatar billede cybles Nybegynder
27. juni 2001 - 13:59 Der er 9 kommentarer og
1 løsning

Træk data ud fra database

Til ASP eksperterne

Jeg har dette verify.asp dokument. Det der sker er at dokumentet slår op i en database og skriver til en mail der så bliver sendt til mig via Jmail, alle ting virker fint, der er dog dette problem her.

Jeg kan ikke få den til at tage catalogid med her er scriptet, hvordan får jeg den til at tage catalogid med ? :

<%@ 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\")

        strBody = strBody & \"Kundens fornavn      : \" & Session(\"fname\") & vbCrLf
        strBody = strBody & \"Kundens efternavn    : \" & Session(\"lname\") & vbCrLf
        strBody = strBody & \"Kundens e-post        : \" & Session(\"email\") & vbCrLf
        strBody = strBody & \"Kundens adresse      : \" & Session(\"address\") & vbCrLf
        strBody = strBody & \"Kundens by / bygd    : \" & Session(\"town\") & vbCrLf
        strBody = strBody & \"Kundens post nr      : \" & Session(\"state\") & vbCrLf
        strBody = strBody & \"Ønsket leverings dato : \" & Session(\"zip\") & vbCrLf
        strBody = strBody & \"Ønsket leverings dato : \" & Session(\"country\") & vbCrLf
        strBody = strBody & \"Kundens telefon nr    : \" & Session(\"phone\") & vbCrLf
        strBody = strBody & \"Antal af hver        : \" & Session(\"quantity\") & vbCrLf





        strBody = strBody & \"Kunde ID  : \" & Session(\"customerid\") & vbCrLf
        strBody = strBody & \"Ordre dato : \" & Date & vbCrLf
        strBody = strBody & \"Beløb i alt: \" & Request.Form(\"ordertotal\") & vbCrLf
        strBody = strBody & \"Forsendelse: \" & CInt(Request.Form(\"shipment\")) & vbCrLf & vbCrLf
        strBody = strBody & \"Kvittering sendes til:    \" & Request.Form(\"cardaddress\") & vbCrLf & vbCrLf




        strBody = strBody & \"HVIS LEVERING TIL ANDEN END KUNDE SELV\" & vbCrLf & vbCrLf



        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\"): strBody = strBody & \"Addresse:        \" & Request.Form(\"shipaddress\") & vbCrLf
        If Not Request.Form(\"shiptown\") = \"\" Then rsorder(\"oshiptown\") = Request.Form(\"shiptown\"):            strBody = strBody & \"By / bygd:            \" & Request.Form(\"shiptown\") & vbCrLf
        If Not Request.Form(\"shipzip\") = \"\" Then rsorder(\"oshipzip\") = Request.Form(\"shipzip\"):                strBody = strBody & \"Leverings dato: \" & Request.Form(\"shipzip\") & vbCrLf
        If Not Request.Form(\"shipstate\") = \"\" Then rsorder(\"oshipstate\") = Request.Form(\"shipstate\"):        strBody = strBody & \"Postnummer:          \" & Request.Form(\"shipstate\") & vbCrLf
        If Not Request.Form(\"shipcountry\") = \"\" Then rsorder(\"oshipcountry\") = Request.Form(\"shipcountry\"): strBody = strBody & \"Leverings tidspunkt:        \" & Request.Form(\"shipcountry\") & vbCrLf


        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

            Set JMail = Server.CreateObject(\"JMail.SMTPMail\")

            JMail.ServerAddress = \"mail.kni.gl\"
            JMail.Sender = \"arz@mail.kni.gl\"
            JMail.Sendername = \" SPAR Vinhandel \"
            JMail.Subject = \" Ny Ordre \"
            \' **** Modtager af e-mailen ( f.eks. din@email.dk ) ************
            JMail.AddRecipient \"arz@mail.kni.gl\"
            JMail.Body = strBody
            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
%>
Avatar billede erikjacobsen Ekspert
27. juni 2001 - 14:04 #1
Hvis du nu lukker spørgsmålet og stiller det igen til 30 point. Så vil  jeg da
gerne hjælpe dig.

663 p - fuldstændig skørt
Avatar billede -mundi- Nybegynder
27. juni 2001 - 14:09 #2
663 points er da velkomne :-)

Men jeg må vist give dig ret i at det er lige i overkanten ;-)
Avatar billede cybles Nybegynder
27. juni 2001 - 14:15 #3
Jeg kan da bare ændre point antal, hvis det er for meget, ved at jeg selv svarer på et tidspunkt og så deler jeg er bare ud til mig selv også, hvis det altså genere jer.

Jeg ved godt at 663 point er mange, men jeg er ved at blive lidt utålmodig da jeg har siddet og kigget på det dokument og prøvet alt muligt de sidste 20-30 timer :-)
Avatar billede cybles Nybegynder
27. juni 2001 - 15:02 #4
svar :-)
Avatar billede cybles Nybegynder
27. juni 2001 - 16:27 #5
Jeg er klar til at modtage lidt hjælp hvis der er en af jer der kan..
Avatar billede kichian Nybegynder
27. juni 2001 - 17:06 #6
Hvad ligger i arrCart, metacartItem. Og i hvilket format?

Dette
For i = 1 To metacartItem

Burde nok være
For i = Lbound(arrCart) To Ubound(arrCart)

Og dette
sqlo = \"SELECT max(orderID) FROM orders\"

er noget rigtig skidt med flere samtidige brugere.

Brug i stedet
sqlo = \"SELECT IDENTITY\"
inde du skriver
rsorder.Close
da der her returneres den sidste autonummererede værdi for den aktuelle connection (Access/SQL Server).

Brug altid Option Explicit da det heller ikke ser ud til at du har defineret cProductid og cQuantity.
Avatar billede cybles Nybegynder
27. juni 2001 - 17:48 #7

Hej Kichian

Dette er hvad jeg har på arrCart, metacartItem her bliver varerene tilføjet databasen.


<%@ Language=VBScript %>
<%
Option Explicit                   
%>
<!-- #include file=\"db.inc\" -->
<%
\'shopping cart code on this page generates session variables with order items
Dim prodid, quantity, arrCart, metacartItem
prodid = Request.Form(\"fproductid\")
quantity = Request.Form(\"fquantity\")
arrCart = Session(\"MyCart\")
metacartItem = Session(\"cartItem\")

If metacartItem = \"\" Then
    Response.Redirect \"error.asp?msg=\" & Server.URLEncode (\"Din browser er sat til ikke at læse cookies, dette er nødvendigt at du slår til hvis du ønsker at afgive bestillinger igennem Internettet. Ellers kan du ringe din bestilling ind på tlf. 32 48 65\")
End If

If prodid <> \"\" Then
    If metacartItem < maxCartItems Then
        metacartItem = metacartItem + 1
    End If
    Session(\"cartItem\") = metacartItem
    Dim rsItem
    Set rsItem = Server.CreateObject(\"ADODB.Recordset\")
        rsItem.Open \"products\", dbc, adOpenForwardOnly,adLockReadOnly,adCmdTable
        rsItem.Filter = \"catalogID = \" & prodid
    If Not rsItem.EOF Then
        arrCart(cProductid,metacartItem) = rsItem(\"catalogID\")
        arrCart(cProductCode,metacartItem) = rsItem(\"ccode\")
        arrCart(cProductname,metacartItem) = rsItem(\"cname\")
        arrCart(cQuantity,metacartItem) = CInt(quantity)
        arrCart(cUnitPrice,metacartItem) = rsItem(\"cprice\")
        Session(\"MyCart\") = arrCart
        rsItem.Close
        dbc.Close
    End If
Else
Dim strAction
strAction = UCase(Left(Request.Form(\"action\"),5))
Select Case strAction
    Case \"CONTI\"
        Response.Redirect \"http://www.vin.gl/dk/indhold.htm\"   
    Case \"CLEAR\"
        For i = 1 To metacartItem
        Dim tquantity
        tquantity = Request.Form(\"Quantity\" & Cstr(i))
        arrCart(cQuantity,i) = CInt(tquantity)
        Next
        For i = 1 to metacartItem
        Dim confirm
        confirm = Request.Form(\"selected\" & CStr(i))
        If confirm <> \"yes\" Then
            metacartItem = metacartItem - 1
            Dim x
            For x = 1 to UBound(arrCart,1)
                    arrCart(x,i) = \"\"
                Next
                Dim n
                n = i
                While n < UBound(arrCart,2)
                    For x = 1 to UBound(arrCart,1)
                        arrCart(x,n) = arrCart(x,n + 1)
                        arrCart(x,n + 1) = \"\"
                    Next
                    n = n + 1
                Wend   
        End If
        Next
            Session(\"cartItem\") = metacartItem
            Session(\"MyCart\") = arrCart
    Case \"TO CH\"
        Response.Redirect \"customer.asp\"
    End Select
End If
%>
<%
\'prevent browsers from caching page
Response.Expires = 0
%>
<html>
<head>
<meta name=\"GENERATOR\" Content=\"Microsoft FrontPage 4.0\">
<title>Tilføj produkter</title>
</head>
<body bgcolor=\"#FFFFFF\" text=\"#000000\" alink=\"#800000\" link=\"#800000\" vlink=\"#800000\">
<basefont face=\"Verdana, arial, helvetica\" size=\"2\">
<p><b><font face=\"verdana, arial, helvetica\" color=\"#006600\" size=\"2\">
&nbsp;&nbsp;INDHOLD I DIN INDKØBSKURV</font></b>
<table width=\"100%\" cellpadding=\"4\" cellspacing=\"4\" border=\"0\" bgcolor=\"#FFFFFF\">
</table>
<table border=\"0\" width=\"100%\" cellpadding=\"4\" cellspacing=\"1\">
</table>
  <table border=\"0\" width=\"100%\" cellpadding=\"4\" cellspacing=\"1\">
  <tr>
    <td>
      <form action=\"addprod.asp\" method=\"post\">
        <table border=\"0\" cellpadding=\"3\" cellspacing=\"2\" width=\"100%\">
          <tr bgcolor=\"#336699\">
            <td width=\"15%\"><font color=\"#FFFFFF\" face=\"Verdana, arial, helvetica\" size=\"1\" >SPAR ID</font></td>
            <td width=\"40%\"><font color=\"#FFFFFF\" face=\"Verdana, arial, helvetica\" size=\"1\" >PRODUKT NAVN</font></td>
            <td width=\"15%\"><font color=\"#FFFFFF\" face=\"Verdana, arial, helvetica\" size=\"1\">ANTAL</font></td>
            <td width=\"15%\"><font color=\"#FFFFFF\" face=\"Verdana, arial, helvetica\" size=\"1\">STK - PRIS</font></td>
            <td width=\"15%\"><font color=\"#FFFFFF\" face=\"Verdana, arial, helvetica\" size=\"1\">TOTAL</font></td>
          </tr>
          <%
Dim isubtotal, i
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>
            <td width=\"15%\">&nbsp;</td>
            <td width=\"40%\">&nbsp;</td>
            <td width=\"15%\">&nbsp;</td>
            <td bgcolor=\"#003063\" width=\"15%\"><font color=\"#FFFFFF\" face=\"Verdana, arial, helvetica\" size=\"1\">GEBYR</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=\"#003063\" 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=\"#003063\" width=\"15%\"><font color=\"#FFFFFF\" face=\"Verdana, arial, helvetica\" size=\"1\">PRIS IALT</font></td>
            <td bgcolor=\"#D3D3D3\" width=\"15%\" align=\"right\"><font face=\"Verdana, arial, helvetica\" size=\"1\"><b><%= FormatCurrency(isubtotal + (isubtotal * Application(\"taxP\")) + (isubtotal * Application(\"shipP\")),2) %></b></font></td>
          </tr>
                </table>
      </form>
    </td>
  </tr>
</table>
<p><a href=\"http://www.vin.gl/dk/indhold.htm\"><img border=\"0\" src=\"shoppe.gif\" alt=\"Klik her for at fortsætte med at handle ind.\"></a>
<a href=\"http://www.kni.gl/customer.asp\"><img border=\"0\" src=\"bestilnu.gif\" alt=\"Klik her for at afgive din ordre.\"></a></p>
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"> 
  <tr>
    <td valign=\"top\" height=\"10\" bgcolor=\"#336699\"><font color=\"#FFFFFF\" face=\"Verdana, arial, helvetica\" size=\"1\" >&nbsp;HAR
      DU BRUG FOR HJÆLP ELLER ER DER NOGET SOM DU ER I TVIVL OM ? RING 32 48
      65</font>
    </td>
    </tr>
    </table>
</body>
</html>


Avatar billede cybles Nybegynder
30. juli 2001 - 12:09 #8
Øhh hvad sker der, det var måske en ide at sætte sig ind i spørgsmålet, før at man begynder at hylde op om at det er for mange point.
Avatar billede erikjacobsen Ekspert
30. juli 2001 - 12:14 #9
Jeg hylder ikke - jeg hyler. Du er med til at ødelægge eksperten.dk ved at lave
inflation i pointene. Og bemærk venligst: der er gået en måned uden svar. Havde
du stilllet det til 30 p havde du sikkert fået svar. Men det må du da selv om.
Avatar billede cybles Nybegynder
30. juli 2001 - 12:18 #10
Uhm, jeg tror ikke at det ødelægger eksperten at man stiller et avanceret spørgsmål og gover mange point for det, jeg har tidligere givet meget højere point, og selv tjent endnu flere point ved avanceret spørgsmål, så det ser jeg ingen problemer i. Nu har jeg ændret det til 30 point så lad os se om der så er en som har et løsningsforslag.
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
Kurser inden for grundlæggende programmering

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