Foros del Web » Programando para Internet » PHP »

session start error

Estas en el tema de session start error en el foro de PHP en Foros del Web. Bueno gente 1ro que nada les comento lo que quiero hacer (desde ayer que quiero hacerlo): La idea es guardar en cookies usuario y contraseña ...
  #1 (permalink)  
Antiguo 12/07/2011, 19:18
Avatar de leo_nqn  
Fecha de Ingreso: abril-2010
Ubicación: Neuquen
Mensajes: 461
Antigüedad: 14 años, 7 meses
Puntos: 24
session start error

Bueno gente 1ro que nada les comento lo que quiero hacer (desde ayer que quiero hacerlo):
La idea es guardar en cookies usuario y contraseña (esto anda perfecto )
Una vez que cierro el navegador y abro la web de nuevo, levanto la cookie si existen o no para loguear nuevamente al usuario (la cookie la veo y la traigo normalmente)

Tengo una clase que uso para loguear alos usuarios por cookie, que pasa... paso los datos por el metodo correspondiente de la clase, pero despues de que esta clase valida los datos del usuario al momento de usar el session start me tira los siguientes errores:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /var/www/vhost/idunload.es/home/html/Controller/cookieControl.php:53) in /var/www/vhost/idunload.es/home/html/Controller/cookieControl.php on line 22

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/vhost/idunload.es/home/html/Controller/cookieControl.php:53) in /var/www/vhost/idunload.es/home/html/Controller/cookieControl.php on line 22

Por lo que lei esto puede ser por espacios en blanco.. elimine todos los espacios, tambien agregue el ob_start();
y el error sigue, sinceramente no entiendo que puede ser...

Es esta la manera correcta de mantener una session???
Hay otras formas??
Alguien tiene alguna idea de que puede ser???

Espero respuestas gracias y saludos!! disculpen las molestias!
__________________

Blog: http://leonardonqn.blogspot.com
Twitter:@Leo_FFerreyra
  #2 (permalink)  
Antiguo 12/07/2011, 19:40
 
Fecha de Ingreso: marzo-2011
Mensajes: 68
Antigüedad: 13 años, 9 meses
Puntos: 9
Respuesta: session start error

Eso dice que ya enviaste los headers Fijate que no haya prints o echos antes de session_start(), es lo mas común que se me ocurre que te puede pasar
  #3 (permalink)  
Antiguo 12/07/2011, 20:03
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 8 meses
Puntos: 406
Respuesta: session start error

session_start() debe estar SIEMPRE en la primera linea de código de cada archivo
__________________
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 =)
  #4 (permalink)  
Antiguo 12/07/2011, 20:14
Avatar de leo_nqn  
Fecha de Ingreso: abril-2010
Ubicación: Neuquen
Mensajes: 461
Antigüedad: 14 años, 7 meses
Puntos: 24
Respuesta: session start error

en este caso yo estoy iniciando sesion despues de validar los datos no puedo ponerlo en la 1er linea..... y no hay echo ni print antes de session start....
__________________

Blog: http://leonardonqn.blogspot.com
Twitter:@Leo_FFerreyra
  #5 (permalink)  
Antiguo 12/07/2011, 20:17
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 8 meses
Puntos: 406
Respuesta: session start error

Cuando creas una cookie se envían las cabeceras, al intentar iniciar la sesión no se puede ya que las cabeceras ya se enviaron, por eso es necesario que session_start() siempre este en la 1ra linea de cada archivo, esto no te va a interferir en ningún sentido, y si te ahorrarás errores de este tipo
__________________
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 =)
  #6 (permalink)  
Antiguo 12/07/2011, 20:33
Avatar de leo_nqn  
Fecha de Ingreso: abril-2010
Ubicación: Neuquen
Mensajes: 461
Antigüedad: 14 años, 7 meses
Puntos: 24
Respuesta: session start error

bueno .. ahora puse session_start() en la 1ra linea del codigo.. y se me fueron esos errores.. ahora despues de crear la session... quiero redireccionar a otra pagina... pero con header no puedo... me tira el mismo error de antes...

Cannot modify header information - headers already sent by (output started at /var/www/vhost/idunload.es/home/html/Controller/cookieControl.php:52) in /var/www/vhost/idunload.es/home/html/Controller/cookieControl.php on line 30
__________________

Blog: http://leonardonqn.blogspot.com
Twitter:@Leo_FFerreyra
  #7 (permalink)  
Antiguo 12/07/2011, 20:37
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 8 meses
Puntos: 406
Respuesta: session start error

