Coldfusion España
Posicionamiento en Buscadores
Próxima Reunión
Fecha:por definir
Tema:por definir
Lugar:por definir

Información General
- Inicio
- Nosotros
- Coldfusion MX
- Contactar
- Patrocinadores
Código
- Custom Tags
- Tutoriales Coldfusion
    - Tutoriales
    - Tutorial 1
    - Tutorial 2
    - Tutorial 3
    - Tutorial 4
    - Tutorial 5

Hosting
- Coldfusion Hosting
- Alojamiento Coldfusion

Reuniones y Noticias
- Reuniones
- Empleo
- Eventos
- Noticias

Buscas Programador?
- Coldfusion Programmer
- Programador Coldfusion

Webmasters
- Intercambio Enlaces

Powered by Coldfusion MX 7

Tutorial 3 - Area Restringida (Sesiones, Login y Logout)

Antes de empezar comentaré un poco como funcióna Coldfusion.<BR< Imaginamos que estamos usando C:\Inetpub\wwwroot\miweb y http://127.0.0.1/miweb/index.cfm (y que teneis index.cfm como documento por defecto en IIS)

Cuando llamas http://127.0.0.1/miweb/index.cfm, Coldfusion primero busca un archivo llamado Application.cfm (notar el "A" mayúscula para uso en Linux), porque siempre lee este archivo antes de ller el archivo llamado. (index.cfm en este caso)
Si lo encuentra bien, y si no empieza a buscarlo en la carpeta padre y sigue asi hasta llegar a C:, si no encuentra ninguno pasa a leer index.cfm.

Application.cfm se usa para poner el tag <CFAPPLICATION> y para asignar variables globales a la applicación.<BR< Para tener una zona restringida tenemos que usar sesiones. Abajo pondré 3 archivos Application.cfm, loginform.cfm y mizona.cfm
(Requiere previamente crear un dsn llamado "miweb" en CFAdmin con una tabla "Usuarios" y campos UsuarioID (int), nombre (varchar 50), usuario (varchar 30), upassword (varchar 30)

Application.cfm
<CFAPPLICATION NAME="miweb" SESSIONMANAGEMENT="Yes" SESSIONTIMEOUT="#CreateTimeSpan(1,0,0,0)#">
<CFSET request.maindsn = "miweb">

<--- Si intentas entrar en la zona restringida y NO tienes la variable session.usuarioid pues echar al login --->
<CFIF NOT FindNoCase("loginform.cfm",#CF_TEMPLATE_PATH#,1) AND NOT IsDefined("session.usuarioid")>
<CFLOCATION URL="loginform.cfm" ADDTOKEN="No">
</CFIF>

loginform.cfm
<CFSET DeleteSession = StructClear(session)>

<CFPARAM NAME="form.Usuario" DEFAULT="">
<CFPARAM NAME="form.password" DEFAULT="">

<CFIF IsDefined("form.btn_login")>
<CFQUERY NAME="LoginQuery" DATASOURCE="#request.maindsn#">
SELECT *
FROM Usuarios
WHERE Usuario = <CFQUERYPARAM VALUE="#Trim(form.Usuario)#" CFSQLTYPE="CF_SQL_VARCHAR">
AND UPassword = <CFQUERYPARAM VALUE="#Trim(form.password)#" CFSQLTYPE="CF_SQL_VARCHAR">
</CFQUERY>
<CFIF LoginQuery.recordcount IS NOT 1>
<CFSET message = "Ha entrado un usuario incorecto">
<CFELSE>
<CFSET session.usuarioid = LoginQuery.usuarioid>
<CFLOCATIONURL="index.cfm?fuseaction=mizona.cfm" ADDTOKEN="No">
</CFIF>
</CFIF>

<CFOUTPUT>
<CFFORM ACTION="loginform.cfm" METHOD="POST">
<TABLE BORDER="0" CELLPADDING="1" CELLSPACING="0" ALIGN="CENTER" WIDTH="50%" BGCOLOR="black"><TR><TD>
<TABLE BORDER="0" CELLPADDING="1" CELLSPACING="0" ALIGN="CENTER" WIDTH="100%" BGCOLOR="white">
<TR>
<TD ALIGN="CENTER">
<TABLE BORDER="0" CELLPADDING="4" CELLSPACING="0" ALIGN="CENTER" WIDTH="100%">
<CFIF IsDefined("message")>
<TR<<TD COLSPAN="2" ALIGN="center" BGCOLOR="red"><FONT COLOR="white">#message#</FONT></TD></TR>
</CFIF>
<TR>
<TD>Usuario:</TD>
<TD><CFINPUT NAME="Usuario" TYPE="text" VALUE="" SIZE="30" MAXLENGTH="50" REQUIRED="Yes" MESSAGE="Please enter a Usuario"></TD>
</TR>
<TR>
<TD>Password:</TD>
<TD><CFINPUT NAME="password" TYPE="password" VALUE="" SIZE="30" MAXLENGTH="50" REQUIRED="Yes" MESSAGE="Please enter a password"></TD>
</TR>
<TR>
<TD COLSPAN="2" ALIGN="center"><INPUT TYPE="submit" NAME="btn_login" VALUE="Login"></TD>
</TR>
</TABLE>
</TD>
</TR>
</CFFORM>
</TABLE>
</TD></TR></TABLE>
</CFOUTPUT>

mizona.cfm
<CFQUERY NAME="q_datos" DATASOURCE="#request.maindsn#">
SELECT *
FROM Usuarios
WHERE UsuarioID = #val(session.usuarioid)#
</CFQUERY>

<CFOUTPUT>
Bienvenido #q_datos.nombre# a mi web.
</CFOUTPUT>

Recursos - ArcWeb © 2003-2006 Coldfusion Spain