Ver Mensaje Individual
  #18 (permalink)  
Antiguo 07/06/2010, 16:09
davidmontiel
 
Fecha de Ingreso: junio-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Propagar Sesiones

okei, mi pagina principal es el index, muestra noticias de una base de datos y un menu cn las otras paginas. tiene un div que al principio pone inicio de sesion y pide usuario y contraseña.

Este formulario se envia a sesion.php que comprueba la validacion y te devuelve al index con la sesion iniciada. En el index a cambiado el div inicio de sesion por el de panel de usuario ya que la sesion esta iniciada.

Una vez en este punto yo puedo navegar por todos las paginas sin salirme de la sesion, solo se sale cuando le de a un enlace que aparece debajo del panel de usuario.

Este enlace me manda a shutdown.php y luego me devuelve de nuevo al index.

A continuacion os pongo los trozos de php de cada fichero para comprenderlo

index.php

Código PHP:
<?php

session_start
(); 
if (!isset(
$_SESSION['usuario'])) 
session_destroy();

?>

CODIGO HTML

 <?php
    
/*compruebo si la sesion esta vacia, si esta llena le doy la bienvenida y 
    le ofrezco opciones de panel de usuario y cierre sesion. Si esta vacia le muestro un formulario
    de usuario y contraseña*/
    
if (isset($_SESSION['usuario']))
    {
        echo 
"<div class='sesionabierta'><P>Bienvenido ".$_SESSION['usuario']."</p>";
    echo 
"<a  class='enlace' href='#'> Panel de usuario</a><br>";
    
$conexion=mysql_connect("localhost""root""") or die('Fallo en la conexion');

mysql_select_db('BDmontiel',$conexion) or die('Problemas al realizar la conexion');


$consulta="SELECT * FROM usuarios WHERE user='$_SESSION[usuario]';";
$registros=mysql_query($consulta,$conexion) or die("No se han podido insertar los datos");

$registro=mysql_fetch_array($registros); ?>

CODIGO HTML

<?php echo '<img src="images/shutdown.png"><a href="shutdown.php">Cerrar sesion</a></div>';}
    else{ 
session_destroy();?>

CODIGO HTML

<?php ?>
sesion.php

Código PHP:
<?php
session_start
(); 

include(
'conexion.inc');

$conexion mysql_connect($servidor$usuario$pass);

mysql_select_db ('BDmontiel') or die("No conecta");

$usuario=$_REQUEST['usuario'];
$password=$_REQUEST['password'];


$consulta="SELECT * FROM usuarios WHERE user='$usuario' AND pass='$password';";

$rs=mysql_query($consulta,$conexion);

if (
mysql_num_rows($rs)!=0){ 
ob_start();
       
//usuario y contraseña válidos 
       //defino una sesion y guardo datos 
    
session_cache_limiter('nocache,private');
    
session_name('usuario');
    
$_SESSION['usuario']=$usuario;
       
session_register("autentificado"); 
       
$autentificado "SI"
       require_once(
'index.php');
    
ob_end_flush();    
}else { 
       
//si no existe le mando otra vez a la portada 
    
session_destroy();
    echo 
"<script type='text/javascript'>alert('Usuario o contrase\u00f1a incorrectos');</script>";
    require_once(
'index.php');
   



?>
personajes.php (esta es una pagina cualkiera dentro del menu que tiene el mismo div que el index.php)

Código PHP:
<?php
session_start
();

?>

CODIGO HTML

<?php
    
    
if (isset($_SESSION['usuario']))
    {
session_start();
        echo 
"<div class='sesionabierta'><P>Bienvenido ".$_SESSION['usuario']."</p>";
    echo 
"<a href='panel.php'> Panel de usuario</a><br>";
    echo 
'<a href="shutdown.php">Cerrar sesion</a></div>';}
    else{
?>

CODIGO HTML

<?php ?>
shutdown.php

Código PHP:
<?php

session_destroy
();
    require_once(
'index.php');    

?>
luego tengo mas paginas como personajes.php que tienen el mismo codigo php, solo cambia el html