• Publicidad

Sesiones - Ajax

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Sesiones - Ajax

Notapor Lor » 2008-06-25 05:36 @275

Estoy trabajando con CGI::Session y CGI::Ajax. Tengo una aplicación con combos(Select) cuyos datos a desplayar dependen uno de la selección hecha en el otro. La carga de los combos es dinámica y dependen de consultas a una base MYSQL.

La aplicación usando Ajax funciona, pero cuando le incorporo la parte de sesiones deja de funcionar. La sesión NO la trabajo con Cookies, obtengo un id de session $sid, y luego lo envío entre una aplicación y otra como parámetro. Uso formularios method post y entre cada aplicación envío la variable session como un hidden.

Cuando Ajax hace la llamada asíncrona, ¿tengo que incorporar aquí algo relacionado a sesiones o debería ser algo transparente?

Bueno , les agradecería una ayuda o algún link donde pueda obtener mayor información,

¡¡¡ Saludos, y GRACIAS !!!
Lor
Perlero nuevo
Perlero nuevo
 
Mensajes: 187
Registrado: 2005-04-28 05:47 @282

Publicidad

Notapor kidd » 2008-06-25 07:46 @365

Hola,

Si pones ejemplos del código que estás usando por el momento podríamos ayudarte más.

Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor explorer » 2008-06-26 08:07 @380

Esto es lo que he podido recuperar de un cache de google, a punto de desaparecer.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl -w -T
## ######### PROJECT NAME : ##########
##
## sample.pl for sample Perl/Ajax in /var/www/perl/database
##
## ######### PROJECT DESCRIPTION : ###
##
## Ajax and CGI::session
##
## ###################################
##
## Made by husianycia cedric
## Login   <[email protected]>
##
## Started on  Wed Nov 30 20:31:13 2005 husianycia cedric
## Last update Wed Nov 30 21:44:04 2005 husianycia cedric
##
## ###################################
##

## ###################################
## Declaration de librairies

use   strict;
use   CGI qw(:standard);
use   CGI::Ajax;
use   CGI::Session;

## ###################################
## Declaration de Variables

   ## Declaration de l'objet CGI
our   $cgi;
   ## Declaration de l'objet Session
our   $session;

## ###################################
## Creation d'une session

sub   new_session {
    my $cgi      = shift;
   
    my $directory   = "/tmp";

    my $session      = new CGI::Session( undef, $cgi,
                   { Directory => $directory ,
                     'new_session' => 'false' } );
   
    return $session;
}

## ###################################
## Ajout dans une sessions

sub   set_session {
    my $session   = shift;
    my $name   = shift;
    my $value   = shift;
   
    $session->param(-name => $name, -value => $value);
   
    return 0;
}

## ###################################
## Recuperation dans une session

sub   get_session {
    my $session   = shift;
    my $name   = shift;
   
    return $session->param(-name => $name);
}

## ###################################
## Creation de l'html

sub   create_html {
    my $html   = $cgi->start_html(-title=>'Sample',
               -author=>'husiana',
               -bgcolor=>'#00FF00',
               -text=>'#000000',
               -link=>'#0000FF',
               -vlink=>'#0000FF',
               -alink=>'#0000FF');

    my $sess_id   = $session->id();
   
    $html.= "<input type=\"hidden\" id=\"$sess_id\" name=\"$sess_id\" value=\"$sess_id\"><input type=\"text\" name=\"txt\" id=\"txt\" onKeyUp=\"callback( [\'txt\', \'$sess_id\'], [\'result_div\'] ); return true;\">";
   
    $html .= "<br><center><div id=\"result_div\"></div></center>";
    $html .= $cgi->end_html();

    return $html;
}

## ###################################
## Ajax callback

sub   callback {
    my $input   = shift;
    my $cgi_id   = shift;

    my $ret   = "";
   
    my $session   = new_session($cgi_id);

    my $login   = get_session($session, "login");

    $ret .= "Login : $login<br>Input : $input";

    return $ret;
}

## ###################################
## main

sub   main {
   
    $cgi   = new CGI;
   
    $session   = new_session($cgi);

    set_session($session, "login", "toto_42");
   
    my $pjx   = new CGI::Ajax( 'callback' => \&callback );
   
    my $var   = $pjx->build_html( $cgi, \&create_html );

    print $var;
}

## ###################################
## Appel du main

main();
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Avanzado

¿Quién está conectado?

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