0
我正在为我的项目工作创建电子商务网站。在我从this tutorial创建一个application.cfm页面,使用代码:如何仅为会员区域创建登录
<!--- Create the application --->
<cfapplication name="MyApp"
clientmanagement="Yes"
sessionmanagement="Yes"
sessiontimeout="#CreateTimeSpan(0,0,0,10)#"
applicationtimeout="#CreateTimeSpan(0,0,0,10)#" />
<!--- Now define that this user is logged out by default --->
<CFPARAM NAME="session.allowin" DEFAULT="false" />
<!--- Now define this user id to zero by default, this will be used later on to access specific information about this user. --->
<CFPARAM NAME="session.user_id" DEFAULT="0" />
<!--- Now if the variable "session.allowin" does not equal true, send user to the login page --->
<!--- the other thing you must check for is if the page calling this application.cfm is the "login.cfm" page and the "Login_process.cfm" page since the Application.cfm is always called, if this is not checked the application will simply Loop over and over. To check that, you do the following call --->
<cfif session.allowin neq "true">
<cfif ListLast(CGI.SCRIPT_NAME, "/") EQ "loginn.cfm">
<cfelseif ListLast(CGI.SCRIPT_NAME, "/") EQ "login_process.cfm">
<cfelse>
<!--- this user is not logged in, alert user and redirect to the login.cfm page --->
<script>
alert("You must login to access this area!");
self.location="loginn.cfm";
</script>
</cfif>
</cfif>
这是Login_process.cfm页:
<!--- Get all records from the database that match this users credentials --->
<cfquery name="qVerify" datasource="cfdb2">
SELECT User_name, User_pass
FROM uid_pass
WHERE User_name = '#name#'
and User_pass='#pass#'
</cfquery>
<cfif qVerify.RecordCount>
<!--- This user has logged in correctly, change the value of the session.allowin value --->
<cfset session.allowin = "True" />
<cfset session.User_name = qVerify.User_name />
<!--- Now welcome user and redirect to "<strong>members_only.cfm</strong>" --->
<script>
alert("Welcome user, you have been successfully logged in!");
self.location="index.cfm";
</script>
< cfelse>
<!--- this user did not log in correctly, alert and redirect to the login page --->
<script>
alert("Your credentials could not be verified, please try again!!!");
self.location="Javascript:history.go(-1)";
</script>
</cfif>
我的代码面临的问题是,当我打开它要求我登录的索引页面。没有登录,我无法继续。如果我直接打开registration.cfm页面,则会发生同样的情况。我如何构建代码以便访客可以访问事物,但必须在使用“添加到购物车”选项时登录。
停止使用Application.cfm,开始使用Application.cfc。 –