来自SQL Server数据库的ASP动态URL

时间:2010-09-02 22:15:58

标签: html sql-server asp-classic dynamic-sql

大家好,我有一个包含我的产品信息的数据库,您可以在这里看到连接到目录页面的信息:

http://www.marioplanet.com/catalog.asp

我现在想要创建产品页面,其URL由我的数据库中的某个名称生成。

例如,如果您将浏览器指向上面的链接,并查看第一个产品(Mario(Running) - Plush),我希望根据列出的名称生成一个URL。

所以,你会去http://www.marioplanet.com/Mario_(Running)_Plush.asp或类似的东西。

现在,我不确定如何正确地做到这一点,所以我真的可以使用一些帮助。

最简单的方法是什么?

2 个答案:

答案 0 :(得分:1)

最简单的方法是购买具有此功能的购物车。如果您接受付款,这将为您在PCI合规领域节省大量麻烦。 (这并不是一个明智的答案。在你遇到合规并通过审核之前,你真的不知道你在做什么。)并且有一些开源推车会为你做到这一点。如果你不想付钱也是如此。

我不知道在经典ASP中有一种简单的方法可以做到这一点。使用ASP.NET,可以很好地覆盖和处理URL路由。我相信微软在重新路由网络流行之前很久就停止发布经典asp的更新。你相信,你必须自己在经典的asp之外写一些东西来在IIS级别处理它。

答案 1 :(得分:1)

构建网址很容易:

<%
    Dim productName
    Dim categoryName
    Dim url

    Do While rsProducts.EOF = False  
        productName = rsProducts("ProductName")
        categoryName = rsProducts("CategoryName")
        url = "http://www.marioplanet.com/Mario_" + categoryName + "_" + productName + ".asp"
%>      
    <a href="<%Response.Write url%>">
      <%Response.Write categoryName + "-" + productName %>
    </a><br>
<% rsProducts.MoveNext
  Loop   %>

然后你必须确保:

  • 这些页面都在磁盘上创建/存在
  • 设置IIS处理程序以确保它们正确路由。

更好的路线

建议您构建如下的网址:

 http://mysite.com/jackets.asp?p=Vuitton

然后只为每个类别(夹克,鞋子,猫,马)制作一页。在每个内部,从查询字符串参数中获取产品名称/ SKU。您可以使用上面的代码稍作修改。在查询Vuitton时,你肯定需要采取一些措施,这不是SQL注入攻击。

只有当页面要从数据库加载信息时,才需要从.htm更改为.asp。