Foros del Web » Programando para Internet » PHP »

Problema con la autentificacion de session_start

Estas en el tema de Problema con la autentificacion de session_start en el foro de PHP en Foros del Web. Buenas, tengo el siguiente código en una página php que pretendo proteger con usuario y contraseña. Código PHP: <?php      session_start ();  //inicio de la sesión siempre antes de cualquier otra línea.     //COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO  if ( $_SESSION ...
  #1 (permalink)  
Antiguo 29/11/2012, 13:48
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 14 años, 1 mes
Puntos: 12
Problema con la autentificacion de session_start

Buenas,

tengo el siguiente código en una página php que pretendo proteger con usuario y contraseña.

Código PHP:
<?php 
    session_start
(); //inicio de la sesión siempre antes de cualquier otra línea.
    //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(); 
}    
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
    
    <head>
        <title...
El caso es que si lo pongo en el mismo archivo sí me funciona, pero si lo meto en otro archivo llamado 'archivo.php' la primera parte y luego lo meto con un include
Código PHP:
include('Funciones/archivo.php'); 
resulta que me da el siguiente error:

Warning: Cannot modify header information - headers already sent by (output started at /homepages/31/d392666889/htdocs/Admin/Funciones_Admin/seguridad.php:3) in /homepages/31/d392666889/htdocs/Admin/Funciones_Admin/seguridad.php on line 10

sería la línea que coincide con el
header("Location: ../Index.php");
  #2 (permalink)  
Antiguo 29/11/2012, 15:06
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Problema con la autentificacion de session_start

Al menos has intentando leer y comprender el error?, este error es de los mas documentados tanto en el foro como en internet, basta con pegar el error y encontrarás infinidad de sitios que documentan y dan solución a dicho error!, usa el buscador antes de repetir post a diestra y siniestra....

Tu problema es porque antes del header() tienes salida hacia el navegador, un echo, print, etc, o código HTML o espacios en blanco antes de <?php, también es probable que sea por algún error en el código que genere un alert o bien, que la codificación del archivo sea UTF-8 con BOM...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 29/11/2012, 21:42
 
Fecha de Ingreso: noviembre-2012
Mensajes: 66
Antigüedad: 12 años
Puntos: 10
Respuesta: Problema con la autentificacion de session_start

Primero session_start() siempre al principio y luego si usas header Location como te dice el compañero no has de haber enviado salida alguna al navegador sino te devuelve warning de headers already sents.

Posible solución o 'apaño'

empezar el script principal con:

Código PHP:
ob_start(); 
y finalizar el documento con
Código PHP:
ob_end_flush(); 
Pero es un apaño, lo ideal es programar todo de tal forma que si hay una función header, esté antes de enviar nada porque las cabeceras se procesan lo primero y sino te lanza un warning

Salu2 ;)

Etiquetas: html, autenticacion, 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




La zona horaria es GMT -6. Ahora son las 11:24.