Toon posts:

[E-commerce ASP] vanaf een bestelling e-mailen

Pagina: 1
Acties:
  • 75 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik zit al een tijdje te blokken maar kom er echt niet uit en wil vragen of iemand mij verder kan helpen. Ik heb hier een e-commerce script en wil vanaf mijn bestelling een formulier versturen per e-mail. Ik krijg alles in mijn e-mail behalve de bestelling zelf.
Het script ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<!-- #INCLUDE FILE="settings.asp" -->


<html>

<head>

<TITLE></TITLE>

<link rel="stylesheet" HREF="master_style.css">

</head>

<BODY TEXT="#000000" BACKGROUND="images/bg_middle.gif" LINK="#000000" VLINK="#000000" ALINK="#F70404">

<script language="JavaScript" type="text/javascript">
<!--


function form_validator(theForm) {

  if(theForm.searchstring.value == "") {

    alert("<%=txt_empty_search%>!");

    theForm.searchstring.focus();

    return(false);

  }

  return (true);

}

//-->
</script>

<script LANGUAGE="JavaScript">

    // showItems() - displays shopping basket in a table
    function showItems() {
        index = document.cookie.indexOf("ShoppingBasket");
        countbegin = (document.cookie.indexOf("=", index) + 1);
            countend = document.cookie.indexOf(";", index);
            if (countend == -1) {
                    countend = document.cookie.length;
            }
        fulllist = document.cookie.substring(countbegin, countend);
        subtotal = 0;
        itemlist = 0;
        for (var i = 0; i <= fulllist.length; i++) {
            if (fulllist.substring(i,i+1) == '[') {
                itemstart = i+1;
                thisitem = 1;
            } else if (fulllist.substring(i,i+1) == ']') {
                itemend = i;
                thequantity = fulllist.substring(itemstart, itemend);
                itemtotal = 0;
                itemtotal = (eval(theprice*thequantity));
                temptotal = itemtotal * 100;
                subtotal = subtotal + itemtotal;
                itemlist=itemlist+1;

            } else if (fulllist.substring(i,i+1) == '|') {
                if (thisitem==1) theitem = fulllist.substring(itemstart, i);
                if (thisitem==2) theprice = fulllist.substring(itemstart, i);
                if (thisitem==3) theoption = fulllist.substring(itemstart, i);
                thisitem++;
                itemstart=i+1;
            }
        }

        document.writeln('<FONT SIZE="2" FACE="Verdana, Arial, Helvetica, sans-serif"><%=txt_total %>&nbsp;<%=txt_currency%>: <B>'+top.center.cart.alterError(subtotal)+'</B></FONT>');
        
    }

    function updateItem(itemno, newquant) {
        newItemList = null;
        itemlist = 0;
        for (var i = 0; i <= fulllist.length; i++) {
            if (fulllist.substring(i,i+1) == '[') {
                thisitem = 1;
                itemstart = i+1;
                fullstart = i+1;
            } else if (fulllist.substring(i,i+1) == ']') {
                itemend = i;
                itemlist=itemlist+1;
                if (itemlist != itemno) {
                    newItemList = newItemList+'['+fulllist.substring(fullstart, itemend)+']';
                } else {
                    newItemList = newItemList + '['+theitem+'|'+theprice+'|'+theoption+'|'+newquant+']';
                }
            } else if (fulllist.substring(i,i+1) == '|') {
                if (thisitem==1) theitem = fulllist.substring(itemstart, i);
                if (thisitem==2) theprice = fulllist.substring(itemstart, i);
                if (thisitem==3) theoption = fulllist.substring(itemstart, i);
                thisitem++;
                itemstart=i+1;
            }
        }
        index = document.cookie.indexOf("ShoppingBasket");
        document.cookie="ShoppingBasket="+newItemList;
        self.location = "basket.asp";

    }

    function removeItem(itemno) {
        newItemList = null;
        itemlist = 0;
        for (var i = 0; i <= fulllist.length; i++) {
            if (fulllist.substring(i,i+1) == '[') {
                itemstart = i+1;
            } else if (fulllist.substring(i,i+1) == ']') {
                itemend = i;
                theitem = fulllist.substring(itemstart, itemend);
                itemlist=itemlist+1;
                if (itemlist != itemno) {
                    newItemList = newItemList+'['+fulllist.substring(itemstart, itemend)+']';
                }
            }
        }

    }
</script>

