• Publicidad

Cómo crear Cookies con Perl

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Cómo crear Cookies con Perl

Notapor BlackJack » 2012-07-14 21:02 @918

¡Hola! Quiero crear una página con usuarios y quisiera saber si me pueden pasar una página para poder descargar un módulo para crearlas y mejor si me pueden explicar cómo se usa. ¡Gracias!

Es que ya vi el tutorial de cómo crear Cookies de esta página pero me sale el siguiente error:
malformed header from script. Bad header=domain = http://www.mevolucion.com; : start.pl

Este es el módulo de la cookie que tengo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. package cookie;
  2. sub set_cookie {
  3. my ($name, $value, $expiration, $path, $domain, $secure) = @_;
  4. print "Set-Cookie: $name = $value; expires = $expiration; path = $path;
  5. domain = $domain; $secure \n";
  6. return(1);
  7. }
  8.  
  9. sub get_cookie {
  10. my (@cookies, %return_cookie, $cookie, $key, $val);
  11. @cookies = split (/; /,$ENV{'HTTP_COOKIE'});
  12. foreach $cookie (@cookies){
  13. ($key, $val) = split (/=/,$cookie);
  14. $return_cookie{$key} = $val;
  15. }
  16. return (%return_cookie);
  17. }
  18. 1;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

y este es la otra página, que la crea:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!C:/xampp/perl/bin/perl.exe
  2. use CGI;
  3. my $query,%FORMS;
  4. $query=new CGI;
  5. %FORMS=$query->Vars;
  6. $nombre=$FORMS{"name"};
  7. $contra=$FORMS{"password"};
  8. use cookie;
  9. &cookie::set_cookie($nombre,$contra,'15-Jul-2012 00:00:00 GTM',"../Avengers","www.mevolucion.com");
  10. print "content-type: text/html \n\n";
  11. print "<a href=\"a.pl\">Otra Pagina</a>";
  12.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Imagen
Dark-Dragon
Avatar de Usuario
BlackJack
Perlero nuevo
Perlero nuevo
 
Mensajes: 18
Registrado: 2012-05-24 22:44 @989
Ubicación: Santa Cruz/Bolivia

Publicidad

Re: Cómo crear Cookies con Perl

Notapor explorer » 2012-07-15 14:05 @628

Si estás usando el módulo CGI, no necesitas ningún función externa para generar o leer cookies.

Con el módulo CGI puedes generarlas y recuperarlas con la función cookie().

Por ejemplo, puedes crearlas con:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
    $cookie = cookie(
                 -name    => 'sessionID',
                 -value   => 'xyzzy',
                 -expires => '+1h',
                 -path    => '/cgi-bin/database',
                 -domain  => '.capricorn.org',
                 -secure  => 1,
    );
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
y luego la mandas en la cabecera de respuesta, en el header():
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use CGI ':standard';
...;
print header(-cookie=>$cookie);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Luego, más tarde, para recuperar el valor de la galleta, te vale con llamar a cookie() sin el parámetro -value, o directamente.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $galleta = cookie('sessionID');
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


En el propio módulo CGI, en la sinopsis hay un ejemplo. Y una explicación más detallada en la sección HTTP COOKIES (en inglés).

Es más, con el módulo CGI no necesitas hacer el print("Content-Type..."), ni generar código HTML "a mano", como muestras al final del código. Mira mi CGI mínimo para que veas las posibilidades que ofrece CGI.

CGI usa el módulo CGI::Cookie, así que si quieres puedes usarlo directamente.

Otro asunto es por qué quieres usar cookies.

Si quieres controlar sesiones de usuario, tienes también CGI::Session, que simplifica un poco todo lo que tiene que ver con control de sesiones de usuarios.

Lamentablemente, no conozco ningún manual al respecto, salvo la propio documentación de los módulos (a veces, bastante liosa...). En estos foros hemos hablado de estos módulos en ocasiones pasadas. Usa el sistema de búsqueda para localizarlos.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14475
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Cómo crear Cookies con Perl

Notapor danimera » 2012-07-16 14:22 @640

Ya tenemos que modernizarnos un poco... por lo menos empieza con CGI-Session... aunque yo de ti, de una empezaría por un framework fácil como CGI-Application para controlar los usuarios...

Pero te recomiendo olvidar las cookies, y usa CGI-Session, que la verdad, como dice explorer, simplifica el trabajo...
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia


Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron