Foros del Web » Programando para Internet » PHP »

problema con sesion

Estas en el tema de problema con sesion en el foro de PHP en Foros del Web. Hola amigos estoy hacindo este pequeño script para seguridad de una pagina, estoy manejando sesiones que todavia no las entiendo muy bien,pero tengo dos escript, ...
  #1 (permalink)  
Antiguo 02/05/2005, 09:38
 
Fecha de Ingreso: marzo-2005
Mensajes: 372
Antigüedad: 12 años, 9 meses
Puntos: 1
problema con sesion

Hola amigos estoy hacindo este pequeño script para seguridad de una pagina, estoy manejando sesiones que todavia no las entiendo muy bien,pero tengo dos escript, pero no me da resultado, me podrian ayudar por favor, muchas gracias.

index.php

<?php
session_start();
?>
<html>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td rowspan="2"><form name="login" method="get" action="segura1.php">
<table width="250" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>Usuario:</td>
<td><input name="usuario" type="text" id="usuario"></td>
</tr>
<tr>
<td>Password:</td>
<td><input name="password" type="password" id="password"></td>
</tr>
<tr align="center">
<td colspan="2"><input name="enviar" type="submit" id="enviar" value="Enviar"></td>
</tr>
</table>
</form></td>
</tr>
</table>
<?
$_SESSION['usuario']=$_GET['usuario'];
?>

segura.php

<?php
session_start();
if(empty($_SESSION['usuario'])){
echo 'Te haz logueado como :'.$_SESSION['usuario'];
echo 'Haz logrado el acceso a una pagina segura';
}else{
echo 'No estas logueado<br>';
echo 'Esta pagina es restringida!';
}
unset($_SESSION['usuario']);
?>

estos dos solos script que utilizo se que algo esta mal pero la verdad no se enque. gracias
  #2 (permalink)  
Antiguo 02/05/2005, 15:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
De index.php .. deberías saltar (tu formulario enviar sus datos a...) un script que registre esa variable de sesión (y/o valide contra alguna BD o similar si es correcta o no) .. y de ahí pasar a (redireccionar) tu "segura.php"

En index.php .. no se va a registrar el valor de tu variable de sesión con una variable del formulario .. Ahí se vé que el action del formulairo apunta a un "segura1.php" .. no sé si será ese el script que hablo yo de "proceso" donde se debe registrar tu variable de sesión .. pero es ese el que necesitas.

index.php --> valida.php --> segura.php

valida.php
Código PHP:
<?
session_start
();
if (
$_POST['usuario']=="yo" && $_POST['password']=="secreto"){
   
$_SESSION['usuario']=$_POST['usuario'];
   
header ("Location: segura.php");
   exit;
} else {
   
header ("Location: index.php?cod=error");
   exit;
}
?>
Y en index.php .. tomamos si existe esa variable de control "cod" para mostrar algún mensaje de error en el mismo formulario de login:

Código PHP:
<?
if (isset($_GET['cod'])){
   echo 
"Codigo: ".$_GET['cod'];
}
?>
Tu página "segura" .. podría validar simplemente tipo:

Código PHP:
<?php 
session_start
(); 
if(empty(
$_SESSION['usuario'])){
   
header ("Location: index.php?cod=error_acceso_incorrecto"); 
   exit;


// resto de tu página ...
echo 'Te haz logueado como :'.$_SESSION['usuario']; 
echo 
'Haz logrado el acceso a una pagina segura';
Si te fijas no hace falta el "else" en el if .. por qué ya redireciono a otra página que mostrará el mensaje de error y termino la ejecución del script ahí mismo si la variable de sesión no existe.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:19.