Foros del Web » Programando para Internet » PHP »

Porq da este error

Estas en el tema de Porq da este error en el foro de PHP en Foros del Web. Hola todos/as He subido unas paginas a un servidor y no se porque nada mas abrirlas y ejecutarlas me da el siguiente error Warning: session_start(): ...
  #1 (permalink)  
Antiguo 04/03/2004, 03:19
 
Fecha de Ingreso: noviembre-2003
Ubicación: Torrelodones
Mensajes: 134
Antigüedad: 14 años, 1 mes
Puntos: 0
Porq da este error

Hola todos/as

He subido unas paginas a un servidor y no se porque nada mas
abrirlas y ejecutarlas me da el siguiente error

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/cuelate/public_html/admin/admin.php:8) in /home/cuelate/public_html/admin/admin.php on line 18

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/cuelate/public_html/admin/admin.php:8) in /home/cuelate/public_html/admin/admin.php on line 18

Warning: Cannot modify header information - headers already sent by (output started at /home/cuelate/public_html/admin/admin.php:8) in /home/cuelate/public_html/admin/admin.php on line 21

Warning: Cannot modify header information - headers already sent by (output started at /home/cuelate/public_html/admin/admin.php:8) in /home/cuelate/public_html/admin/admin.php on line 22

Warning: Cannot modify header information - headers already sent by (output started at /home/cuelate/public_html/admin/admin.php:8) in /home/cuelate/public_html/admin/admin.php on line 23

Probe a subirlo a otro servidor y en el otro me iba perfecto, no
me daba ningun error creaba las cookies las sessiones y me
hacia el header. Porque pueder ser??

aqui les dejo el codigo de la pagina

Código PHP:
<?
if (isset($_POST['enviar']))
{
ob_start();
$nombre=$_POST['nombre'];
$clave=$_POST['clave'];
mysql_connect("localhost","","");
$rs=mysql_db_query("bd","select COUNT(*) from administrador where nombre='$nombre' AND clave=PASSWORD('$clave')");
$resultado=mysql_result($rs,0);
if (
$resultado == 1){
session_start();
$_SESSION['adm']=$nombre;
$_SESSION['admregistrado']='Si';
setcookie("adreg","Si",time()+60);
setcookie("adnick",$nombre,time()+60);
header("location: admin2.php");
ob_end_flush();?>
<?    
}else{
printf("Los datos introducidos son incorrectos");
}
}
?>
Lo de ob_flush lo he puesto para probar pero me da los mismos
errores tanto poniendolo como quitandolo.

Gracias
  #2 (permalink)  
Antiguo 04/03/2004, 03:28
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

El mensaje te lo dice todo: has enviado salida al navegador en la linea 8 de admin.php.

Y si dices que hay servidores donde no te da error, entonces es posible que sea un salto de linea fuera de <?php ?> (como el que has puesto despues de ob_end_flush()). Creo que hay servidores que aceptan mejor que otros las lineas vacias.

O tambien puede ser que solo te funcione en servidores con el buffer activado por configuracion.

De todas formas, la clave la tiene la linea 8 de admin.php (que imagino que estara por encima de ob_start()).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 04/03/2004, 03:59
 
Fecha de Ingreso: noviembre-2003
Ubicación: Torrelodones
Mensajes: 134
Antigüedad: 14 años, 1 mes
Puntos: 0
Os envio todo el codigo xq sigue dando los mismos problemas
y ya me estoy desesperando. a ver si me pueden echar una
mano xfavor

Código PHP:

<html>
<head>
<title>Panel de control</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="3F5478" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<?PHP if (isset($_POST['enviar'])){
ob_start();
$nombre=$_POST['nombre'];
$clave=$_POST['clave'];
mysql_connect("localhost","","");
$rs=mysql_db_query("bd","select COUNT(*) from administrador where nombre='$nombre' AND clave=PASSWORD('$clave')");
$resultado=mysql_result($rs,0);
if (
$resultado == 1){
session_start();
$_SESSION['adm']=$nombre;
$_SESSION['admregistrado']='Si';
setcookie("admreg","Si",time()+60);
setcookie("admnick",$nombre,time()+60);
header("location: admin2.php");
}else{
printf("Los datos introducidos son incorrectos");
}
ob_end_flush();
}
?>


<p align="center"><font color="#FFFF00" size="+6"><strong>Panel de control</strong></font></p>
<form name="form1" method="post" action="">
  <div align="center">
    <p><font color="#FFFFFF"><strong>Nombre</strong></font> 
      <input name="nombre" type="text" size="20">
    </p>
    <p><strong>Clave</strong> 
      <input name="clave" type="password" size="20">
    </p>
    <p>
      <input name="enviar" type="submit" value="Enviar">
      <br>
    </p>
  </div>
</form>
Me siguen dando los mismo errores de antes, a lo mejor es que
no lo he entendido muy bien y lo he hecho mal, les agradeceria
que me ayudaran
  #4 (permalink)  
Antiguo 04/03/2004, 04:10
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
NO PUEDES ENVIAR SALIDA AL NAVEGADOR ANTES DE header(), setcookie() y session_start(). NI HTML, NI ECHO, NI ESPACIOS EN BLANCO; NI LINEAS EN BLANCO.

Asi que si quitas todo ese HTML que tienes al principio, todo solucionado.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 13:54.