Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用CFSWITCH在页面上隐藏URL的最佳方法是Coldfusion?_Coldfusion_Coldfusion 8 - Fatal编程技术网

使用CFSWITCH在页面上隐藏URL的最佳方法是Coldfusion?

使用CFSWITCH在页面上隐藏URL的最佳方法是Coldfusion?,coldfusion,coldfusion-8,Coldfusion,Coldfusion 8,我想构建一个隐藏URL的框架,我只是在学习CFSWITCH。导航链接在datatable中查询。我试着查询cfswitch,但总是出错 例如: ?类别=5,页码=21(其中类别=页码+类别,5=页码+类别ID 第页为第页(数据表中的id为21) 首先,欢迎使用ColdFusion,它是一种很棒的语言,我想你会喜欢它的。:) 您在这里尝试的是一个非常糟糕的想法,原因有很多,请继续阅读,了解原因和其他选择 1) 它不必要地混淆了开发人员对它的理解。相信我,6个月后,当你回去做一些武断的改变,不记得“

我想构建一个隐藏URL的框架,我只是在学习CFSWITCH。导航链接在datatable中查询。我试着查询cfswitch,但总是出错

例如: ?类别=5,页码=21(其中类别=页码+类别,5=页码+类别ID 第页为第页(数据表中的id为21)


首先,欢迎使用ColdFusion,它是一种很棒的语言,我想你会喜欢它的。:)

您在这里尝试的是一个非常糟糕的想法,原因有很多,请继续阅读,了解原因和其他选择

1) 它不必要地混淆了开发人员对它的理解。相信我,6个月后,当你回去做一些武断的改变,不记得“14”是什么意思时,你会学会讨厌它

2) 这对搜索引擎是不好的-谷歌搜索更多信息的网址(搜索引擎安全)

3) 数字递增键的安全性低于描述性文本。我可以循环浏览数字,查看所有页面,跳过导航,查看所有内容

4) 你得不到其他方式无法获得的可感知优势(我将在下一步向你展示)

与其按照您列出的方式进行操作,不如使用链接到不同元素的任意数字——为什么不将它们从有意义的实际字符串中去掉?如果您试图实现的是隐藏正在处理请求的实际页面名称,为什么不改为使用以下内容:

http://www.domain.com/?/category/blog/page/links
而不是:

http://www.domain.com/page.cfm?category_id=21&page=5
在我的示例中,我没有指向实际的目录,而是将cgi.querystring参数(它将包含字符串“
/category/blog/page/links
”)解析并将其与键值匹配。(请参阅coldfusion列表函数:,使用“
/
”作为分隔符)。然后我可以调出分类“博客”和页面“链接”所需的任何逻辑,这些逻辑可以存储在与“21”和“14”相同的数据库中:)

现在,关于你的代码

至于switch语句,它的工作原理有点像一组if语句:

<cfswitch expression="value_to_check">
<cfcase value="possible_value_1">
    <!--- do something --->
</cfcase>
<cfcase value="possible_value_2,another_possible_value">
    <!--- do something different --->
</cfcase>
<cfdefaultcase>
    <!--- if none of the above, do this --->
</cfdefaultcase>
</cfswitch>

你的include语句中也有些奇怪。不能在
语句中指定任何url参数。可以将其视为从指定的页面抓取代码并将其粘贴到文档中。它就是这样做的,不多不少。因此,您不能指定url参数。这是无效的:

<cfinclude template="../templates/page_bycategory.cfm?page_categoryid=#page_categoryid#">

此外,case语句具有如下动态值是非常不正常的:

<cfcase value="#page_categoryid#">


如果您有任何问题/需要澄清,请告诉我。首先,欢迎使用ColdFusion,它是一种很棒的语言,我想您会喜欢它的。:)

您在这里尝试的是一个非常糟糕的想法,原因有很多,请继续阅读,了解原因和其他选择

1) 它不必要地混淆了开发人员对它的理解。相信我,6个月后,当你回去做一些武断的改变,不记得“14”是什么意思时,你会学会讨厌它

2) 这对搜索引擎是不好的-谷歌搜索更多信息的网址(搜索引擎安全)

3) 数字递增键的安全性低于描述性文本。我可以循环浏览数字,查看所有页面,跳过导航,查看所有内容

4) 你得不到其他方式无法获得的可感知优势(我将在下一步向你展示)

与其按照您列出的方式进行操作,不如使用链接到不同元素的任意数字——为什么不将它们从有意义的实际字符串中去掉?如果您试图实现的是隐藏正在处理请求的实际页面名称,为什么不改为使用以下内容:

http://www.domain.com/?/category/blog/page/links
而不是:

http://www.domain.com/page.cfm?category_id=21&page=5
在我的示例中,我没有指向实际的目录,而是将cgi.querystring参数(它将包含字符串“
/category/blog/page/links
”)解析并将其与键值匹配。(请参阅coldfusion列表函数:,使用“
/
”作为分隔符)。然后我可以调出分类“博客”和页面“链接”所需的任何逻辑,这些逻辑可以存储在与“21”和“14”相同的数据库中:)

现在,关于你的代码

至于switch语句,它的工作原理有点像一组if语句:

<cfswitch expression="value_to_check">
<cfcase value="possible_value_1">
    <!--- do something --->
</cfcase>
<cfcase value="possible_value_2,another_possible_value">
    <!--- do something different --->
</cfcase>
<cfdefaultcase>
    <!--- if none of the above, do this --->
</cfdefaultcase>
</cfswitch>

你的include语句中也有些奇怪。不能在
语句中指定任何url参数。可以将其视为从指定的页面抓取代码并将其粘贴到文档中。它就是这样做的,不多不少。因此,您不能指定url参数。这是无效的:

<cfinclude template="../templates/page_bycategory.cfm?page_categoryid=#page_categoryid#">

此外,case语句具有如下动态值是非常不正常的:

<cfcase value="#page_categoryid#">


如果您有任何问题/需要澄清,请告诉我

您能发布您收到的错误消息吗?您能发布您收到的错误消息吗?Nate的回答非常好。你为什么不研究一下一些MVC框架,比如ColdBox或fw/1I呢?我一直在想如何去掉带有变量的URL。这很有帮助。谢谢内特的回答很好。你为什么不研究一下一些MVC框架,比如ColdBox或fw/1I呢?我一直在想如何去掉带有变量的URL。这很有帮助。谢谢