Dom Jun 22, 2008 4:40 am
|
 |
Lor
Perlero Nuevo

|
Registrado: 28 Abr 2005
Mensajes: 99
Ubicación: Argentina, Santa FE
|
|
| CGI::Session / CGI::Ajax |
|
|
Estoy trabajando con el modulo CGI ::Session en mis aplicaciones y quiero insertar en las mismas el módulo CGI::Ajax pero no puedo hacerlo funcionar.
Corriendo la aplicación con Ajax únicamente anda correcto, pero al insertar en las mismas todo lo relacionado a la sesión deja de funcionar.
Puedo trabajar CONJUNTAMENTE Ajax con SESIONES. ¿Cómo debo hacerlo?
¡¡¡¡¡¡ MUCHAS GRACIAS !!!!!!  |
|
|
|

Dom Jun 22, 2008 7:11 am
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
Hola:
El problema es que si estás haciendo rastreo de tus sesiones por medio de cookies. ¿Por qué? Porque con CGI se escriben las cookies enviándolas en el encabezado del envío http, y la idea de AJAX es no tener que hacer un nuevo request desde el navegador, por lo que no podrás escribir tus cookies de esa manera.
Tendría que ver el código, pero me parece que ese es el problema. Una solución sería escribir el cookie con una función de JavaScript:
http://www.w3schools.com/JS/js_cookies.asp
Saludos |
|

Dom Jun 22, 2008 8:21 am
|
 |
Lor
Perlero Nuevo

|
Registrado: 28 Abr 2005
Mensajes: 99
Ubicación: Argentina, Santa FE
|
|
|
|
|
Uriel, yo NO trabajo con cookies, obtengo el identificador de la sesión ($sid) a través de la función que describo abajo y luego en todas mis aplicaciones la mando como parámetro POST.
La idea de utilizar Ajax surgió, debido a que tengo Combos SELECT donde lo que se debe desplayar en uno depende de la selección que se hizo en el otro.
En estos Combos yo vuelco datos que provienen de Consultas a una base Mysql. Tiempo atrás vos me indicaste que utilizase para esto Dynamic Option Lists pero no pude cargar los combos con la información resultado de la base. Los ejemplos que se muestran son solo arreglos estáticos. ¿Tendrías algún ejemplo para mostrarme?
¡¡¡¡¡ MUCHAS GRACIAS !!!!!
| Perl: | sub crear_sesion {
my $nombre= shift;
my $apellido= shift;
my $id_usuario= shift;
my $sid= undef;
my $session_open = '';
my $session =
new CGI:: Session("driver:File", $sid , {Directory=> 'C:\TMP_sessions'})
or die CGI:: Session-> errstr;
if (defined $session) {
$session-> param(-name=> 'nombre_usu', -value=> $nombre);
$session-> param(-name=> 'apellido_usu', -value=> $apellido);
$session-> param(-name=> 'id_usuario', -value=> $id_usuario);
$session-> expire('+2h');
$session-> flush();
$sid= $session-> id();
$session_open = 'T';
}
else {
$session_open = 'F';
}
return ($sid, $session_open);
} |
|
|

Powered by phpBB © 2001, 2005 phpBB Group
|