Foros del Web » Programando para Internet » PHP »

bloquear pagina a no ser que estes logueado

Estas en el tema de bloquear pagina a no ser que estes logueado en el foro de PHP en Foros del Web. hola,estoy haciendo una web y he conseguido el registro de usuarios en la bd,y que puedan iniciar y cerrar sesion, pero no consigo bloquear una ...
  #1 (permalink)  
Antiguo 14/03/2010, 06:50
 
Fecha de Ingreso: marzo-2010
Mensajes: 79
Antigüedad: 14 años, 8 meses
Puntos: 0
bloquear pagina a no ser que estes logueado

hola,estoy haciendo una web y he conseguido el registro de usuarios en la bd,y que puedan iniciar y cerrar sesion, pero no consigo bloquear una pagina para aquellos que no esten logueados, me podeis ayudar??,gracias
  #2 (permalink)  
Antiguo 14/03/2010, 07:51
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 15 años, 3 meses
Puntos: 66
Respuesta: bloquear pagina a no ser que estes logueado

Cita:
Iniciado por dani12345 Ver Mensaje
hola,estoy haciendo una web y he conseguido el registro de usuarios en la bd,y que puedan iniciar y cerrar sesion, pero no consigo bloquear una pagina para aquellos que no esten logueados, me podeis ayudar??,gracias
Bloquear la página no es la definición más correcta.

Si el usuario existe y se identifica correctamente se inicia sesión y si no existe o no se identifica correctamente no se inicia sesión.

Este tema esta muy tratado te dejo un enlace:

http://www.programacionweb.net/artic...ticulo/?num=35

Saludos
__________________
Tu álbum de cromos online!!
  #3 (permalink)  
Antiguo 14/03/2010, 08:39
 
Fecha de Ingreso: marzo-2010
Mensajes: 79
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: bloquear pagina a no ser que estes logueado

me da estos errores:


Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\tiendacd\tienda.php:2) in C:\AppServ\www\tiendacd\tienda.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\tiendacd\tienda.php:2) in C:\AppServ\www\tiendacd\tienda.php on line 5

a que se debe esto??
  #4 (permalink)  
Antiguo 14/03/2010, 08:46
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 15 años, 6 meses
Puntos: 19
Respuesta: bloquear pagina a no ser que estes logueado

Cookies, Sessions y Headers se tienen que enviar antes (y cuando digo antes, digo ANTES obligatoriamente) de que se envíe nada más. Es decir:

Código PHP:
Ver original
  1. <?php
  2. echo "hola";
  3. header("Content-Type: text/plain");
  4. ?>

Esto no funcionará. Tampoco funciona si intentamos grabar las sesiones, o mandar cookies.

Es decir, heder, session_start, set_cookie y demás funciones relaccionadas con HTTP Headers, Sessions y Cookies han de ir antes de que se envíe nada que el usuario pueda laeer en la pantalla de su navegador.
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #5 (permalink)  
Antiguo 14/03/2010, 08:53
 
Fecha de Ingreso: marzo-2010
Mensajes: 79
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: bloquear pagina a no ser que estes logueado

podrias decirme que esta mal en este codigo que es la pagina a la que el usuario tiene restringida??:


<?
session_start();
if(!isset($SESSION)){
header("location: validar_usuario.php");
} else {
echo "<html><body>";
echo "Bienvenido ";
echo $SESSION["k_username"];
echo "<br>Has entrado con el nombre de usuario ";
echo $SESSION["login"];
echo "<br>Para cerrar la sesión, pulsa: <a href='logout.php'>logout</a>";
echo "</body></html>";
}
?>
  #6 (permalink)  
Antiguo 14/03/2010, 10:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: bloquear pagina a no ser que estes logueado

Cita:
Iniciado por dani12345 Ver Mensaje
podrias decirme que esta mal en este codigo que es la pagina a la que el usuario tiene restringida??: [...]
ya te lo han dicho antes... aparentemente tu código esta bien formulado, a menos que estés enviando algo antes del session_start(), y también antes del <?

revisa con cuidado el mensaje de error... PHP no inventa cosas!! (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 14/03/2010, 10:41
 
Fecha de Ingreso: marzo-2010
Mensajes: 79
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: bloquear pagina a no ser que estes logueado

vale lo revisare, pero yo soy principiante y no entiendo mucho por eso he preguntado
  #8 (permalink)  
Antiguo 14/03/2010, 10:58
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 15 años, 6 meses
Puntos: 19
Respuesta: bloquear pagina a no ser que estes logueado

Código PHP:
Ver original
  1. <?php
  2. if(!isset($SESSION)){
  3. header("location: validar_usuario.php");
  4. } else {
  5. echo "<html><body>";
  6. echo "Bienvenido ";
  7. echo $SESSION["k_username"];
  8. echo "<br>Has entrado con el nombre de usuario ";
  9. echo $SESSION["login"];
  10. echo "<br>Para cerrar la sesión, pulsa: <a href='logout.php'>logout</a>";
  11. echo "</body></html>";
  12. }
  13. ?>
Si pones un espacio o un salto de línea antes del <?php no funcionará ya que ya se habrá enviado algo.

También usa <?php en vez de <? ya que <? se usa en otros scripts, y <?php no.
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #9 (permalink)  
Antiguo 14/03/2010, 11:12
 
Fecha de Ingreso: marzo-2010
Mensajes: 8
Antigüedad: 14 años, 8 meses
Puntos: 0
De acuerdo Respuesta: bloquear pagina a no ser que estes logueado

Lo que te dijo pateketrueke es cierto.
Tu codigo se ve bien, pero no me gusta esta linea:
if(!isset($SESSION)){
header("location: validar_usuario.php");
}

Es $_SESSION['algo'];

Última edición por GatorV; 15/03/2010 a las 00:11

Etiquetas: bloquear, logueado
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 11:57.