PHP - Seciones php ayuda

   
Vista:

Seciones php ayuda

Publicado por Ricardo (1 intervención) el 11/06/2009 19:09:09
Hola mis estimados amigos de LWP seccion php
Mi problema es el siguiente:

Cree un entorno con seciones para darle seguridad a un sistema que etoy desarrollando el logeo funciona bien, si tratan de acceder auna pagina concontenido exclusivo y no esta logeado no te deja verla si cierro seccion y vuelvo atras la pagina caduca todo bien pero cuando cierro seccion y vuelvo atras hasta login.php que tiene la funcion de logeo y actualizo lapagina las variables de secion se vuelven a cargar y puedo volver a acceder a las paginas no me detrulle la cache,esto ocurre con mozilla, pero IExplorer mata la secion me dice k la pagina ha caducado ahi funciona de maravilla pero con mozilla al actualizar me carga las variables de secion otraves que se supone destriu al cerrar secion en logout.php
qui les dejo el codigo desde ya gracias
PD si alguien lo quiere usar o arreglar para darle mayor seguridad no hai problema lo unico que les pido en el caso que se agrege alguna mejora lo republique por este medio GRACIAS....

//esta es la primera pagina el index.html
//donde el usuario se identifica con un nombre y una contraseña.
***********************************************************************************************
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
table{background-image:url(bg1.png); background-position:};
</style>
<title>Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>

<td></td>
<td rowspan="2"><form name="login" method="post" action="login.php">
<table width="250" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><strong>Usuario:</strong></td>
<td><p> 
</p>
<p>
<input name="usuario" type="text" id="usuario">
</p>
<p> </p></td>
</tr>
<tr>
<td><strong>Password:</strong></td>
<td><p>
<input name="password" type="password" id="password">
</p>
<p>  </p></td>
</tr>
<tr align="center">
<td colspan="2"><input name="enviar" type="submit" id="enviar" value="Enviar"></td>
</tr>
</table>
</form></td>
</tr>

</table>
</body>
</html>

*************************************************************************************
//esta pagina se encarga de realizar la comprobacion de
//nombre y contraseña y crea las variables de secion login.php
//aqui al cerrar secion volvera atras, atras y si accedo no me deja continuar
//pero si recargo esta pagina las variables de secion se cargan nueva mente
//aunque alla cerrado secion
<?php

session_start();
header("Cache-Control: no-cache, must-revalidate");
//Evitar guardado en cache del cliente


if(empty($_POST['usuario']) || empty($_POST['password']))
echo 'Debes llenar todos los datos<br/><a href=index.html>Volver</a>';

elseif($_POST['usuario']=="test" and $_POST['password']=="test"){

$_SESSION['usuario']=$_POST['usuario'];
$_SESSION['password']=$_POST['password'];

echo 'Bienvenido '.$_SESSION['usuario'];

echo"<br><a href=segura.php>Continuar</a>";

}

else{

echo"Nombre de Usuario o Contraseña Incorrecto";
echo"<a href=index.html>Volver</a>";
}


?>
**********************************************************************************
//esta es una pagina que contiene contenido exclusivo
//que se muetra solo si el usuario esta registrado
//segura.php

<html>
<head><title></title>
</head>
<body>
<?php
ini_set('session.cache_expire',3);
// donde valor es el nuevo valor que le daras a la variable de expiracion
session_start();
if(!empty($_SESSION['usuario'])){
/* La funcion empty() devuelve verdadero si el argumento posee un valor vacio,
al usar !empty() devuelve verdadero no solo si la variable fue declarada sino
ademas si contiene algun valor no nulo.
*/
echo 'Te haz logueado como :'.$_SESSION['usuario'];
echo '<br/>Haz logrado el acceso a una pagina segura';
?>

<h4>HOLA ESTA ES MI MEGA PAGIN SEGURA SI VES ESO ESTAS LOGEADO</h4>
<a href="segura2.php">segura2</a><br>

<a href=logout.php>Cerrar Secion</a>

<?php
}else{
echo 'No estas logueado<br>';
echo 'Esta pagina es restringida!<br><a href=index.html>Volver</a>';

}
?>

</body>
</html>
******************************************************************
//esta pagina tambien muetra contenido exclusivo
//deve estar logeado para acceder a
//segura2.php

<html>
<head><title></title>
</head>
<body>
<?php
ini_set('session.cache_expire',3);
// donde valor es el nuevo valor que le daras a la variable de expiracion
session_start();
if(!empty($_SESSION['usuario'])){
/* La funcion empty() devuelve verdadero si el argumento posee un valor vacio,
al usar !empty() devuelve verdadero no solo si la variable fue declarada sino
ademas si contiene algun valor no nulo.
*/
?>

<h2>HOLA ESTA ES la 2 parte de la pagina</h2><br>

<a href=logout.php>Cerrar Secion</a>

<?php
}else{
echo 'No estas logueado<br>';
echo 'Esta pagina es restringida!<br><a href=index.html>Volver</a>';

}
?>

</body>
</html>

************************************************
//este codigo se encarga de destruir mis variables de secion al acer click en cerrar secion
//logout.php

<?php

session_start();
unset($_SESSION['usuario']);
unset($_SESSION['password']);

/* la funcion unset() destruye la varible que se le de como argumento*/
echo "Ya no te encuentras logueado"
?>

Esperando su pronta ayuda....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Seciones php ayuda

Publicado por PasabaPorAqui (43 intervenciones) el 12/06/2009 09:21:40
Buenas.

Lo primero gracias por poner el código.

Esta es la funcion para logout que utilizo yo.

public function LogOut() {
$sSql = "Update usuarios set Conectado=0 where Id=" . $_SESSION["UserId"];
mysql_query($sSql);
session_destroy();//destruye la sessión, con lo que no deberías poder refrescar esas variables
header("Location: " . $_SERVER["PHP_SELF"]);//Vuelve a la página raiz, que en mi caso al no estar logado, es la ventana de login
}

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar