Foros del Web » Programando para Internet » PHP »

bloquear una página si no has iniciado sesión sin imprimir página desde echo

Estas en el tema de bloquear una página si no has iniciado sesión sin imprimir página desde echo en el foro de PHP en Foros del Web. Hola Estoy realizando una página web en la que necesitas iniciar sesión para visualizar el contenido; si no has iniciado sesión entonces te manda a ...
  #1 (permalink)  
Antiguo 13/07/2011, 18:43
 
Fecha de Ingreso: julio-2011
Mensajes: 5
Antigüedad: 9 años, 11 meses
Puntos: 1
bloquear una página si no has iniciado sesión sin imprimir página desde echo

Hola

Estoy realizando una página web en la que necesitas iniciar sesión para visualizar el contenido; si no has iniciado sesión entonces te manda a la página de inicio.

El problema es que a la hora de comprobar si el usuario ha iniciado sesión, toda la página la tengo que poner en un echo (cosa muy tediosa)... para que me de a entender mejor les pongo la idea en código:

Código PHP:
if(isset($_SESSION["usuario"])){
echo(
"
<html>
<head>
</head>
<body>
</body>
</html>"
);
}
else
   
Header("Location : login.php"); 
Si no "dibujo" toda la página desde el if entonces el header me lanza error...

De momento funciona, pero no creo que sea lo más factible, sobre todo por que es complicado leer el código sin la ayuda de los colores de los IDE's, pues desaparecen cuando los pones entre las comillas del echo (sin contar que tengo que escapar todas las comillas dobles del html)

Mi duda es si hay alguna manera de hacer lo mismo sin tener que imprimir la página usando un echo...

espero haberme explicado

Gracias!
  #2 (permalink)  
Antiguo 13/07/2011, 20:04
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 12 años, 10 meses
Puntos: 1532
Respuesta: bloquear una página si no has iniciado sesión sin imprimir página desde ec

no es necesario, puedes terminar el script con exit, y solo tienes que aplicar NOT a la condición (!):

Código PHP:
Ver original
  1. <?php
  2. @session_start(); //@ previene warning contra sesiones automáticas (no recomendado)
  3. if(! isset($_SESSION["usuario"])){
  4.     Header("Location : login.php");
  5.     exit;
  6. }
  7. ?>
  8. <!-- tu código HTML -->

PD: no recomiendo sesiones automáticas, usa mejor no automáticas
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 13/07/2011, 20:07
 
Fecha de Ingreso: julio-2011
Mensajes: 5
Antigüedad: 9 años, 11 meses
Puntos: 1
Respuesta: bloquear una página si no has iniciado sesión sin imprimir página desde ec

Muchas gracias!

Ya lo había solucionado de ese mismo modo, pero no le había puesto el exit, (sin el va bien)... ¿es necesario el exit?

Saludos y gracias de nuevo
  #4 (permalink)  
Antiguo 13/07/2011, 20:10
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 12 años, 10 meses
Puntos: 1532
Respuesta: bloquear una página si no has iniciado sesión sin imprimir página desde ec

no es necesario, pero ¿si ya sabes que va a ser redirigido vas a obligar a que el server procese el resto, que no se va a utilizar?, con ello optimizas
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 13/07/2011, 20:12
 
Fecha de Ingreso: julio-2011
Mensajes: 5
Antigüedad: 9 años, 11 meses
Puntos: 1
Respuesta: bloquear una página si no has iniciado sesión sin imprimir página desde ec

Muchísimas gracias :D

Etiquetas: bloquear, echo, html, página, sesión, usuarios
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:07.