Ich erstelle eine E-Commerce-Website für meine Projektarbeit. In dem ich eine application.cfm Seite erstellt, den Code von this tutorial mit:So erstellen Sie eine Anmeldung nur für Mitgliederbereich
<!--- 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>
Dies ist die Login_process.cfm Seite:
<!--- 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>
Das Problem, das ich mit dem Code bin vor, wenn ich Öffnen Sie die Indexseite, die mich zur Anmeldung auffordert. Ohne mich einzuloggen, kann ich nicht fortfahren. Wenn ich die Seite registration.cfm direkt öffne, passiert das Gleiche. Wie kann ich den Code so strukturieren, dass ein Gast auf Dinge zugreifen kann, aber sich anmelden muss, wenn er die Option "In den Warenkorb" verwendet.
Beenden Sie mit Application.cfm, verwenden Sie Application.cfc. –