<form onSubmit="return form_validator(this)" method=post target=main action=search_list.asp>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<TR><TD VALIGN="middle" align="left" width="70">
[img]"images/space.gif"[/img]<BR>
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">
<b><%=txt_search%></b></font>
</TD><TD>
[img]"images/space.gif"[/img]<BR>
<SELECT name="chose"> 
<OPTION selected  value="item"><%=txt_select_field%></OPTION>
<OPTION value="code_no"><%=txt_code_no%></OPTION>
<OPTION value="item"><%=txt_item%></OPTION>
<OPTION value="text"><%=txt_text%></OPTION>
</select>
<INPUT TYPE=text NAME="searchstring" VALUE="" SIZE=7>
<INPUT TYPE="submit" VALUE=" <%=txt_go%> " class="button">&nbsp;&nbsp;
<script LANGUAGE="JavaScript">
    showItems();
</script>
</TD>
<td align="right"  VALIGN="middle">
[img]"images/space.gif"[/img]<BR>
<font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>
&nbsp;| <a href="basket.asp" target="main"><%=txt_view_cart%></a> | <a href="order.asp" target="main"><%=txt_checkout %></a> |</b></font>
</td>
</tr></table>
</FORM>
</body>
</html>

Mijn formulier ziet er als volgt uit
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<!-- #INCLUDE FILE="settings.asp" -->
<%
' email values to set in form
'--------------------------------
'  SendersName
'  SendersEmail
'  EmailSubject
'  EmailRecipient
'  message
'  thanksPage




' set up email values
sendersName=request("name")
sendersEmail=request("email")
if sendersName="" then sendersName=sendersEmail

EmailSubject=request("EmailSubject")
if emailSubject="" then emailSubject="Online bestelling"

'I hardcode the email recipient but you might want this flexibility
EmailRecipient=("a@b.nl") ' required


if emailRecipient="" then 
    response.Write("<html><body>Sorry, recipient required!</body></html>")
    response.End
end if

naam=Request.form("name")
adres=Request.form("address")
plaats=Request.form("city") 
provincie=Request.form("state")
postcode=Request.form("zip") 
land=Request.form("country")
telefoon=Request.form("phone") 
opmerking=Request.form("comment")
total=Request.form("total")
orderid=Request.form("order_id") 
order=Session("ShoppingBasket")


' create email
Set objNewMail = Server.CreateObject("CDONTS.NewMail")

objNewMail.From = sendersName & "<" & sendersEmail & ">"
objNewMail.Subject = request("EmailSubject")
objNewMail.To = EmailRecipient
objNewMail.Body = "Naam: " & naam & vbcrlf & "Adres: " & adres & vbcrlf & "Postcode" & postcode & vbcrlf & "Plaats: " & Plaats & vbcrlf & "Provincie: " & provincie & vbcrlf & "Land: " & land & vbcrlf & "Telefoonnummer: " & telefoon & vbcrlf & "Opmerkingen: " & opmerking & vbcrlf & vbcrlf & "Orderid: " & orderid & vbcrlf & vbcrlf & "Order: " & vbcrlf & order & vbcrlf & "Totaal: " & total & vbcrlf & vbcrlf & "Host:" & request.ServerVariables("REMOTE_ADDR") & vbcrlf & "Referer:" & request.ServerVariables("HTTP_REFERER")


' send email
objNewMail.Send
    set objMail = nothing
    response.redirect "response.asp"
%>

Kan iemand mijn hiermee verder helpen want wil graag deze shop in productie zien maar ben er al 3 dagen mee bezig en zie door de bomen het bos niet meer en weet niet welke variable ik moet pakken.

Verwijderd

Misschien is het handig als je het mailtje zelf ook even post. Krijg je het orderid wel? Je krijgt dus alles behalve de 'Session("ShoppingBasket")' ?

Verwijderd

Ik mis de code waar Session("ShoppingBasket") wordt gevuld.

Verwijderd

Topicstarter
Dat klopt, ik krijg alle waarden op de e-mail behalve de shoppingbasket.
Hier een voorbeeld van de e-mail die binnen komt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Naam: naam
Adres: adres
Postcode: postcode
Plaats: plaats
Provincie: provincie
Land: land
Telefoonnummer: telefoonnummer
Opmerkingen: opmerkingen

Orderid: 83707829

Order:

Totaal: 15.50

Verwijderd

Ok.. zoals ikkenietsnappe ook al aangaf, waar wordt die Session('ShoppingBasket') gevuld dan? Niet in de code die je hier gepost hebt..

