gpt4 book ai didi

coldfusion - 创建 session 变量

转载 作者:行者123 更新时间:2023-12-04 01:50:35 26 4
gpt4 key购买 nike

我是 ColdFusion 的新手(昨天开始)。我正在尝试在 checklogin.cfm 中创建一个 session 变量,等于从表单输入的用户名。所以我可以在结果页面上显示用户名。有可能这样做吗?或者有更好的方法吗?

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>

登录.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>

结果.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>

最佳答案

要修复提到的错误,您需要将 session 变量的设置移到 <cflocation> 上方在您的 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">
<cflocation url="home.cfm">
<!--- If username doesn't equal user1 and/or password doesn't equal password1, take user back to login page. --->
<cfelse>
<cflocation url="login.cfm">
</cfif>
<cfset session.userName = form.userName/>

像这样:

<!--- 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">
<!--- If username doesn't equal user1 and/or password doesn't equal password1, take user back to login page. --->
<cfelse>
<cflocation url="login.cfm">
</cfif>

这是因为 ColdFusion 在遇到 <cflocation> 时将停止处理文件的其余部分。标签。当它处理该标签时,它会立即将重定向发回给用户。因此,您设置 session 变量的代码从未运行过。

在 session 变量设置周围使用 CFLOCK 的更新示例

<!--- If username equals user1 and password equals password1, take user to home page. ---> 
<cfif form.userName eq "user1" AND form.password eq "password1">
<cflock scope="session" type="exclusive" timeout="10">
<cfset session.userName = form.userName/>
</cflock>
<cflocation url="home.cfm">
<!--- If username doesn't equal user1 and/or password doesn't equal password1, take user back to login page. --->
<cfelse>
<cflocation url="login.cfm">
</cfif>

关于coldfusion - 创建 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53588079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com