Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] header no funciona

Estas en el tema de header no funciona en el foro de PHP en Foros del Web. Hola tengo estas clases, el header de la primera clase no me redirecciona Código PHP: public function  validar ()     {         if( $this -> validarCarnetContrasena () ==  true ...
  #1 (permalink)  
Antiguo 08/11/2014, 22:36
 
Fecha de Ingreso: febrero-2014
Mensajes: 69
Antigüedad: 10 años, 1 mes
Puntos: 0
header no funciona

Hola tengo estas clases, el header de la primera clase no me redirecciona

Código PHP:
public function validar()
    {
        if(
$this->validarCarnetContrasena() == true)
        {           
            
$this -> iniciarSesion();

            echo 
"string";

            
header("Location: index.php");
        }

        else 
        {
            echo 
"<script language='JavaScript'> 
                alert('Verifica tu nombre de usuario y contraseña'); 
                </script>"
;
        }
    } 
El estring que mando a imprimir no se muestra, pero si inicia la sesion

Código PHP:
public function validarCarnetContrasena()
    {
        
$sql "SELECT * FROM tbl_empleados WHERE CARNET = '".$this->CARNET."'";

        
$result $this->consulta($sql);

        if(
is_array($result))
        {
            
$d $result[0];

            if( 
strcmp($this->CONTRASENA,$d["CONTRASENA"]) == )
            {
                
$this->setIdRol($d["IDROL"]);
                return 
true;  
            }
                                      
            else
            {
                return 
false;
            }                   
                
        }
        else
        {
            return 
false;
        }
    } 
Código PHP:
public function iniciarSesion()
    {
        
session_start();

        
$_SESSION['usuario'] =$this->CARNET;
        
$_SESSION['idrol']   =$this->IDROL;
    } 

Última edición por sam03; 08/11/2014 a las 22:47
  #2 (permalink)  
Antiguo 08/11/2014, 23:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: header no funciona

No puedes imprimir nada antes de usar header(), consulta el manual: http://php.net/header

Cita:
Recuerde que header() debe ser llamado antes de mostrar nada por pantalla, etiquetas HTML, líneas en blanco desde un fichero o desde PHP. Es un error muy común leer código con funciones como include o require, u otro tipo de funciones de acceso de ficheros que incluyen espacios o líneas en blanco que se muestran antes de llamar a la función header(). Sucede el mismo problema cuando se utiliza un solo fichero PHP/HTML.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/11/2014, 23:03
 
Fecha de Ingreso: febrero-2014
Mensajes: 69
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: header no funciona

lo he dejado sin ese echo y tampoco me redirecciona

Código PHP:
public function validar()
    {
        if(
$this->validarCarnetContrasena() == true)
        {           
            
$this -> iniciarSesion();

            
header("Location: index.php");
        }

        else 
        {
            echo 
"<script language='JavaScript'> 
                alert('Verifica tu nombre de usuario y contraseña'); 
                </script>"
;
        }
    } 
  #4 (permalink)  
Antiguo 08/11/2014, 23:28
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: header no funciona

¿Qué realiza el método iniciarSesion? ¿Quizá imprime algo? Fíjate en eso porque puede ser que ahí esté el error. Y asegúrate de que por ningún lado se imprima algo antes de la ejecución de la función header.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 08/11/2014, 23:46
 
Fecha de Ingreso: febrero-2014
Mensajes: 69
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: header no funciona

esto es el iniciarSesion()

Código PHP:
public function iniciarSesion()
    {
        
session_start();

        
$_SESSION['usuario'] =$this->CARNET;
        
$_SESSION['idrol']   =$this->IDROL;
    } 
  #6 (permalink)  
Antiguo 08/11/2014, 23:53
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: header no funciona

¿Y antes de eso no imprimes algo o quizá hay otro método que imprima algo? Tampoco pueden haber etiquetas HTML antes de la llamada a header. A todo esto, ¿qué dice en el mensaje de error?
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 08/11/2014, 23:55
 
Fecha de Ingreso: febrero-2014
Mensajes: 69
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: header no funciona

No hay mensaje de error, solo no redirecciona
  #8 (permalink)  
Antiguo 08/11/2014, 23:56
 
Fecha de Ingreso: febrero-2014
Mensajes: 69
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: header no funciona

esto es toda la clase y sus funciones

Código PHP:
<?php

include_once("ClassConexion.php");

class 
Sesiones extends Conexion
{   
    
//variables que estan en los campos de la tabla
    
private $CARNET;
    private 
$CONTRASENA;
    private 
$IDROL;

    public function 
setCarnet($CARNET)
    {
        
$this->CARNET $CARNET;
    }

    public function 
setContrasena($CONTRASENA)
    {
        
$this->CONTRASENA $CONTRASENA;    
    }

    public function 
setIdRol($IDROL)
    {
        
$this->IDROL $IDROL;    
    }

    public function 
getCarnet()
    {
        return 
$this->CARNET;
    }

    public function 
getContrasena()
    {
        return 
$this->CONTRASENA;
    }

    public function 
getIdRol()
    {
        return 
$this->IDROL;
    }

    public function 
validar()
    {
        if(
$this->validarCarnetContrasena() == true)
        {           
            
$this -> iniciarSesion();

            
header("Location: index.php");
        }

        else 
        {
            echo 
"<script language='JavaScript'> 
                alert('Verifica tu nombre de usuario y contraseña'); 
                </script>"
;
        }
    }

    public function 
validarCarnetContrasena()
    {
        
$sql "SELECT * FROM tbl_empleados WHERE CARNET = '".$this->CARNET."'";

        
$result $this->consulta($sql);

        if(
is_array($result))
        {
            
$d $result[0];

            if( 
strcmp($this->CONTRASENA,$d["CONTRASENA"]) == )
            {
                
$this->setIdRol($d["IDROL"]);
                return 
true;  
            }
                                      
            else
            {
                return 
false;
            }                   
                
        }
        else
        {
            return 
false;
        }
    }

    public function 
iniciarSesion()
    {
        
session_start();

        
$_SESSION['usuario'] =$this->CARNET;
        
$_SESSION['idrol']   =$this->IDROL;
    }

    public function 
cerrarSesion()
    {
        
session_destroy();
    }
}
  #9 (permalink)  
Antiguo 09/11/2014, 00:06
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: header no funciona

Quizá no se está cumpliendo la condición que debe de cumplirse para ejecutar la redirección. Utiliza la función error_reporting para conocer los errores que se están produciendo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #10 (permalink)  
Antiguo 09/11/2014, 01:34
 
Fecha de Ingreso: febrero-2014
Mensajes: 69
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: header no funciona

si crea las variables ce sesion
  #11 (permalink)  
Antiguo 09/11/2014, 08:12
 
Fecha de Ingreso: febrero-2014
Mensajes: 69
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: header no funciona

ya active todos los errores con

Código PHP:
error_reporting(-1); 
y aún así no me da ninguna notificación
  #12 (permalink)  
Antiguo 09/11/2014, 08:32
 
Fecha de Ingreso: febrero-2014
Mensajes: 69
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: header no funciona

al final lo hice con javascript

Código PHP:
public function validar()
    {
        if(
$this->validarCarnetContrasena() == true)
        {           
            
$this -> iniciarSesion();

            echo 
"<script language='JavaScript'> 
                    location.href = 'index.php';
                  </script>"
;
        }

        else 
        {
            echo 
"<script language='JavaScript'> 
                    alert('Verifica tu nombre de usuario y contraseña'); 
                  </script>"
;
        }
    } 
  #13 (permalink)  
Antiguo 09/11/2014, 11:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: header no funciona

Cita:
Iniciado por sam03 Ver Mensaje
ya active todos los errores con

Código PHP:
error_reporting(-1); 
y aún así no me da ninguna notificación
Se te olvida lo siguiente:
Código PHP:
Ver original
  1. ini_set('display_errors',1);

Y te sugiero no usar Javascript, imagina que alguien desactiva Javascript ¿seguirá funcionando tu sistema?

Es decir, no deberías depender de tecnologías externas a tu sistema para implementar piezas clave del mismo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: header, select, sql
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:05.