Hi,
Ive just moved into a new job & have been asked to modify a asp shopping cart site. I asked a few questions in the ASP part of this site & got some good advice, but the following post has left me a bit stumped as I only have some very basic html knowledge. Below is what another user has told me to do:
"You have a doubled up form input on the previous page. Anytime you get multiple values for a single input when your expecting only one value it means you have two inputs with the same name. This will cause them to get poassed as a comma-space delimited string.
I agree that you should add some isNumeric validation on the server side, but you need to go back to the previous page first and figure out why there are two inputs with the same name and get rid of the offending one that is passing the extra (unnecessary) value."
So my question is, how do I modify the HTML code to not double up on inputs, the code im using is below:
<%
Recentpage = (request.cookies("recentpage"))
if request.cookies("modified") = "true" then
reloadpage = "default.asp"
target="_parent"
else
reloadpage = "prodetails.asp"
target="main"
end if
%>
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!-- hide JS code
var justValidating = true
function validateForm(f){
var val = f.item.value;
if(/^\d{1,}$/.test(val)){
return true;
}else{
f.item.focus;
alert('Invalid Input for quantity');
return false;
}
}
// end JS hide -->
</SCRIPT>
</head>
<body bgcolor="#FFFFFF" vlink="blue"><form METHOD="get" ACTION="qtyupd.asp" target="_parent" onsubmit="return validateForm(this)">
<div align="center">
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
<tr valign="top">
<td height="95%">
<div align="center">
<p><font size="5"><b><font face="Arial, Helvetica, sans-serif">Your
Shopping Cart</font></b></font></p>
<p> </p>
</div>
<table width="550" border="1" align="center" bordercolor="#000000" cellspacing="0" height="55">
<tr bgcolor="#333366">
<td height="25">
<table width="100%" border="0" cellspacing="0">
<tr>
<td width="310"><font size="2"><b><font face=Arial color=#FFFFFF> Item
Name</font></b></font></td>
<td width="90">
<div align="center"><font size="2"><b><font face=Arial color=#FFFFFF>Unit
Price</font></b></font></div>
</td>
<td width="32">
<div align="center"><font size="2"><b><font face=Arial color=#FFFFFF>Qty.</font></b></font></div>
</td>
<td width="110">
<div align="center"><font size="2"><b><font face=Arial color=#FFFFFF>Extended
Price</font></b></font></div>
</td>
</tr>
</table>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td height="25">
<table cellpadding=4 border=0 cellspacing=0 width='550' align="center">
<%
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open ("driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("aspcart5.mdb"))
sql = "SELECT * FROM temporary where custid = '" & Request.Cookies("customerid") & "' ORDER BY item;"
set rs = Conn.Execute(sql)
do while not rs.eof
spaceditem = Replace((rs("item"))," ","+")
runningtotal = runningtotal + rs("unitprice") * rs("quantity")
runningqty = runningqty + rs("quantity") * 1
stripped = Replace(rs("item"),"_"," ")
secondstripped = Replace(stripped,"^","'")
%>
<tr>
<td bgcolor=#FFFFFF width="46%"><font face="Arial, Helvetica, sans-serif" size="2"><a href="reverseget.asp?reverseget=<%=secondstripped%>&start=1"><%=secondstripped%></a></font></td>
<td bgcolor=#FFFFFF width="11%"> <font face="Arial, Helvetica, sans-serif" size="2"><a href="delitem.asp?item=<%=rs("item")%>" target="_parent"><img src="delete.jpg" height="15" vspace="0" hspace="0" border="0"></a>
</font></td>
<td align=RIGHT bgcolor=#FFFFFF width="17%">
<div align="center"><font face="Arial, Helvetica, sans-serif" size="2"><%=FormatCurrency(rs("unitprice"))%></font></div>
</td>
<td align=RIGHT bgcolor=#FFFFFF width="6%">
<div align="center"><font face="Arial, Helvetica, sans-serif" size="2">
<input size=2 maxlength=5 name="item" value="<%=rs("quantity")%>">
</font></div>
</td>
<td align=RIGHT bgcolor=#FFFFFF width="20%">
<div align="center"><font face="Arial, Helvetica, sans-serif" size="2"><%=FormatCurrency(rs("quantity") * rs("unitprice"))%></font></div>
</td>
</tr>
<%
rs.movenext
loop
rs.close
If runningtotal = 0 then %>
<tr>
<td align='LEFT' colspan='5' gcolor='#EEEEEE' height="2" bgcolor="#CCCCCC">
<div align="center"><b><font face="Arial, Helvetica, sans-serif">Your
Shopping Cart is Empty</font></b></div>
</td>
</tr>
<% End if %>
<tr bgcolor="#CCCCCC">
<td align='LEFT' colspan='3' gcolor='#EEEEEE' height="33" bgcolor="#FFFFFF"><font face="Arial, Helvetica, sans-serif" size="2"><b>Total,
Less Tax and Shipping & Handling:</b></font></td>
<td align='RIGHT' width="6%" height="33">
<div align="center"><b><font face="Arial, Helvetica, sans-serif" size="2" color="#000000"><%=runningqty%></font></b></div>
</td>
<td align='RIGHT' width="20%" height="33">
<div align="center"><b><font face="Arial, Helvetica, sans-serif" size="2" color="#000000"><%=FormatCurrency(runningtotal)%> </font></b></div>
</td>
</tr>
</table>
</td>
</tr>
</table>
<div align="center">
<p> </p>
<table width="400" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<div align="center"><a href="continue.asp?prodid=<%=Request.Cookies("lastprod")%>" target="_parent"><img src="return.gif" alt="CONTINUE SHOPPING" border="0" width="93" height="35"></a></div>
</td>
<td>
<div align="center">
<input type="IMAGE" src="update.gif" border="0" name="UPDATE QUANTITIES" width="93" height="35">
</div>
</td>
<td>
<div align="center"><a href="emptycart.asp" target="_parent"><img src="clear.gif" alt="EMPTY CART" border="0" width="93" height="35"></a></div>
</td>
<td>
<div align="center"><a href="checkout.asp"><img src="checkout.gif" alt="CHECKOUT" border="0" width="93" height="35"></a></div>
</td>
</tr>
</table>
</div>
</form>
</body></html>
Any advice would be greatly appriciated.
Kind Regards
Mark
Ive just moved into a new job & have been asked to modify a asp shopping cart site. I asked a few questions in the ASP part of this site & got some good advice, but the following post has left me a bit stumped as I only have some very basic html knowledge. Below is what another user has told me to do:
"You have a doubled up form input on the previous page. Anytime you get multiple values for a single input when your expecting only one value it means you have two inputs with the same name. This will cause them to get poassed as a comma-space delimited string.
I agree that you should add some isNumeric validation on the server side, but you need to go back to the previous page first and figure out why there are two inputs with the same name and get rid of the offending one that is passing the extra (unnecessary) value."
So my question is, how do I modify the HTML code to not double up on inputs, the code im using is below:
<%
Recentpage = (request.cookies("recentpage"))
if request.cookies("modified") = "true" then
reloadpage = "default.asp"
target="_parent"
else
reloadpage = "prodetails.asp"
target="main"
end if
%>
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!-- hide JS code
var justValidating = true
function validateForm(f){
var val = f.item.value;
if(/^\d{1,}$/.test(val)){
return true;
}else{
f.item.focus;
alert('Invalid Input for quantity');
return false;
}
}
// end JS hide -->
</SCRIPT>
</head>
<body bgcolor="#FFFFFF" vlink="blue"><form METHOD="get" ACTION="qtyupd.asp" target="_parent" onsubmit="return validateForm(this)">
<div align="center">
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
<tr valign="top">
<td height="95%">
<div align="center">
<p><font size="5"><b><font face="Arial, Helvetica, sans-serif">Your
Shopping Cart</font></b></font></p>
<p> </p>
</div>
<table width="550" border="1" align="center" bordercolor="#000000" cellspacing="0" height="55">
<tr bgcolor="#333366">
<td height="25">
<table width="100%" border="0" cellspacing="0">
<tr>
<td width="310"><font size="2"><b><font face=Arial color=#FFFFFF> Item
Name</font></b></font></td>
<td width="90">
<div align="center"><font size="2"><b><font face=Arial color=#FFFFFF>Unit
Price</font></b></font></div>
</td>
<td width="32">
<div align="center"><font size="2"><b><font face=Arial color=#FFFFFF>Qty.</font></b></font></div>
</td>
<td width="110">
<div align="center"><font size="2"><b><font face=Arial color=#FFFFFF>Extended
Price</font></b></font></div>
</td>
</tr>
</table>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td height="25">
<table cellpadding=4 border=0 cellspacing=0 width='550' align="center">
<%
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open ("driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("aspcart5.mdb"))
sql = "SELECT * FROM temporary where custid = '" & Request.Cookies("customerid") & "' ORDER BY item;"
set rs = Conn.Execute(sql)
do while not rs.eof
spaceditem = Replace((rs("item"))," ","+")
runningtotal = runningtotal + rs("unitprice") * rs("quantity")
runningqty = runningqty + rs("quantity") * 1
stripped = Replace(rs("item"),"_"," ")
secondstripped = Replace(stripped,"^","'")
%>
<tr>
<td bgcolor=#FFFFFF width="46%"><font face="Arial, Helvetica, sans-serif" size="2"><a href="reverseget.asp?reverseget=<%=secondstripped%>&start=1"><%=secondstripped%></a></font></td>
<td bgcolor=#FFFFFF width="11%"> <font face="Arial, Helvetica, sans-serif" size="2"><a href="delitem.asp?item=<%=rs("item")%>" target="_parent"><img src="delete.jpg" height="15" vspace="0" hspace="0" border="0"></a>
</font></td>
<td align=RIGHT bgcolor=#FFFFFF width="17%">
<div align="center"><font face="Arial, Helvetica, sans-serif" size="2"><%=FormatCurrency(rs("unitprice"))%></font></div>
</td>
<td align=RIGHT bgcolor=#FFFFFF width="6%">
<div align="center"><font face="Arial, Helvetica, sans-serif" size="2">
<input size=2 maxlength=5 name="item" value="<%=rs("quantity")%>">
</font></div>
</td>
<td align=RIGHT bgcolor=#FFFFFF width="20%">
<div align="center"><font face="Arial, Helvetica, sans-serif" size="2"><%=FormatCurrency(rs("quantity") * rs("unitprice"))%></font></div>
</td>
</tr>
<%
rs.movenext
loop
rs.close
If runningtotal = 0 then %>
<tr>
<td align='LEFT' colspan='5' gcolor='#EEEEEE' height="2" bgcolor="#CCCCCC">
<div align="center"><b><font face="Arial, Helvetica, sans-serif">Your
Shopping Cart is Empty</font></b></div>
</td>
</tr>
<% End if %>
<tr bgcolor="#CCCCCC">
<td align='LEFT' colspan='3' gcolor='#EEEEEE' height="33" bgcolor="#FFFFFF"><font face="Arial, Helvetica, sans-serif" size="2"><b>Total,
Less Tax and Shipping & Handling:</b></font></td>
<td align='RIGHT' width="6%" height="33">
<div align="center"><b><font face="Arial, Helvetica, sans-serif" size="2" color="#000000"><%=runningqty%></font></b></div>
</td>
<td align='RIGHT' width="20%" height="33">
<div align="center"><b><font face="Arial, Helvetica, sans-serif" size="2" color="#000000"><%=FormatCurrency(runningtotal)%> </font></b></div>
</td>
</tr>
</table>
</td>
</tr>
</table>
<div align="center">
<p> </p>
<table width="400" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<div align="center"><a href="continue.asp?prodid=<%=Request.Cookies("lastprod")%>" target="_parent"><img src="return.gif" alt="CONTINUE SHOPPING" border="0" width="93" height="35"></a></div>
</td>
<td>
<div align="center">
<input type="IMAGE" src="update.gif" border="0" name="UPDATE QUANTITIES" width="93" height="35">
</div>
</td>
<td>
<div align="center"><a href="emptycart.asp" target="_parent"><img src="clear.gif" alt="EMPTY CART" border="0" width="93" height="35"></a></div>
</td>
<td>
<div align="center"><a href="checkout.asp"><img src="checkout.gif" alt="CHECKOUT" border="0" width="93" height="35"></a></div>
</td>
</tr>
</table>
</div>
</form>
</body></html>
Any advice would be greatly appriciated.
Kind Regards
Mark