Cita:
Iniciado por pepitoperez1 Buenas eveliz30
La solucion a tu problema es el siguiente, ya que yo lo tengo así y funciona muy bien.
Crea un fichero php,llamese control.php
Este fichero debe estar al principio de cada página que quieras controlar por sesion.
Código PHP:
<? include ("control.php"); ?>
P.Ej: Puede que necesites controlar que solo puedan entrar a un formulario si está autenticado pero no hace falta que lo esté para ver una página de créditos.
Si esto queda claro vamos a ver el contenido del fichero:
Código PHP:
<?php
//Inicio la sesión
session_start();
//Aqui controlo que no haya cookies maliciosos ni antigüos
session_set_cookie_params(0, "/", $_SERVER["HTTP_HOST"], 0);
//Comprueba que el usuario no está autentificado
if ($_SESSION["Autentificado"] != "SI")
{
//si no existe, envio a la página de autentificacion
header("Location: Index.php");
//ademas salgo de este script
exit();
}
//Si está autentificado pones aqui lo que sea si precisa
// Yo tengo puesto un control de tiempo
// Si pasado un tiempo no hay actividad, destruye la sesion y redirige a pagina principal
// .....
// y aqui acaba el fichero
?>
Espero que te sirva
Para "redondear" tu ejemplo .. te faltó mencionar parte importate referente a como "propagas el SID" (como en mi anterior mensaje comenté ya).
A su vez .. ya que "ajustas" algunas propiedades de la cookie que PHP va a generar (por ende "asumes" que propagas el SID en cookies) .. no estaría de más "forzar" a PHP para que propague el SID en cookies y así completar tu ejemplo. Esto lo puedes hacer vía funcion ini_set() (y así no depender de la configuración puntual de php.ini de cada servidor)
más info:
www.php.net/ini_set
(se trata de usar o mejor dicho forzar el estado de las directivas de PHP que mencioné antes).
También se puede ajustar esta configuración a nivel php.ini o .htaccess u otros médios más "generales" para todo script que corra en ese servidor o lugar concreto y así no tener que ir colocando dicho código en todos los scripts de PHP (además que hay ciertas configuraciones de PHP que no se pueden alterar por ini_set())
Un saludo,