Hola:
Si vas a pasar la sesión por las ligas no tienes la necesidad de un cookie:
- Código: Seleccionar todo
<a href=http://www.pagina.com.ar/otroperl?id=137463>link</a>
A lo que me referia con el archivo. Digamos que el usuario pone bien su nombre de usuario y contraseña, entonces le asignas un número de id, tiempo de creación, y los datos del usuario y lo guardas en un archivo al cual le vamos a llamar sesiones.txt:
- Código: Seleccionar todo
#!/usr/bin/perl -w
use strict;
use CGI;
#Recibimos los datos de la forma
my $query = new CGI;
my %Input = $query->Vars;
#La verificación que harías de username y contraseña
if($Input{'usuario'} eq "" && $Input{'pwd'} eq ""){
my $id_sesion = "ses" . (time() + int(rand(100)));
my $tiempo_sesion = time();
#Abrimos el archivo de sesiones
open(FILE,">>sesiones.txt");
print FILE join ":", $id_sesion, $tiempo_sesion, $Input{'usuario'};
print FILE "\n";
close(FILE);
}
Así ya se pone una nueva entrada al archivo sesiones.txt que se vería algo así:
- Código: Seleccionar todo
ses1117422682:1117422620:prueba
El primer elemento es el número de sesión, el segundo es la hora en que fue creada, y el último el nombre del usuario.
Entonces en cada uno de tus scripts puedes verificar las sesiones haciendo algo así:
- Código: Seleccionar todo
#!/usr/bin/perl -w
use strict;
use CGI;
#Recibimos los datos de la forma
my $query = new CGI;
my %Input = $query->Vars;
#Si es que tenemos sesion
if($Input{'id'}){
open(FILE,"sesiones.txt");
my @sesion = grep{ /^$Input{'id'}/ } <FILE>;
close(FILE);
if(defined($sesion[0])){
my @datos = split(/\:/, $sesion[0]);
print "Hola $datos[2]\n";
print "Tu número de sesión es $datos[0]\n";
}else{
#pedir contraseña
}
}else{
#pedir username y contraseña
}
El código es solamente un bosquejo de como podría funcionar, debes de mejorarlo y modificarlo según tus necesidades. De hecho no lo he probado, en mi mente funciona, y debe de funcionar
Pero más o menos te puede dar una idea de lo que podría hacer.
SALUDOS