Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Sesiones de usuario en una página web (https://www.clubdelphi.com/foros/showthread.php?t=61328)

chalao 04-11-2008 11:43:14

Sesiones de usuario en una página web
 
Os expongo mi problema.
Estoy trabajando con los componentes Indy para hacen un servidor web (TIdHTTPServer) que sirva distintas páginas mandando cadenas de texto (código html) con el contenido de éstas según las peticiones del usuario, ya sean clickando en un vínculo o introduciendo datos en un formulario.
Pues bien, la página principal sería un formulario simple para recoger el nombre de usuario y contraseña en un formulario simple:
Código:

<form><h3>Introduzca sus datos de usuario: </h3><p>Nombre:<input type="text" maxlength="20" name="usuario"/></p><p>Contraseña:<input type="password" maxlength="10" name="pass"/></p><p><input type="submit" value="Validar" name="BEnviar"/></p></form>
Estos datos los tendría que almacenar y crear una sesión para cada usuario para tener controlados en todo momento los usuarios que están conectados. Como en un foro.
Alguna idea de como hacerlo??
En AResponseInfo encontré algunos propiedades que me podrían servir pero son de sólo lectura y de momento no las puedo usar del modo en que quisiera.
Gracias por su tiempo y un saludo forer@s;)

chalao 05-11-2008 12:06:55

Podría solucionar esto con Cookies ??
Quizás sea esta la mejor forma pero no estoy seguro, sigo navegando por la ayuda de Borland a ver si con cookies le pongo solución.

chalao 06-11-2008 18:26:20

Parece que encontré la solución a mi problema, os pongo algunas sentencias:

Código Delphi [-]
            ASession : TIdHTTPSession;
            //Compongo el identificador de sesión (string)
           sSesionID := ARequestInfo.RemoteIP + '_' +  ARequestInfo.Params.Values['usuario'] +'_' + ARequestInfo.Params.Values['pass'];
           //Creo una sesion y la inicio con los datos de ARequestInfo
           ASession := Form1.IdHTTPServer1.SessionList.CreateSession(ARequestInfo.RemoteIP, sSesionID);
           ASession.Content.Add(ARequestInfo.Params.Values['usuario']);
           ASession.Content.Add(ARequestInfo.Params.Values['pass']);
           //Añado la sesion en la lista de sesiones
           Form1.IdHTTPServer1.SessionList.Add(ASession);

           //Leo la sesion de la lista de sesiones identificandola con (sSesionID, RemoteIP)
           ASession := Form1.IdHTTPServer1.SessionList.GetSession(sSesionID, ARequestInfo.RemoteIP);




Espero que con esto tenga para controlar varias sesiones simultáneas desde la lista de sesiones e incluir los usuarios conectados en mi código HTML.
Me ha costado un par de quebraderos de cabeza más de la cuenta con lo simple que es, pero es que iniciarse, sea en lo que sea, tiene su miga :rolleyes:
Si alguien confirma o desmiente que hable ahora o calle para siempre :D ;)

Saludos


La franja horaria es GMT +2. Ahora son las 14:38:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi