PDA

Ver la versión completa : ayuden con esto: Warning: session_start() [function.session-start]: Cannot send sessi




sebas_burgos
06-08-2009, 08:06 PM
Hola, bueno no siempre voy a dar cosas tb necesito xD jeje...
tengo un problemilla y yo se q con la experiencia d cada uno podran ayudarme alguito...
el problema es este:

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

segun lo q dicen antes del session_start(); no deberia haber nada, en mi caso no hay nada excepto el <?php...
no hay espacios, ni nada que este mal. en la personal no encuentro un error.
les dejo las primeras lineas de codigo para ver si alguien detecta la causa.



<?php
session_start();
ob_start();
if(!isset($_SESSION['usuario']))
{
echo "<script>alert('Primero debe loguearse en la Web.')</script>";
include_once("login.php");
}
else

etc...
ah vdd, tambien otra cosa era que donde dice include_once, ahi tenia un header("location: login.php"); pero me marcaba error en la url, la solucion que tuve fue cambiarlo por un include, si alguien de paso encuentra una solucion para eso, pasaria a ser mi idolo xD

saludos,
atte.
sebas_burgos

Tronador
06-08-2009, 08:48 PM
que tienes en login.php? en login.php no puedes tener algun session_start() o header(), (ni incluir ningun otro archivo que tenga estas dos cosas) pues despues de que has hecho algun print o echo ya no es posible llamar a estas funciones, en estos casos es que salen los errores del tipo "headers already sent"

sebas_burgos
06-08-2009, 10:11 PM
en login.php tengo esto



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
<script src="SpryAssets/SpryValidationPassword.js" type="text/javascript"></script>
<link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
<link href="SpryAssets/SpryValidationPassword.css" rel="stylesheet" type="text/css" />
<link href="style/style.css" type="text/css" rel="stylesheet" />
</head>
<body><div align="center">
<p>Usuario</p>
<form id="form1" name="form1" method="post" action="login.procesar.php">
<span id="sprytextfield1">
<label>
<input name="usuario" type="text" id="usuario" value="<?php echo $_COOKIE['cookie_usuario'] ?>" />
</label>
<span class="textfieldRequiredMsg">Se necesita un valor.</span><span class="textfieldMinCharsMsg">No se cumple el mínimo de caracteres requerido(5 caracteres).</span></span>
<p>Password:</p>
<p><span id="sprypassword1">
<label>
<input name="password" type="password" id="password" value="<?php echo $_COOKIE['cookie_password'] ?>" />
</label>
<span class="passwordRequiredMsg">Se necesita un valor.</span><span class="passwordMinCharsMsg">No se cumple el mínimo de caracteres requerido(5 caracteres).</span></span></p>
<p>
<label>
<input type="checkbox" name="recordar" id="recordar" />
Recordar Datos</label>
</p>
<p>
<label>
<input type="submit" name="entrar" id="entrar" value="Entrar" />
</label>
</p>
<p><a href="registrar.php">registrate</a> | <a href="olvidepass.php">olvidé mi password</a></p>
<?php
$acceso = $_GET['acceso'];
if(isset($acceso))
{
?>
<p style="color: #F00;">*El usuario y/o el password no son correctos.</p>
<?php } ?>
</form>
<script type="text/javascript">
<!--
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none", {validateOn:["blur", "change"], minChars:5});
var sprypassword1 = new Spry.Widget.ValidationPassword("sprypassword1", {validateOn:["blur", "change"], minChars:5});
//-->
</script>
</div>
</body>
</html>


sigo sin encontrar el error :/

Tronador
06-08-2009, 10:40 PM
El error sale cuando se imprimen caracteres antes de session_start(); mira que no haya ninguna linea en blanco ni ningun espacio antes de <?php

talcual
06-09-2009, 01:48 PM
pechichon ese error te sale por el ob_start debes colocarlo antes de iniciar la sesion porq el lo que hace es escribir o algo asi o busca porque esos dos no se llevan muy bien para hacer eso debes hacer como te digo colocar uno el ob antes que la sesion prueba asi

sebas_burgos
06-09-2009, 04:00 PM
mm no naa...
no hay ningun espacio arriba (como lo mencione al principio del post >.<)
ya probe hasta quitanto el ob_start y naa m sigue mostrado el error:

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

y no quiero usar el @session_start(); xq no quiero ocultar el error sino solucionarlo

de todas formas gracias a los q m han ayudado a ver si alguien encuentra la respuesta :(

talcual
06-09-2009, 06:04 PM
sebas ya he visto que has llegado a cristalab bueno ya te tengo la solucion es que no has cerrado el ob tienes que cerrarlo asi

<?php
ob_end_flush;
?>

o algo asi

sebas_burgos
06-09-2009, 08:05 PM
eehmmm xD... see un poco de desesperacion xq no m deja avanzar en el proyecto... ya t respondi por ahi... pero t lo digo x aca tb xD...

mm naa broer... ya intente d todas las formas y sigue el mismo error :/

gracias en vdd x darle interes a mi caso... saludos!

talcual
06-09-2009, 10:55 PM
vamos a quedarnos por cristalab para poder seguir la conversacion saludos

DragoN
06-10-2009, 10:33 AM
cuando tengan la solución, por cualquier hilo que la estén siguiendo, seria bueno que la publiquen aquí para no dejar este incompleto.

sebas_burgos
06-13-2009, 09:05 PM
ya encontre la solucion xD
Se me ocurrio subir la web a un servidor para ver como se comportaba, y raramente no me salia el mensaje, es ahi donde recorde un post que lei mientras buscaba la solucion. Éste decia que exisitia una opcion en el XAMPP para activar los headers, lamentablemente no recuerdo ese post, no le tome importancia pero si lo encuentro lo posteo.

Gracias talcual por apoyarme xD
y disculpen por hacerlos perder el tiempo xD


atte.
sebas_burgos :p

talcual
06-15-2009, 03:21 AM
sebas publica la solucion que yo tbn la quiero saber porque probe varias veces y me funcionaron las cabeceras y las sessiones saludos