Foros del Web » Programando para Internet » PHP »

Problema con session_start();

Estas en el tema de Problema con session_start(); en el foro de PHP en Foros del Web. Hola, he buscado por el foro y por google la manera de solucionar un error que me sale con session_start();, pero no he encontrado nada, ...
  #1 (permalink)  
Antiguo 20/01/2009, 10:27
 
Fecha de Ingreso: enero-2009
Mensajes: 9
Antigüedad: 15 años, 2 meses
Puntos: 0
Problema con session_start();

Hola, he buscado por el foro y por google la manera de solucionar un error que me sale con session_start();, pero no he encontrado nada, pues me sigue saliendo.

Tengo instalado PHP 5.

El error que me da es el siguiente:

Cita:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\Servidor\WEB\usuarios\comprueba.php:1) in C:\Servidor\WEB\usuarios\comprueba.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Servidor\WEB\usuarios\comprueba.php:1) in C:\Servidor\WEB\usuarios\comprueba.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at C:\Servidor\WEB\usuarios\comprueba.php:1) in C:\Servidor\WEB\usuarios\comprueba.php on line 21

Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
El mismo código me funciona al subirlo a un hosting, pero no al utilizarlo en mi ordenador.

Gracias de antemano.
  #2 (permalink)  
Antiguo 20/01/2009, 10:30
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 6 meses
Puntos: 55
Respuesta: Problema con session_start();

es pq hay una salida por pantalla previa a session_start(); fijate que no tengas ningun echo, o espacio en blanco
slauods
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 20/01/2009, 10:33
 
Fecha de Ingreso: enero-2009
Mensajes: 9
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problema con session_start();

En realidad, delante del session_start(); sólo está el <?php y en la siguiente línea ya el session_start();

El código es este:
Código PHP:
<?php
session_start
();
$server="localhost"/* Nuestro server mysql */
$database="usuarios"/* Nuestra base de datos */
$dbpass=""/*Nuestro password mysql */
$dbuser="root"/* Nuestro user mysql */
$query="SELECT * FROM usuarios WHERE login='$login'";
$link=mysql_connect($server,$dbuser,$dbpass);
$result=mysql_db_query($database,$query,$link);
if(
mysql_num_rows($result)==0){
echo 
"No existe el login introducido";
} else {
$array=mysql_fetch_array($result);
if(
$array["password"]==crypt($pass,"semilla") ){
/* Comprobamos que el password encriptado en la BD coincide con el password que nos han dado al encriptarlo. Recuerda usar la misma semilla para encriptar los dos passwords. */
$SESSION["login"]=$login;
$SESSION["nombre"]=$array["nombre"];
$SESSION["apellidos"]=$array["apellidos"];
session_register("SESSION");
header("location:panel.php");

} else {
echo 
"Password incorrecto!";
/* Cerramos este ultimo else */
/* Cerramos el else que corresponde a la comprobación de que el login existe */

?>
  #4 (permalink)  
Antiguo 20/01/2009, 10:37
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 6 meses
Puntos: 55
Respuesta: Problema con session_start();

este archivo es llamado directamente por url o es incluido en otro?
fijate bien q antes de <?php no halla ningun espacio ni salto de linea nada de nada
__________________
Degiovanni Emilio
developtus.com
  #5 (permalink)  
Antiguo 20/01/2009, 10:41
 
Fecha de Ingreso: enero-2009
Mensajes: 9
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problema con session_start();

Este archivo recoge los datos mandados por login.php desde un formulario.

Con respecto a lo de los espacios, no hay ningún espacio delante del <?php

Saludos.
  #6 (permalink)  
Antiguo 20/01/2009, 12:07
 
Fecha de Ingreso: julio-2008
Ubicación: España
Mensajes: 29
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Problema con session_start();

Pero, como dice emiliodeg, ese archivo esta llamado con include o require desde dentro de otro?

Piensa que en cuanto se escribe algo en el html, ya se un echo, sea una etiqueta html o lo que sea, la sesion no se puede modificar.

De todar formas a veces quedan caracteres que no vemos antes del session_start y producen errores, te recomiendo que para asegurarte borres las lineas <?php y session_start() y las escribas de nuevo, no cuesta nada y te puede ahorrar mas de un dolor de cabeza.

Si no es ni una cosa ni la otra, la evrdad es que no tengo ni idea...
  #7 (permalink)  
Antiguo 20/01/2009, 13:20
 
Fecha de Ingreso: enero-2009
Mensajes: 9
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problema con session_start();

No, el archivo está en una página aparte, y no se le llama desde ningún sitio. Al que sí se llama con un include es al login.php, pero ése funciona.

Ahora el error que me sale es el siguiente:
Cita:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Servidor\WEB\usuarios\comprueba.php:1) in C:\Servidor\WEB\usuarios\comprueba.php on line 1

Warning: Cannot modify header information - headers already sent by (output started at C:\Servidor\WEB\usuarios\comprueba.php:1) in C:\Servidor\WEB\usuarios\comprueba.php on line 18
Mi código:
Código PHP:
<? session_start();$server="localhost"/* Nuestro server mysql */
$database="usuarios"/* Nuestra base de datos */
$dbpass=""/*Nuestro password mysql */
$dbuser="root"/* Nuestro user mysql */
$query="SELECT * FROM usuarios WHERE login='$login'";
$link=mysql_connect($server,$dbuser,$dbpass);
$result=mysql_db_query($database,$query,$link);
if(
mysql_num_rows($result)==0){
echo 
"No existe el login introducido";
} else {
$array=mysql_fetch_array($result);
if(
$array["password"]==crypt($pass,"semilla") ){
/* Comprobamos que el password encriptado en la BD coincide con el password que nos han dado al encriptarlo. Recuerda usar la misma semilla para encriptar los dos passwords. */
$SESSION["login"]=$login;
$SESSION["nombre"]=$array["nombre"];
$SESSION["apellidos"]=$array["apellidos"];
session_register("SESSION");
header("location:panel.php");
} else {
echo 
"Password incorrecto!";
/* Cerramos este ultimo else */
/* Cerramos el else que corresponde a la comprobación de que el login existe */
?>

Última edición por lelianasociales; 20/01/2009 a las 14:33
  #8 (permalink)  
Antiguo 20/01/2009, 15:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con session_start();

Creo no haz buscado correctamente:

http://www.forosdelweb.com/2023067-post176.html y http://www.forosdelweb.com/2037876-post179.html

Saludos
  #9 (permalink)  
Antiguo 20/01/2009, 15:46
 
Fecha de Ingreso: enero-2009
Mensajes: 9
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problema con session_start();

Muchas gracias, GatorV, ya me funciona :P

Saludos^^
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 06:08.