ASP在线花店系统(一)(2)

时间:2017-08-13 我要投稿
false;
             if(document.loginForm.USERID.value==null|| document.loginForm.USERID.value=="")
             {
             alert("请输入您的用户名!");
             document.loginForm.USERID.focus();
             flag=true;
             }
             if(document.loginForm.PASS.value==null|| document.loginForm.PASS.value=="")
             {
             alert("请输入密码!");
             if (flag==false)
             document.loginForm.PASS.focus();
             flag=true;
             }
            if(flag==false)
             {
             document.loginForm.submit();
             } 
             return false;           
             }
             function userloginkeydown()
             {
             if (window.event.keyCode=="13")
             userloginsubmit();
             }
             function userloginuserid()
             {
             if (window.event.keyCode=="13")
             document.loginForm.PASS.focus();
             }
 </script>
                                                                           
 在例程3-3中函数userloginsubmit()主要在用户单击【登录】按钮的时候验证用户输入的用户名、密码是否为空。
 函数userloginkeydown(),主要完成当用户按回车键时,提交表单,也就时说当用户输入用户名、密码后单击【登录】按钮或者按回车键都会提交表单。实现这个功能是为了用户界面友好,方便最终用户的使用。
 函数userloginuserid()主要完成当用户输入完用户名按回车时,焦点跳到输入密码的文本框中。
 Userlogindo.asp主要完成用户登录的判定,把用户登录信息更新数据库和session等,例程3-4为页面Uselogindo.asp登录代码。
                   
                      例程 3-4 Userlogindo.asp 登录代码
                                                                            
 <%
 dim dbc, url
 dim forwardURL
 dim strpassword, returnurl
 strPassword=Request("strPassword")
 stremail=request("stremail")
 
 strpassword=replace(strpassword,"=","")
 stremail=replace(stremail,"=","")
 stremail=replace(stremail,"'","''")
 strpassword=replace(strpassword,"'","")
 returnurl=request("returnurl")
 
 if strEmail="" then
       sError = sError & "请输入Email<br>"
 end if
 if strPassword="" then
   sError = sError & "请输入口令<br>"
 end if
 
 If sError="" then
       RetrieveLoginData
 else
       Serror= "请登录" & "<br>" & Serror
 end if
 setsess "Loginerror",Serror 
 Setupreturnurl  url
 Response.redirect url
 
 Sub RetrieveLogindata
 Dim fieldvalue
 If GetSess("Login")="" then
    SetSess "Login","Force"
 end if
 LocateCustomer strLastName, stremail , strpassword
 If strCustomerID <>"" then
  LngLoginCount=lngLoginCount+1
  UpdateCustomerSessionData
  UpdateLoginData
  SetSess "Login",strlastname
  SetSess "realname",strlastname
 Else
   SError = SError & getlang("langLoginLocateFail")
   SetSess "Login", ""
 end if
 ShopCloseDatabase dbc
 set rs=nothing
 end sub
 
 Sub UpdateLoginData
 Dim dbc
 'on error resume next
 OpenCustomerDB dbc
 'response.write "Login count" & lngLoginCount
 sql = "update customers set "
 sql = sql & "logincount=" & lnglogincount
 'sql = sql & ",lastlogindate='" & date() & "'"
 sql = sql & ",lastlogindate=" & datedelimit(date() )
 sql = sql & " where contactid=" & strcustomerid
 dbc.execute(sql)
 ShopCloseDatabase  dbc
 end sub
 ' determine where to go to
 Sub SetupReturnurl (url)
 if returnurl<>"" then
      if Serror="" then
          url=returnurl
          exit sub
      else
         url="UserLogin.asp"
      end if
      exit sub
 end if       
 If Getsess("Followonurl")="" and getsess("Currenturl")="" then
    If Serror="" then
       url=getconfig("xhome")
    else
       url="UserLogin.asp"
    end if
    exit sub     
 end if  
 If Serror="" then
    url=GetSess("FollowonURL")
 else
    url=getSess("CurrentURL")
 end if
 end sub
 %>
                                                                              
 
3.5前台界面设计与实现
3.5.1首页设计
一般的电子商务网站,首页所含的信息量是非常大的,为了方便维护,对首页进行分块处理,然后用包含的方式,把各个块组装起来,这样不仅使页面结构清晰,而且维护方便。例程3-5为首页的参考代码。
                   
                             例程3-5  用户首页代码
                                                                           
 <%
    dim productid
    productid=Request("id")
  if (productid="") then
  response.redirect "index.asp"
  Response.end
  end if
  dim strUrlGo
  strUrlGo="/Comment.asp?id="&productid
 %>   
                                                                             
产品浏览

页面Dir.asp和页面list.asp的实现类试,这里只介绍list.asp页面实现的核心部分。例程3-6为页面ist.aspl的开始部分代码。

                       图3-19  鲜花分类的目录式检索浏览页面

                         例程3-6 list.asp页面开始部分代码
                                                                       
