【发布时间】:2019-05-04 09:53:31
【问题描述】:
我对 ColdFusion 很陌生(昨天开始)。我正在尝试在checklogin.cfm 中创建一个会话变量,它等于从表单输入的用户名。所以我可以在结果页面上显示用户名。有可能这样做吗?
或者有没有更好的方法来做到这一点?
application.cfm
<cfset this.name = "Name of your application">
<cfset this.sessionManagement = true>
check_login.cfm
<!--- If username equals user1 and password equals password1, take user to home page. --->
<cfif form.userName eq "user1" AND form.password eq "password1">
<cfset session.userName = form.userName/>
<cflocation url="home.cfm" ADDTOKEN="Yes">
<!--- If username doesn't equal user1 and/or password doesn't
equal password1, take user back to login page. --->
<cfelse>
<cflocation url="login.cfm" ADDTOKEN="Yes">
</cfif>
home.cfm
<cfoutput>
<br>
<b><font size="6">Enter the numbers you want to add:</font></b>
</cfoutput>
<!--- Add numbers form --->
<cfform action="result.cfm" method="post">
<!--- Get numbers from user --->
<p>
Enter first number:
<cfinput type="Text" name="number1" required="Yes" size="20"
maxlength="100" message="You must enter a number.">
<br>
Enter second number:
<cfinput type="Text" name="number2" required="Yes" size="20"
maxlength="100" message="You must enter a second number.">
<br>
</p>
<!--- submit button --->
<cfinput type="Submit" name="submitForm" value="Submit">
</cfform>
login.cfm
<cfform action="check_login.cfm" method="post">
<!--- Get login info from user --->
<p>
UserName:
<cfinput type="Text" name="userName" required="Yes" size="20" maxlength="25"
message="Username is required and must be less than 25 characters.">
<br>
Password:
<cfinput type="password" name="password" required="Yes" size="20" maxlength="20"
message="Password is required and must be less than 20 characters.">
<br>
</p>
<!--- submit button --->
<cfinput type="Submit" name="submitForm" value="Submit">
</cfform>
result.cfm
<cfset result = form.number1 + form.number2 >
<cfoutput>
<b><font size="6">Hi #session.userName#! </font></b><br>
<br>
<!-- Display result to user. -->
<font size="5">Your result is: #result#</font>
</cfoutput>
问题出在结果页面上,上面写着Element USERNAME is undefined in SESSION 指向<b><font size="6">Hi #session.userName#! </font></b> 行
【问题讨论】:
-
@user8968494 由于您是 CF 新手,我觉得有必要建议您避免使用 CF 元素,例如 cfform 和 cfinput,否则您的代码将永远依赖于这些元素正常工作,并且您自定义它们的能力有限。最好直接使用 html,然后根据需要编写自己的功能。
-
我会呼应 Redtopia,我还要补充一点,每当您传递用户变量时,您都应该对它们进行一些很好的验证。 owasp.org/index.php/Injection_Prevention_Cheat_Sheet
-
我还建议您查看 cfscript 语法而不是标签语法。特别是如果您熟悉 Javascript。
-
您为什么要从您的问题中删除详细信息?我们需要这些来帮助您。如果您从最初的帖子中更改了代码,那没关系,但您应该将这些新细节添加到您的原始问题中,以便保留这些 cmets 和答案的上下文。
-
@Miguel-F 我添加了这些内容。这个问题有点需要这些细节。
标签: coldfusion session-variables coldfusion-2018