Je hebt een ShowItem(), een UpdateItem en een Deleteitem, maar ik mis AddItem..

//edit
hmm als ik wat beter kijk, zie ik dit staan:
JavaScript:
1
2
3
index = document.cookie.indexOf("ShoppingBasket");
        document.cookie="ShoppingBasket="+newItemList;
        self.location = "basket.asp";


Ik neem aan dat je die index niet voor niets ophaalt. Ik ben geen ASP programmeur, maar het lijkt mij dat document.cookie een array is, dus je assignment zou dan niet kloppen.

Is dit dan niet beter?
JavaScript:
1
2
3
index = document.cookie.indexOf("ShoppingBasket");
        document.cookie[index]="ShoppingBasket="+newItemList;
        self.location = "basket.asp";

[ Voor 140% gewijzigd door Verwijderd op 15-03-2005 20:29 ]


Verwijderd

Topicstarter
Hier heb ik het script met AddItem. ik ben een newby en probeer alles te begrijpen,

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<!-- #INCLUDE FILE="settings.asp" -->

<html>

<head>

<TITLE></TITLE>

<link rel="stylesheet" HREF="master_style.css">

</HEAD>

<BODY TEXT="#000000" BACKGROUND="images/bg_middle.gif" LINK="#000000" VLINK="#000000" ALINK="#F70404">

<script LANGUAGE="JavaScript">

    function alterError(value) {
        if (value<=0.99) {
            newDollar = '0';
        } else {
            newDollar = parseInt(value);
        }
        newCent = parseInt((value+.0008 - newDollar)* 100);
        if (eval(newCent) <= 9) newCent='0'+newCent;
        newString = newDollar + '.' + newCent;
        return (newString);
    }

    //  add item to the shoppingbasket

        function addItem(newItem, newPrice, newQuantity, newNumber, newWeight) {
        if (newQuantity >= 1000) {
            rc = alert('<%=txt_wrong_quantity%>!');
        } else {
                if (newQuantity >= 1) {
                window.alert(''+newQuantity+' x '+newItem+' <%=txt_add_to_cart%>!');
                top.center.frames[2].location = "middle_right.asp";
                        index = document.cookie.indexOf("ShoppingBasket");
                        countbegin = (document.cookie.indexOf("=", index) + 1);
                        countend = document.cookie.indexOf(";", index);
                        if (countend == -1) {
                        countend = document.cookie.length;
                        }
                        document.cookie="ShoppingBasket="+document.cookie.substring(countbegin, countend)+"["+newItem+"|"+newPrice+"|"+newNumber+"|"+newWeight+"|"+newQuantity+"]";
            }
        }
    }

    function resetShoppingBasket() {
        index = document.cookie.indexOf("ShoppingBasket");
        document.cookie="ShoppingBasket=.";
    }
</script>


<CENTER><B><font size="-3" face="Verdana, Arial, Helvetica, sans-serif"><% Session.LCID = 1043 %><%=date%></FONT></B></CENTER>

<script language="JavaScript">resetShoppingBasket()</script>

<script language=JavaScript>
<!--

var message="  <% Session.LCID = 1053 %><%=date%>";

///////////////////////////////////
function clickIE4(){
if (event.button==2){
alert(message);
return false;
}
}

function clickNS4(e){
if (document.layers||document.getElementById&&!document.all){
if (e.which==2||e.which==3){
alert(message);
return false;
}
}
}

if (document.layers){
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown=clickNS4;
}
else if (document.all&&!document.getElementById){
document.onmousedown=clickIE4;
}

document.oncontextmenu=new Function("alert(message);return false")

// --> 
</script>

</body>

</html>

Verwijderd

Verwijderd schreef op dinsdag 15 maart 2005 @ 20:20:
Je hebt een ShowItem(), een UpdateItem en een Deleteitem, maar ik mis AddItem..
Dat zijn de client java functions. Ik wil graag de ASP code zien die de sessie variable "ShoppingBasket" vult.

Verwijderd

Verwijderd schreef op dinsdag 15 maart 2005 @ 20:25:
Dat zijn de client java functions. Ik wil graag de ASP code zien die de sessie variable "ShoppingBasket" vult.
Dat doet hij clientside. Die "ShoppingBasket" is gewoon een cookie (=sessie variabele) en die bewerkt ie client side.

Verwijderd

Verwijderd schreef op dinsdag 15 maart 2005 @ 20:27:
[...]


