#!/usr/local/bin/perl -w # # 22/06/2005 mda@rio.pm.org # Controle de sessao baseado em PATH_INFO # use CGI qw(:html3); my $q = new CGI; my ( $comp ); my $path = $q->path_info; # $ENV{PATH_INFO} ... # path vazio ou nao encontrado no controle de sessoes unless ( $path || ! -f "/tmp/$path" ) { $path = time(); $comp = 0; #-- Garante que ao criar nova sessao nao ocorrera sobreposicao $comp++ while ( -f "/tmp/$path-$comp" ); $path .= "-$comp"; # cria arquivo de controle open(D, "> /tmp/$path"); # redireciona para nova URI print $q->redirect( $ENV{REQUEST_URI} . '/' . $path . "?login"); close(D); exit 1; } #-- Inicio da pagina print $q->header( -type=> 'text/html' ), ""; map { if ( $ENV{QUERY_STRING} && $_ eq $ENV{QUERY_STRING} ) { printf "\n", sprintf("%s", $_, $_), $ENV{$_}; } else { printf "\n", sprintf("%s", $_, $_), $ENV{$_}; }; } keys %ENV; print "
%s%s
%s%s
\n"; exit 1;