Foros del Web » Programando para Internet » PHP »

Variables de sesión.

Estas en el tema de Variables de sesión. en el foro de PHP en Foros del Web. Hola a todos. Verán estoy haciendo una aplicación donde hay una parte que solamente puede verla el administrador del sitio. Entonces encontré por ahi que ...
  #1 (permalink)  
Antiguo 10/06/2010, 09:31
 
Fecha de Ingreso: marzo-2010
Mensajes: 29
Antigüedad: 14 años, 1 mes
Puntos: 1
Variables de sesión.

Hola a todos.

Verán estoy haciendo una aplicación donde hay una parte que solamente puede verla el administrador del sitio. Entonces encontré por ahi que se puede utilizar las variables de sesión ($_SESSION) para emplear lo que a mi me gustaria.

Entonces el administrador introduce un nombre de usuario, una contraseña y accederá a esas secciones que deberá estar protegida para que otro usuario no pueda entrar en ella.

Entonces encontré por ahi algo como esto:

Código PHP:
Ver original
  1. //$usuario y $clave son recogidas de una base de datos.
  2.  
  3. if($usuario == $_POST["usuario"] && $clave == $_POST["clave"])
  4. {
  5.     //usuario y contraseña válidos se define una sesion y se guarda el dato
  6.  
  7.     $_SESSION["autenticado"]= "SI";
  8.     header ("Location: aplicacion.php");
  9. }
  10. else
  11. {
  12.     //si no existe se va a login.php e indico que los datos son erróneos
  13.     header("Location: login.php?errorusuario=si");
  14. }

Una vez que estoy en aplicacion.php, tengo el menú a donde puede acceder el administrador, y en cada una de esas secciones tengo lo siguiente al principio del todo:

Código PHP:
Ver original
  1. //Inicio la sesión
  2. //COMPRUEBA QUE EL USUARIO ESTA AUTENTICADO
  3. if ($_SESSION["autenticado"] != "SI")
  4. {
  5.       //si no existe, va a la página de autenticacion
  6.       header("Location: login.php");
  7.       //salimos de este script
  8.       exit();
  9. }

El caso es que esto me funciona, pero hay veces que puedo estar navegando por esta sección 10 minutos y otras veces no puedo estar ni 2 minutos porque salta a la sección de login.php, es decir, la parte donde debo introducir el nombre de usuario y clave.

Mis dudas por tanto, es saber si hago algo mal. Si es normal esto que ocurre. ¿Que duración tiene las variables de sesión? O que me comenten algo sobre estas variables o alguna mejora para esto.

Todo se agradecerá.

Gracias de antemano y un saludo!!
  #2 (permalink)  
Antiguo 10/06/2010, 09:39
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia
Mensajes: 229
Antigüedad: 14 años
Puntos: 2
Respuesta: Variables de sesión.

Yo creeria que es mejor que levantes la sesion con el usuario del sitio. $_SESSION["usuario"]
  #3 (permalink)  
Antiguo 10/06/2010, 10:38
 
Fecha de Ingreso: febrero-2010
Ubicación: Asturias patria querida
Mensajes: 45
Antigüedad: 14 años, 2 meses
Puntos: 4
Respuesta: Variables de sesión.

Pues eso de que expire la sesión en 2 minutos es pero que muy raro...

Hay formas de controlar el tiempo de sesión pero no creo que ese sea el problema ya que la configuración por defecto es de mucho más de 2 minutos seguro. De todas formas probar no te cuesta nada, una forma rápida de hacerlo sería incluir estas líneas antes de cada session_start()

Código PHP:

ini_set
("session.cookie_lifetime"10000);
ini_set("session.gc_maxlifetime"10000); 
  #4 (permalink)  
Antiguo 11/06/2010, 04:15
 
Fecha de Ingreso: marzo-2010
Mensajes: 29
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Variables de sesión.

pepeluis no hace falta que sea el nombre de usuario, ya que en esa aplicación de la web que tengo solo va a entrar el administrador del sitio, es decir, sólo es un usuario y no creo que hiciera falta.

Tifany, ¿la configuración de estas variables viene en el php.ini? Es que estoy en un servidor de prueba y no podría modificar ese archivo, de todas formas voy a usar lo que mas dicho y os cuento que tal va. ¿10000 es el tiempo en segundos?
  #5 (permalink)  
Antiguo 16/06/2010, 01:46
 
Fecha de Ingreso: marzo-2010
Mensajes: 29
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Variables de sesión.

Bueno he realizado lo que me dijiste y por ahora creo que no hay ningún problema.

Gracias a los dos por contestar!! :D
  #6 (permalink)  
Antiguo 28/06/2010, 03:41
 
Fecha de Ingreso: marzo-2010
Mensajes: 29
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Variables de sesión.

Hola a todos de nuevo.

Sigue sin funcionar esto, creía que si pero a veces sale de repente =(

Entonces he estado pensando y me gustaría saber si a lo mejor es debido a esto: si yo pusiera dos veces session_start(), ¿Afectaría al tiempo que dure las variables de sessión?

Por ejemplo, estoy en una pagina prueba.html con su session_start() y ahora accedo a otra página prueba2.html y también tiene session_start().

Espero que alguien me ayude con esto

Un saludo!
  #7 (permalink)  
Antiguo 28/06/2010, 10:47
Avatar de roxhp  
Fecha de Ingreso: mayo-2010
Ubicación: Veracruz
Mensajes: 39
Antigüedad: 14 años
Puntos: 3
Respuesta: Variables de sesión.

Hola:

Mira yo creo que deberias de hacer una condicion en tu menu que si es ese usuario en especifico o si tiene perfil de administrador te permita mostrar esa opcion del menu y si no tiene los permisos pues que no lo muestre.

por ejemplo:

Código PHP:
session_start();
$perfil=$_SESSION["perfil"];

 
$modif_art="<li><a href='inicio.html' target='centro'><b><font size=6>M</font>odifica articulos</b></a>";
         
$modif_usu="<li><a href='inicio.html' target='centro'><b><font size=6>M</font>odifica Usuario</b></a>"
if($perfil=='01')
         {   
$ejecuta_arch="<li><a href='crea_sql.php' target='centro'><b><font size=6>E</font>jecuta archivos</b></a>";
             
$alta_usu="<li><a href='inicio.html' target='centro'><b><font size=6>A</font>lta Usuario</b></a>";
             
$modif_edo="<li><a href='inicio.html' target='centro'><b><font size=6>M</font>odifica Estado Compra</b></a>";
       }

echo 
"$alta_usu $modif_usu $ejecuta_arch $modif_art $modif_edo"
esto es parte de un menu que tengo implementado y me funciona perfecto.

yo uso distintas variables de sesion y la verdad no he tenido ningun problema con el tiempo de duracion de estas.

De preferencia guarda el valor de la variable de sesion en una variable comun para que no tengas problemas por si caducan como mencionas.

Espero y te sirva de algo...

Etiquetas: sesión, variables
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 15:04.