Dat doet hij clientside. Die "ShoppingBasket" is gewoon een cookie (=sessie variabele) en die bewerkt ie client side.
Maar cookies staan toch niet automatisch in je sessie?

Dan moet je dit volgens mij doen:

Session("ShoppingBasket") = Response.Cookies("ShoppingBasket")

[ Voor 18% gewijzigd door Verwijderd op 15-03-2005 20:37 ]


Verwijderd

Topicstarter
Ooh sorry maar dat kan ik niet vinden. Het script is te downloaden op
code:
1
http://www.hjscheffer.com/midicart_asp.zip


Hierin staat alle code van de shop.
Kan iemand mij verder helpen ?

alvast bedankt

Verwijderd

Verwijderd schreef op dinsdag 15 maart 2005 @ 20:37:
Ooh sorry maar dat kan ik niet vinden. Het script is te downloaden op
code:
1
http://www.hjscheffer.com/midicart_asp.zip


Hierin staat alle code van de shop.
Kan iemand mij verder helpen ?

alvast bedankt
"Order" & vbcrlf&_
"Sorry, no items in this demo order"& vbcrlf & vbcrlf&_
"Click here to purchase full working copy for just USD 79.00:" & vbcrlf&_
"http://www.midicart.com/purchase.html" & vbcrlf

De code zit er niet in omdat het een demo versie is volgens mij.

Verwijderd

Topicstarter
In plaats van deze tekst kan toch ook de order komen te staan alleen weet ik niet hoe deze variable op te vragen is.

Verwijderd

Probeer dit eens:

order=Response.Cookies("ShoppingBasket")

Verwijderd

Als ik e.e.a. goed begrijp, heb je een demo script gedownload waar bepaalde functionaliteit niet inzit.

Nu wil je die functionaliteit toevoegen, en vraag je aan ons hoe dat moet?

Lijkt me niet helemaal in overeenkomst met de GoT policy?

Verwijderd

Topicstarter
Ik heb geprobeerd om in het e-mail script de code "order=Response.Cookies("ShoppingBasket") " op te nemen maar krijg de foutmelding

code:
1
2
3
4
5
Microsoft VBScript runtime error '800a01b6' 

Object doesn't support this property or method 

/shop/order_final.asp, line 50

Verwijderd

Topicstarter
Mijn mening is dat de variable in het script verweven zitten maar ik niet weet hoe ik deze eruit moet halen.

Verwijderd

Verwijderd schreef op dinsdag 15 maart 2005 @ 21:12:
Mijn mening is dat de variable in het script verweven zitten maar ik niet weet hoe ik deze eruit moet halen.
order=Request.Cookies("ShoppingBasket")

Verwijderd

Topicstarter
Ja hij doet het
Helemaal tegek

Verwijderd

Topicstarter
Wel krijg ik de order zo binnen

Order:
[Sfinx|10.00|22||100]

Dit staat voor:
[product | bedrag | productnummer | aantal]

is dit ook nog te scheiden ??

Verwijderd

Misschien leren programmeren? Nofi hoor, maar gezien de oorspronkelijke vraag en achtergrond, krijg ik een beetje het idee dat wij hier 'ali-illigali' je demo scripts naar fully functional scripts voor je zitten om te hacken, en gezien de vervolgvraag plaats ik sterk mijn twijfels aan je eigen inzet.

Maar goed, om toch ontopic te blijven.. je kunt je string 'order' splitten in een array. Dit kan met string.split.

Voor een voorbeeld:
http://www.csharpfriends....Article.aspx?articleID=28

Verwijderd

Verwijderd schreef op dinsdag 15 maart 2005 @ 21:29:
Wel krijg ik de order zo binnen

Order:
[Sfinx|10.00|22||100]

Dit staat voor:
[product | bedrag | productnummer | aantal]

is dit ook nog te scheiden ??
Ik raad je aan om eens te kijken naar string functies in ASP (left, mid, right) -> google is je vriend :)
verder lijkt t me dat je nu echt zelf eens bezig gaat, we zijn hier best bereid je te helpen, maar dan moet je zelf toch eerst wat inspanning tonen...

suc6 ermee

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-05 08:08

Janoz

Moderator Devschuur®

!litemod

Dit is niet de bedoeling. Ten eerste is dit het omzeilen van een 'kopieer beveiliging' op een script van derden en daarnaast vraag je ook nog of iemand anders het voor je kan doen. 3 dubbel fout dus.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1

Dit topic is gesloten.