<%
dim pagenum
pagenum=16
%>
                                                                        
 在例程3-6中pagenum定义每页显示的产品数量,默认显示16个鲜花产品。〈!_ _#includefile=”commondb.asp”_ _>引入commondb.asp公用文件。
 从例程3-6可以看出当产品个数大于16的时候,就需要显示在下一页,因此需要实现产品的分页显示,例程3-7为list.asp产品分页显示的代码。
                 
                           例程3-7  list.asp产品分野显示的代码
                                                                             
 <%   
     dim dir,strPage,nPage
     dir=Request("dir")
     strPage=Request("Page")
     if (strPage="") then
     nPage=1
     else
     nPage=CInt(strPage) 
     end if
  
   dim MyValue,property
     MyValue=Request("MyValue")
     property=Request("property")
     if (property="") then
     property="0"
     end if
    if (MyValue="") then
     MyValue="0"
     end if
    dim result
     result=GetListFlower(property,MyValue)
     dim aryReturn,i
  aryReturn = Split(result,",")
  dim startelment,endelment
  startelment=(nPage-1)*pagenum 
  endelment=nPage*pagenum-1
  if (endelment> UBound(aryReturn)) then
  endelment=UBound(aryReturn)
  end if
  dim strSplitPage,allpage
  allpage=CInt((UBound(aryReturn)-LBound(aryReturn))/pagenum-0.5) +1
  strSplitPage="&nbsp;&nbsp;<b><font color=red>"&nPage&"/"&allpage&"</font> 页</b>&nbsp;&nbsp;&nbsp;&nbsp;"
  dim startShow,endShow,nextShow
  if ((nPage-5)<=0) then
  startShow=1
  else
  startShow=nPage-5 
  end if
  if ((nPage+5)>allpage) then
   endShow=allpage
  else
  endShow=nPage+5
  end if
  dim k
  For k=startShow To endShow
  dim showone
  showone="<a href='List.asp?property="&property&"&MyValue="&MyValue&"&Page="&k&"'>"&k&"</a> "
  strSplitPage=strSplitPage&showone
  Next
  if (nPage>1) then
   nextShow="<a href='List.asp?property="&property&"&MyValue="&MyValue&"&Page="&(nPage-1)&"'>上一页</a> "
  end if
  nextShow=nextShow&"&nbsp;&nbsp;&nbsp;"
  if (nPage<allpage) then
  nextShow=nextShow&"<a href='List.asp?property="&property&"&MyValue="&MyValue&"&Page="&(nPage+1)&"'>下一页</a> "
  end if
 %>    
     <!--#include file="inc/navigation.asp"--></td>
     <td width="10">&nbsp;</td>
     <td valign="top">
 <table border=0 cellspacing="0" cellpadding="0" width=99%>   
 <tr bgcolor=#ddFFFF><td colspan=3 height=10>
 <%=strSplitPage%>
 </td><td align="right">
 <%=nextShow%>
 </td></tr>
 <%
  dim n
  n=0
  For i = startelment To endelment
  dim one
  one=GetProduct(aryReturn(i))
    if one(FIELDAUTOID)>0 Then
  if ((n mod 4)=0) then
   response.write "<tr>"
  end if
 %>
  <td width=20% align="center">  
   <!--#include file="inc/ListOne.asp"-->    
  </td>  
 <%     
  if ((n mod 4)=3) then
   response.write "</tr>"
  end if
  n=n+1
  end if
  Next
 %>
                                                                           
 例程3-8为list.asp显示产品的代码。
                          
                           例程3-8  list.asp显示产品的代码
 
<%
dim n
n=0
For i = startelment To endelment
dim one
one=GetProduct(aryReturn(i))
   if one(FIELDAUTOID)>0 Then
if ((n mod 4)=0) then
 response.write "<tr>"
end if
%>
<td width=20% align="center">  
 <!--#include file="inc/ListOne.asp"-->    
</td>  
<%     
if ((n mod 4)=3) then
 response.write "</tr>"
end if
 n=n+1
end if
Next
%>
                                                                       
例程3-9为页面listone.asp的参考代码。
                      
                        例程3-9 页面listone.asp 的参考代码
                                                                       
<a href="Detail.asp?id=<%=one(FIELDAUTOID)%>" target="_blank">
 <img  alt=鲜花 border=0 height=80  src="<%=one(FIELDNETIMAGEMID) %>"   width=80>
 </a>
<br>
<%=one(FIELDNAME)%><br>
销售价格:<%=one(FIELDSALEPRICE)%>元<br>
<a href="java script:add2cart('<%=one(FIELDAUTOID)%>')"><img src="images/buy.gif" width="40" height="17" border="0"></a>
                                                                           
例程3-9中one是在例程3-8中调用Getproduct()方法得到的一个产品对象(one=Getproduct(aryreturn(i)),one(FIELDNAME)等是获得产品的名称等属性。


3.5.2产品详细信息
 用户在产品浏览页面中单击某个产品,就会进入产品的详细信息页面,产品详细页面主要包含两部分内容:一部分是产品信息显示:另一部分是针对该产品的用户评论。图3-20为产品详细信息页面。
 
                        图3-20  产品信息页面
 产品信息页面的实现文件问Detail.asp,例程3-10为Detail.asp页面的参考代码。
                        例程3-10  Detail.asp页面的参考代码
                                                                              
 <%
    dim productid
    productid=Request("id")
  if (productid="") then
  response.redirect "index.asp"
  Response.end

ASP在线花店系统(一)(2)相关推荐
最新推荐
热门推荐