por Marcos » 2005-05-19 11:01 @501
Hola como estan, gracias por sus comentarios me han servido de mucho, mira si todos mi scrips tienen la conexion a la DB, es mas cuando te logeas en el sistema que genera va a la BD y jala la informacion, para poder ingresar, pero lo que pasa es que se supone que debe de guardar esa informacion en una Cookie, para poder mantener la sesion y que el sistema te pueda abrir la pantalla correcta de acuerdo al usuario, este sistema ya estaba implementado en windows 2000, pero me pidieron que lo migrara a Linux Red Hat 8 por lo que desde que lo hice he tenido un poco de problemillas, en este caso despues de login, no me respeta la sesion , y no me da los datos de los usuarios, y la expira inmediatamente, sabiendo que debe expirar a los 15 min, o sea para no hacerla cansada, despues del login, como que se cae la conexion o no puede hacerla.
Aqui les agrego el codigo completo del scrip que es q yo pienso causa el problema :
#!/usr/bin/perl
use CGI ':standard';
use DBI; #Inicio del DBI
use CGI::Session qw/-api3/; #Incio de una Sesion CGI
print header;
$sid = cookie(CGISESSID); #Permite mantener la sesion por medio de la cookie creada
$session = new CGI::Session(undef, $sid, {Directory=>'/tmp'});
$username = $session->param('username'); #obtiene el parametro de la sesion
$ID = $session->param('ID'); #obtiene el parametro de la sesion
$dbh = DBI->connect('DBI:mysql:Tickets') #Se conecta a la base de datos
or die "Couldn't connect to database: " . $DBI->errstr;
$sth = $dbh->prepare('Select * From usuario where username = ?') #Hace referencia a la tabla de tickets del usuario especificado
or die "Couldn't prepare statement: " . $dbh->errstr;
my @data;
$sth->execute($username); # Ejecuta el query para validar que existe el usuario
# Read the matching records and print them out
while (@data = $sth->fetchrow_array()) { #Trae cada uno los registros del usuario nombre ,apellidos
$nombre = $data[1];
$apellidopat = $data[2];
$apellidomat = $data[3];
}
print<<FIN;
<html>
<head>
<title>Menu</title>
<meta http-equiv="Content-Type" content="text/html;">
<!-- Fireworks MX Dreamweaver MX target. Created Wed Jul 16 11:13:56 GMT-0500 (Hora de verano de México) 2003-->
<script language="JavaScript">
<!--
function mmLoadMenus() {
if (window.mm_menu_0627130038_0) return;
window.mm_menu_0627130038_0 = new Menu("root",107,20,"Arial, Helvetica, sans-serif",14,"#000066","#0000cc","#a4c4e3","#ccffff","center","middle",3,0,1000,-5,7,true,true,false,0,false,false);
mm_menu_0627130038_0.addMenuItem("Principal","window.open('busqueda.pl', 'contenido');");
mm_menu_0627130038_0.addMenuItem("Crear Ticket","window.open('crear.pl', 'contenido');");
mm_menu_0627130038_0.addMenuItem("Buscar Ticket","window.open('buscaticket.pl', 'contenido');");
mm_menu_0627130038_0.addMenuItem("Cerrar Sesión","location='cerrar.pl'");
mm_menu_0627130038_0.hideOnMouseOut=true;
mm_menu_0627130038_0.menuBorder=1;
mm_menu_0627130038_0.menuLiteBgColor='#8aa4c1';
mm_menu_0627130038_0.menuBorderBgColor='#8aa4c1';
mm_menu_0627130038_0.bgColor='#8aa4c1';
window.mm_menu_0716104230_1 = new Menu("root",107,20,"Arial, Helvetica, sans-serif",14,"#000066","#0000cc","#8aa4c1","#ccffff","center","middle",3,0,1000,-5,7,true,true,false,0,false,false);
mm_menu_0716104230_1.addMenuItem("Usuarios","window.open('usuarios.pl', 'contenido');");
mm_menu_0716104230_1.addMenuItem("Crear ","window.open('creausuario.pl', 'contenido');");
mm_menu_0716104230_1.addMenuItem("Buscar","window.open('buscarusuario.pl', 'contenido');");
mm_menu_0716104230_1.addMenuItem("Eliminar","window.open('eliminarusuario.pl', 'contenido');");
mm_menu_0627130038_0.hideOnMouseOut=true;
mm_menu_0627130038_0.menuBorder=1;
mm_menu_0627130038_0.menuLiteBgColor='#8aa4c1';
mm_menu_0627130038_0.menuBorderBgColor='#8aa4c1';
mm_menu_0627130038_0.bgColor='#8aa4c1';
mm_menu_0716104230_1.writeMenus();
} // mmLoadMenus()
//-->
</script>
<script language="JavaScript1.2" src="../ticketimg/interfaz_02/mm_menu.js"></script>
</head>
<body
background="../ticketimg/interfaz_01/n01_r3_c9.gif" > <!--o nLoad="MM_preloadImages('Banner_r1_c1_f2.gif');"-->
<center>
      
