Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] restringir acceso a pagina interna despues de login

Estas en el tema de restringir acceso a pagina interna despues de login en el foro de PHP en Foros del Web. en cada pagina interna de mi sistema incluyo este archivo security.php para restringir a los usuarios no logueados Código: session_start(); //COMPRUEBA QUE EL USUARIO ESTA ...
  #1 (permalink)  
Antiguo 20/08/2014, 13:03
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 18 años
Puntos: 1
restringir acceso a pagina interna despues de login

en cada pagina interna de mi sistema incluyo este archivo security.php para restringir a los usuarios no logueados

Código:
session_start();
//COMPRUEBA QUE EL USUARIO ESTA 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();
}
al ingresat desde el index el navegador coloca

Esta página web tiene un bucle de redireccionamiento

si saco header("Location: index.php"); funciona logicamente pero no me restringe la pagina
__________________
Marcelo Acampora
mi pagina web personal
www.destinitytravel.com
  #2 (permalink)  
Antiguo 20/08/2014, 14:06
 
Fecha de Ingreso: agosto-2014
Mensajes: 10
Antigüedad: 5 años, 5 meses
Puntos: 2
Respuesta: restringir acceso a pagina interna despues de login

Te he puesto el código de tal forma que entra en el if si NO es igual a SI.
Código PHP:
Ver original
  1.  
  2. if ($_SESSION['autentificado'] != 'SI') {
  3.      header ('Location: index.php');
  4.      exit();
  5. }
El código que indicas no compara, asigna con un "=", por lo tanto se produce una condición que siempre se cumplirá y de ese modo siempre ejecutará el header.
  #3 (permalink)  
Antiguo 20/08/2014, 14:13
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 18 años
Puntos: 1
Respuesta: restringir acceso a pagina interna despues de login

si habia probado asi a pesar que funciona entra en admin.php me pone error en esta linea

if ($_SESSION['autentificado'] == "SI") {
__________________
Marcelo Acampora
mi pagina web personal
www.destinitytravel.com
  #4 (permalink)  
Antiguo 20/08/2014, 14:19
 
Fecha de Ingreso: agosto-2014
Mensajes: 10
Antigüedad: 5 años, 5 meses
Puntos: 2
Respuesta: restringir acceso a pagina interna despues de login

¿Probaste con el != en el if?, pon el trozo antes de incluir ese archivo de seguridad, a simple vista fallaba el comparador. ¿Qué valor le das por defecto a esa variable de sesión?.
¿Qué error te tira en la línea que dices?.
  #5 (permalink)  
Antiguo 20/08/2014, 14:28
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 18 años
Puntos: 1
Respuesta: restringir acceso a pagina interna despues de login

el error es Notice: Undefined index: autentificado in security.php on line 4 el valor es SI SERA QUE ESTA EN MAYUSCULAS?
__________________
Marcelo Acampora
mi pagina web personal
www.destinitytravel.com
  #6 (permalink)  
Antiguo 20/08/2014, 14:34
 
Fecha de Ingreso: agosto-2014
Mensajes: 10
Antigüedad: 5 años, 5 meses
Puntos: 2
Respuesta: restringir acceso a pagina interna despues de login

El error es porque la variable de sesión no esta iniciada por defecto a ningún valor, ¿en el proceso de inicio de sesión declaras esa variable a si?.
Puedes solucionar el tema del error así:
Código PHP:
Ver original
  1. if (!isset($_SESSION['autentificado']) || $_SESSION['autentificado'] !='SI') {
  2.     header ('Location: index.php');
  3.     exit();
  4. }
pero si ahí es la 1º ves que la usas y no la has declarado en otro lado, declarara la variable y ponle NO por defecto, así te ahorras esos problemas.
  #7 (permalink)  
Antiguo 20/08/2014, 14:49
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 18 años
Puntos: 1
Respuesta: restringir acceso a pagina interna despues de login

no puedo creerlo si me faltaba iniciar la session autentificado disculpas por el tiempo y gracias por tu ayuda resulta que este codigo lo saque de otro proyecto y al haberlo modificado me falto eso
__________________
Marcelo Acampora
mi pagina web personal
www.destinitytravel.com

Etiquetas: interna, login, restringir
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 04:37.