我一直在尝试在ColdFusion中创建自己的论坛脚本,但遗憾的是,它比我认为的要困难得多。我试图显示数据库中的所有注释时遇到困难,因为ColdFusion会引发错误。
以下信息适用于网站开发人员以进行调试。
处理请求时出现错误
元素USERNAME在REAGEER中未定义。
错误发生在 C:/inetpub/wwwroot/content/1-Home/topicview.cfm:第197行
195: 196: <div id="pers_info"> 197: <a href="/">#reageer.username#</a> <cfif #reageer.online# is 1><img src="http://www.wonderhotel.nl/archive/icons/mini/habbo_online_anim.gif"></img><cfelse><img src="http://www.wonderhotel.nl/archive/icons/mini/habbo_offline.gif"></img></cfif></strong> 198: <p>Berichten: 55</p> 199:
我为此脚本编写的代码如下:
<cfif IsDefined('URL.id') and URL.id neq ""> // Get the topic ID
<cfquery name = "comments" datasource = "#DSN#">
SELECT *
FROM `forum_comments`
WHERE topicid = #id#
</cfquery> // Get the comments
<cfif #comments.RecordCount# is 1>
<cfquery name = "reageer" datasource = "#DSN#">
SELECT *
FROM `users`
WHERE id = #comments.poster#
</cfquery> // Get the comment posters
</cfif>
<cfset colour ="post_uneven">
<cfloop query="comments">
<div id="#colour#">
<div id="pers_info">
<a href="/">#reageer.username#</a> <cfif #reageer.online# is 1><img src="http://www.wonderhotel.nl/archive/icons/mini/habbo_online_anim.gif"></img><cfelse><img src="http://www.wonderhotel.nl/archive/icons/mini/habbo_offline.gif"></img></cfif>
<p>Berichten: 55</p>
<cfquery name = "reageer_badge_one" datasource = "#DSN#">
SELECT *
FROM `user_badges`
WHERE user_id = '#reageer.id#'
AND badge_slot = 1
</cfquery>
<cfquery name = "reageer_badge_second" datasource = "#DSN#">
SELECT *
FROM `user_badges`
WHERE user_id = '#reageer.id#'
AND badge_slot = 2
</cfquery>
<div id="pers_info_habbo">
<img src="http://habbo.nl/habbo-imaging/avatarimage?figure=#reageer.look#.gif">
</div>
<div id="pers_info_grbadge">
<cfif #reageer_badge_one.RecordCount# is 1>
<img src="http://wonderhotel.nl/Public/Images/badges/#reageer_badge_one.badge_id#.gif">
</cfif>
</div>
<div id="pers_info_badge">
<cfif #reageer_badge_second.RecordCount# is 1>
<img src="http://wonderhotel.nl/Public/Images/badges/#reageer_badge_second.badge_id#.gif">
</cfif>
</div>
<div id="pers_info_missie">
#reageer.motto#
</div>
</div>
<div id="post_text">
<a href="/"><div id="post_text_edit" title="Bericht aanpassen"></div></a>
<a href="/"><div id="post_text_delete" title="Bericht verwijderen"></div></a>
<div id="post_text_title">
RE: #gettopic.title#
</div>
<div id="post_text_date">
#DateFormat(dateAdd("s", comments.timestamp, "01/01/1970"))# #TimeFormat(dateAdd("s", comments.timestamp, "01/01/1970"))#
</div>
<div id="post_text_text">
#comments.text#
</div>
</div>
</div></div>
<cfif colour is "post_uneven"><cfset colour="post_even"><cfelse><cfset colour="post_uneven"></cfif>
</cfloop>
</cfoutput>
<div id="topic_info_balk"> // Useless
<div id="forum_paginas">
Bekijk pagina:
1
<a href="#">2</a>
<a href="#">3</a>
<a href="#">4</a>
<a href="#">5</a>
<a href="#">6</a>
<a href="#">7</a>
<a href="#">8</a>
<a href="#">9</a>
<a href="#">10</a>
<a href="#">>></a>
</div>
<div id="reageer-topic">
<a href="/topic/<cfoutput>#gettopic.id#</cfoutput>/comment">Reageer</a>
</div>
</div>
</div>
我真的不知道我做错了什么,为什么ColdFusion会给我这个错误。我将非常感谢所有的帮助!我唯一的猜测是,ColdFusion试图从第一条评论的海报中获取所有数据(但也是如此),但这是错误的,因为我想得到评论1,评论2,以及之后的3,4,5等等。
此外,在向主题添加第一条评论时,一切正常。但是在添加第二个之后,我得到了您可以在上面看到的错误。
此致 的Yannick
答案 0 :(得分:3)
我的猜测是,因为你在“试用者”查询周围有一个<cfif>
,所以错误正在发生,因为有多个注释,但username
的输出没有包含在<cfif>
也是如此。因此,ColdFusion正试图从不存在的查询中获取username
的值(因为<cfif>
阻止它执行),因此错误。