我正在为我的网站编写简单的404 seo。我有点困惑。我需要代码来查看类别表,看看它是否与字符串匹配。如果是,那么它应该打印类别的名称,如果没有,那么它应该显示“找不到页面”消息。我不明白我在哪里错了...
> > <%
> > WebsiteQueryString = Request.QueryString
> > SplitQueryString = split(WebsiteQueryString, "/")
> >
> > SQL = "SELECT C.CATEGORYID,
> > C.CATEGORYNAME" SQL = SQL & " FROM
> > CATEGORIES C" Set objCategory =
> > objConn.Execute(SQL)
> >
> > If objCategory("CATEGORYID") =
> > SplitQueryString(4) Then %>
> >
> > <%=objCategory("CATEGORYNAME")%>
> >
> > <% Else %>
> >
>
> enter code here`page not found.
>
> >
> >
> > <% End If %>
答案 0 :(得分:0)
好的,我对Classic ASP有点生疏,但似乎你可能想要更像这样的东西:
<%
WebsiteQueryString = Request.QueryString
SplitQueryString = split(WebsiteQueryString, "/")
' I'm assuming SplitQueryString(4) is a number, as is CATEGORYID
SQL = "SELECT CATEGORYNAME FROM CATEGORIES WHERE CATEGORYID = " & SplitQueryString(4)
Set objCategory = objConn.Execute(SQL)
If objCategory("CATEGORYNAME") <> "" Then
Response.Write(objCategory("CATEGORYNAME"))
Else %>
enter code here`page not found.
<% End If %>
另一个主要评论。采用这种方法会使您非常容易受到SQL注入攻击。我建议使用存储过程。
答案 1 :(得分:0)
一些提示:
1 /使用cInt(或cStr)
If objCategory("CATEGORYID") = SplitQueryString(4) Then
如果SplitQueryString(4)
是一个数字,请尝试将cInt(
放在两个操作数之前,如
If cInt(objCategory("CATEGORYID")) = cInt(SplitQueryString(4)) Then
如果遇到需要这样做的情况进行比较。
2 /尝试在屏幕上显示值,然后再进行比较(你确定要与正确的元素进行比较吗?)
Response.Write( "[" & objCategory("CATEGORYID" & "]")
Response.Write( "[" & SplitQueryString(4) & "]" )
我总是在它们周围放置括号,以查看是否存在空字符串
3 /测试IsNull()
尝试为objCategory("CATEGORYID")
测试IsNull(),因为我认为如果记录中没有字段值,则字段值为空
4 /确保使用正确的字段名称(CATEGORYID) - 检查拼写