Foros del Web » Programando para Internet » PHP »

Error en session_start()

Estas en el tema de Error en session_start() en el foro de PHP en Foros del Web. Me da el siguiente error: Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by Warning: session_start() [function.session-start]: Cannot send session cache limiter ...
  #1 (permalink)  
Antiguo 10/02/2009, 11:11
 
Fecha de Ingreso: noviembre-2008
Ubicación: Jerez
Mensajes: 23
Antigüedad: 15 años, 5 meses
Puntos: 0
Exclamación Error en session_start()

Me da el siguiente error:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent config.php on line 2

Warning: Cannot modify header information - headers already sent by in hecklogin.php on line 31

No me deja postear el codigo de los archivos :S
  #2 (permalink)  
Antiguo 10/02/2009, 11:13
 
Fecha de Ingreso: noviembre-2008
Ubicación: Jerez
Mensajes: 23
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error en session_start()

checklogin.php

Código PHP:
    <?php
    
require("include/config.php");
    
/**
     * @author TecnicosPC
     * @copyright 2009
     */
    
    /** Recogemos variables */
    
    
$usuario $_POST["usuario"];
    
$clave $_POST["clave"];

    
/** Consultamos el usuario y la clave con la base de datos */

    
$consulta_usuario mysql_query("SELECT * FROM cliente WHERE usuario='$usuario'");
    
$consulta_clave mysql_query("SELECT * FROM cliente WHERE clave='$clave'");
    
$query_usuario mysql_fetch_array($consulta_usuario);
    
$query_clave mysql_fetch_array($consulta_clave);

    if ((
$query_usuario["usuario"] != $usuario) OR ($query_clave["clave"] != $clave)){
    print (
"El usuario no existe en nuestra base de datos!");
    }else{
    
session_register("idcliente");
    
session_register("usuario");
    
session_register("tipocliente");
    
session_register("descuento");
    
$_SESSION[idcliente] = $query_usuario["idcliente"];
    
$_SESSION[usuario] = $query_usuario["usuario"];
    
$_SESSION[tipocliente] = $query_usuario["tipocliente"];
    
$_SESSION[descuento] = $query_usuario["descuento"];
    
header ("Location:nuevoarticulo.php");
    }
    
?>
  #3 (permalink)  
Antiguo 10/02/2009, 11:15
 
Fecha de Ingreso: noviembre-2008
Ubicación: Jerez
Mensajes: 23
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error en session_start()

config.php
Código PHP:
<?php
/**
 * @author TecnicosPC
 * @copyright 2009
 */

$conexion mysql_connect("localhost","root","root");
mysql_select_db("tienda",$conexion);
session_start();
?>
  #4 (permalink)  
Antiguo 10/02/2009, 11:16
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Error en session_start()

Cita:
Warning: Cannot modify header information - headers already sent by in hecklogin.php on line 31
te dice que en esa linea ya hiciste una salida por pantalla (echo, print o print_r)

el error se debe a que tratas de hacer un redireccionamiento, pero entes de esto ya hiciste salidas por pantalla, revisa la linea que te indique

saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #5 (permalink)  
Antiguo 10/02/2009, 11:18
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Error en session_start()

Código PHP:
if (($query_usuario["usuario"] != $usuario) OR ($query_clave["clave"] != $clave)){
    print (
"El usuario no existe en nuestra base de datos!");
    }else{ 
tonto yo, ahi esta tu error, no puedes hacer un print y luego hacer un redireccionamiento

saca esa linea o comento el header(location


saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #6 (permalink)  
Antiguo 10/02/2009, 11:19
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error en session_start()

Es un error BASTANTE COMÚN. Debiste buscar al respecto antes de publicar tu pregunta. LA solución detallada está en las FAQs, y es un tema muy tratado en el foro.

  #7 (permalink)  
Antiguo 10/02/2009, 11:20
 
Fecha de Ingreso: noviembre-2008
Ubicación: Jerez
Mensajes: 23
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error en session_start()

La linea 31 es el Header. :S he quitao el print pero me sigue dando el fallo.



Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\AppServ\www\tienda\checklogin.php:1) in C:\AppServ\www\tienda\include\config.php on line 2

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

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\tienda\checklogin.php:1) in C:\AppServ\www\tienda\checklogin.php on line 31
  #8 (permalink)  
Antiguo 10/02/2009, 11:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error en session_start()

Checa que tienes en la línea 2 del archivo config.php, ahí es donde esta el problema.

Saludos
  #9 (permalink)  
Antiguo 10/02/2009, 11:25
 
Fecha de Ingreso: noviembre-2008
Ubicación: Jerez
Mensajes: 23
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error en session_start()

La linea 2 es el session_start(); :S no entiendo el porque

Código PHP:
<?php
session_start
();
/**
 * @author TecnicosPC
 * @copyright 2009
 */
$conexion mysql_connect("localhost","root","root");
mysql_select_db("tienda",$conexion);
?>
  #10 (permalink)  
Antiguo 10/02/2009, 11:25
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Error en session_start()

Cita:
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\tienda\checklogin.php:1) in C:\AppServ\www\tienda\checklogin.php on line 31
amigo mio, el error te lo arroja en ese archivo (checklogin.php) en la linea 31

revisa eso y de pasada como dice GatorV revisa el archivo config.

recuerda no puedes hacer ningun tipo de echo, print o print_r si quieres hacer un header(location:)

saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #11 (permalink)  
Antiguo 10/02/2009, 11:26
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error en session_start()

El problema no está en config.php:2 ni checklogin.php:31. Ahí vemos las consecuencias del mismo, pero el origen está en checklogin.php:1. Ese error es muy conocido, como ya te dije. Para poder interpretar lo que dice mira aquí:

FAQ PHP #186. ¿Por qué me sale "Warning: Cannot modify header information - headers already sent by (output started at [1]:[2]) in [3] on line [4]"

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 00:42.