Есть ли где-нибудь в вашем коде, где вы устанавливаете свой session.IDUsers? Вы инициализируете это как пробел ''. Coldfusion не заполняет его для вас. Область сеанса - это место, которое будет помнить вещи для этого пользователя, которые вы помещаете туда в течение определенного периода времени бездействия, обычно 20 минут. Так что, надеюсь, где-то перед тем, как вы выполните свой запрос, у вас есть дополнительная логика, которая заполняет его, в противном случае вы запрашиваете в базе данных пользователя с именем ''.
Это просто точка стиля, но вам может помочь следующее:
<cfset Session.IDUsers =''>
<!--- Do something here to populate Session.IDUsers --->
<!--- Creates a blank query - not necessary, but can reduce errors later --->
<cfset Recordset1 = queryNew("UserID")>
<!--- Populate the query from the database --->
<cfquery name="Recordset1" datasource="cfGossip">
SELECT *
FROM users
WHERE users.IDUsers = <cfqueryparam value="#Session.IDUsers#">
</cfquery>
<!--- If the query has data, use it, otherwise show generic message --->
<cfoutput>
<cfif Recordset1.recordcount>
<p>Welcome #Recordset1.UserID#.</p>
<cfelse>
<p>Welcome new user!</p>
</cfif>
</cfoutput>
<!--- OR since we used queryNew("userID"), we can simplify without throwing an error. ---->
<cfoutput>
<p>Welcome <cfif len(Recordset1.userID)>#Recordset1.userID#.<cfelse>new user!</cfif></p>
</cfoutput>
Размещение cfoutput вне блока абзаца облегчит, если у вас есть дополнительные переменные для вставки в текст. (но будет работать в любом случае)
Независимо от всего этого, если вы не забыли поделиться чуть большим количеством кода, я думаю, что проблема в том, что session.IDUsers пуст и должен быть заполнен перед запросом. Надеюсь, это поможет!