<font size="5" color="#CCCCCC"><strong>Bienvenido </strong>          
<font size="5" color="#CCCCCC"><strong><em> $nombre $apellidopat $apellidomat</strong>
<script language="JavaScript1.2">mmLoadMenus();</script>
<table border="0" cellpadding="0" cellspacing="0" width="730">
<!-- fwtable fwsrc="02baner_02.png" fwbase="02baner_01.gif" fwstyle="Dreamweaver" fwdocid = "742308039" fwnested="0" -->
<tr>
<td><img src="../ticketimg/interfaz_02/spacer.gif" width="339" height="1" border="0" alt=""></td>
<td><img src="../ticketimg/interfaz_02/spacer.gif" width="54" height="1" border="0" alt=""></td>
<td><img src="../ticketimg/interfaz_02/spacer.gif" width="337" height="1" border="0" alt=""></td>
<td><img src="../ticketimg/interfaz_02/spacer.gif" width="1" height="1" border="0" alt=""></td>
</tr>
<tr>
<td rowspan="3"><a href="#" onMouseOver="MM_showMenu(window.mm_menu_0627130038_0,0,39,null,'Banner_r1_c1')"><img name="Banner_r1_c1" src="../ticketimg/interfaz_02/Banner_r1_c1.gif" width="339" height="39" border="0" alt=""></a></td>
<td colspan="2"><img name="Banner_r1_c2" src="../ticketimg/interfaz_02/Banner_r1_c2.gif" width="391" height="22" border="0" alt=""></td>
<td><img src="../ticketimg/interfaz_02/spacer.gif" width="1" height="22" border="0" alt=""></td>
</tr>
<tr>
FIN
if ($ID >= 100){ #LA interfaz de Menu para el usuario,
print<<FIN;
<tr>
<td><img name="Banner_r2_c2" src="../ticketimg/interfaz_02/Banner_r2_c2.gif" width="54" height="17" border="0" alt=""></td>
<td rowspan="2"><img name="Banner_r2_c3" src="../ticketimg/interfaz_02/Banner_r2_c3.gif" width="337" height="39" border="0" alt=""></td>
<td><img src="../ticketimg/interfaz_02/spacer.gif" width="1" height="17" border="0" alt=""></td>
</tr>
FIN
}else{ #LA interfaz de Menu para el super usuario, de la maniputación de los usuarios (Crear,Modificar,Eliminar).
print<<FIN;
<tr>
<td><img name="Banner_r2_c2" src="../ticketimg/interfaz_02/Banner_r2_c2.gif" width="54" height="17" border="0" alt=""></td>
<td rowspan="2"><a href="#" onMouseOver="MM_showMenu(window.mm_menu_0716104230_1,-41,-23,null,'n02baner_01_r3_c3')"><img name="n02baner_01_r3_c3" src="../ticketimg/interfaz_02/02baner_01_r3_c3.gif" width="337" height="39" border="0" alt=""></a></td>
<td><img src="../ticketimg/interfaz_02/spacer.gif" width="1" height="16" border="0" alt=""></td>
</tr>
FIN
}
print<<FIN;
<td colspan="2"><img name="Banner_r3_c1" src="../ticketimg/interfaz_02/Banner_r3_c1.gif" width="393" height="22" border="0" alt=""></td>
<td><img src="../ticketimg/interfaz_02/spacer.gif" width="1" height="22" border="0" alt=""></td>
</tr>
</table>
</center>
</body>
</html>
FIN
$dbh->disconnect;
print end_html;
J.Marcos Cardozo H.