Puedes publicar el código, estar adivinando no vamos a llegar a ningún lado
__________________
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 =)
  #8 (permalink)  
Antiguo 12/07/2011, 20:40
Avatar de leo_nqn  
Fecha de Ingreso: abril-2010
Ubicación: Neuquen
Mensajes: 461
Antigüedad: 14 años, 7 meses
Puntos: 24
Respuesta: session start error

Código:
if($usuario->password == $password)
            {                
                $site="principal";                                
                // Creamos la Sesion del Usuario
                $_SESSION['access'] ="si";
                $_SESSION['id'] =$usuario->id;
                $_SESSION['nombre'] =$usuario->nombre;
                $_SESSION['recordar'] =$usuario->recordar;
                $_SESSION['mail'] =$usuario->email;                
                //Redireccionamso a la hoja correspondiente                
                header("Location:template.php?site=$site");                
            }

La linea es esta:
header("Location:template.php?site=$site");
__________________

Blog: http://leonardonqn.blogspot.com
Twitter:@Leo_FFerreyra
  #9 (permalink)  
Antiguo 12/07/2011, 20:47
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 8 meses
Puntos: 406
Respuesta: session start error

Estas seguro que no hay ningún tipo de salida al navegador?? aparte, solo muestras un trozo, no puedo saber que hay desde el session_start hasta el header...
__________________
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 =)
  #10 (permalink)  
Antiguo 12/07/2011, 20:50
Avatar de leo_nqn  
Fecha de Ingreso: abril-2010
Ubicación: Neuquen
Mensajes: 461
Antigüedad: 14 años, 7 meses
Puntos: 24
Respuesta: session start error

Código:
<?php session_start();
/* idunload.es
 * Creado por 
 * 
 * Version: 0.01 beta; index
*/ 
ob_start();
class cookieControl{
    public function   __construct() {
        include_once 'AccesData/cookieAcces.php';
    }    
    public function LoginCook($u,$c)
    {
        $usuario = $u;
        $password = $c;
        $acces = new cookieAcces();
        $usuario = $acces->Traer($usuario);
        if($usuario != null)
        {
            if($usuario->password == $password)
            {                
                $site="principal";                                
                // Creamos la Sesion del Usuario
                $_SESSION['access'] ="si";
                $_SESSION['id'] =$usuario->id;
                $_SESSION['nombre'] =$usuario->nombre;
                $_SESSION['recordar'] =$usuario->recordar;
                $_SESSION['mail'] =$usuario->email;                
                //Redireccionamso a la hoja correspondiente                
                header("Location:template.php?site=$site");                
            }
            else
            {
                //Nombre Usuario
                setcookie("nbur","");
                //Contraseña
                //setcookie("conple","", time()+ 31536000, "/", "misitio.com", 0);                
                header("Location: ../index.php");                
            }          
        }
        else
        {
            //Nombre Usuario
            setcookie("nbur","", time()+ 31536000, "/", "misitio.com", 0);
            //Contraseña
            setcookie("conple","", time()+ 31536000, "/", "misitio.com", 0);
            
            header("Location: ../index.php");
        }
    }
}
ob_flush();
?>
ahi ta completo..
__________________

Blog: http://leonardonqn.blogspot.com
Twitter:@Leo_FFerreyra
  #11 (permalink)  
Antiguo 12/07/2011, 20:59
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 8 meses
Puntos: 406
Respuesta: session start error

El problema no necesariamente tiene que estar en la clase, si no donde usas dicha clase, por ejemplo, supón que usas dicha clase en el archivo verificar.php

Código PHP:
Ver original
  1. <?php
  2.  
  3. echo 'Bienvenido';
  4.  
  5. $obj = new cookieControl();
  6. $obj->LoginCook('user','pass');

En el código anterior te mandará error a pesar que la clase este bien construida
__________________
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 =)
  #12 (permalink)  
Antiguo 12/07/2011, 21:04
Avatar de leo_nqn  
Fecha de Ingreso: abril-2010
Ubicación: Neuquen
Mensajes: 461
Antigüedad: 14 años, 7 meses
Puntos: 24
Respuesta: session start error

Te muestro la solucion... ahora anda perfecto recien lo hice.. cambie de tipo de redireccionamiento... no se si es lo correcto espero que si... en vez de:

header("Location:template.php?site=$site");

use:

<script languaje="JavaScript">location.href="template.php? site=<?php echo $site ?>";</script>
__________________

Blog: http://leonardonqn.blogspot.com
Twitter:@Leo_FFerreyra

Etiquetas: html, session, start
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 18:55.