Foros del Web » Programando para Internet » PHP »

que quiere decir este error??

Estas en el tema de que quiere decir este error?? en el foro de PHP en Foros del Web. [22-Nov-2009 23:04:07] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\miweb\index.php:46) in C:\wamp\www\miweb\index.php on line 155 ...
  #1 (permalink)  
Antiguo 22/11/2009, 16:07
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 17 años, 1 mes
Puntos: 4
que quiere decir este error??

[22-Nov-2009 23:04:07] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\miweb\index.php:46) in C:\wamp\www\miweb\index.php on line 155

es possible que sea porque en una sola pagina tengo 2 session_start(); ???
  #2 (permalink)  
Antiguo 22/11/2009, 16:14
 
Fecha de Ingreso: septiembre-2009
Ubicación: Aguascalientes,Méx
Mensajes: 158
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: que quiere decir este error??

Oye para que usas 2? con una tienes y que sea al inicio claro
__________________
“Primero resuelve el problema. Entonces, escribe el código.”
  #3 (permalink)  
Antiguo 22/11/2009, 16:16
 
Fecha de Ingreso: noviembre-2009
Mensajes: 20
Antigüedad: 15 años
Puntos: 0
Respuesta: que quiere decir este error??

Si, una vez inciada la sesión, no se debe llamar a session_start() otra vez.

¿Por qué inicias sesión 2 veces? Si tienes un include dentro del fichero que te da error, es posible que llames a session_start() en los dos. Eso dará error.
  #4 (permalink)  
Antiguo 22/11/2009, 16:34
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: que quiere decir este error??

el problema es que no logro ver ninguna session_start(); solo logro ver una, la que estoy haciendo, ademas he provado haciendo una pagina sin nada de nada y poniendo una session_start();
<?php
session_start();
if (!isset($_SESSION["cuenta_paginas"])){
$_SESSION["cuenta_paginas"] = $_SESSION['MM_Username'];
}else{
$_SESSION["cuenta_paginas"] = $_SESSION['MM_Username'];
}
?>

<?php
echo "Hola !! " . $_SESSION["cuenta_paginas"] . " estas logeado";
?>


pero tambien me da el mismo error, pero si elimino la linea de session_start(); entonces no me sale error, pero entonces no me salen las variables que necessito.


Alguna sugerencia ????
  #5 (permalink)  
Antiguo 22/11/2009, 22:11
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: que quiere decir este error??

El session_start tiene que ir arriba de todo, antes de que comience el html y se envie texto a la pantalla... Y aparte de esto, una vez sola.

Código PHP:
<?php session_start(); ?>
<html....
__________________
Si aún lo llevas, dejalo...
Programador PHP argentina
  #6 (permalink)  
Antiguo 23/11/2009, 05:12
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: que quiere decir este error??

Muchas gracias por los aportes, solucionado...
  #7 (permalink)  
Antiguo 23/11/2009, 10:27
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: que quiere decir este error??

fuera bueno que pongas los cambios que has realizado habemos personas en este foro que somos mas nobatos en estos errores y no comprendemos bien las respuestas... Gracias...
  #8 (permalink)  
Antiguo 23/11/2009, 10:59
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: que quiere decir este error??

Lo he modificado asi, pero hize unas comprovaciones, per no funciona, lo comprove incorrectamente.
<div id="login">
<?php
if (!isset($_SESSION["sessionstart"])){
$_SESSION["sessionstart"] = $_SESSION['MM_Username'];
}


echo "Hola !! " . $_SESSION["sessionstart"];
if (!isset($_SESSION["sessionstart"])){
echo "<a href=http://www.miweb.es/login.php>Login</a>";}
?>
<a href="http://www.miweb.com/cerrar_session.html"> cerrar session</a>


</div>
el problema es que si hay session de usuario logeado, pararece el:

Hola!! Pepe Cerrar Session

pero si no hay session de usuario, sale lo siguiente:

Hola !! Login Cerrar Session

es decir el tema del logeo funciona correctamente, el problema es que cuando no hay session de usuario, se sigue viendo el div, y yo quiero que NO se vea

Última edición por jonysi_d; 23/11/2009 a las 11:08
  #9 (permalink)  
Antiguo 23/11/2009, 11:12
Avatar de dannce4life  
Fecha de Ingreso: junio-2008
Ubicación: localhost
Mensajes: 137
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: que quiere decir este error??

Jaja, en otro post, te había dicho que las sesiones se declaran siempre antes del html
__________________
Gracias
  #10 (permalink)  
Antiguo 23/11/2009, 11:17
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: que quiere decir este error??

antes del html, porsupuesto que tengo el

<?php session_start(); ?>

pero donde yo quiero que haya el div en el body tengo lo siguiente:

<div id="login">
<?php
if (!isset($_SESSION["sessionstart"])){
$_SESSION["sessionstart"] = $_SESSION['MM_Username'];
}


echo "Hola !! " . $_SESSION["sessionstart"];
if (!isset($_SESSION["sessionstart"])){
echo "<a href=http://www.miweb.es/login.php>Login</a>";}
?>
<a href="http://www.miweb.com/cerrar_session.html"> cerrar session</a>


</div>

Si has leído bien mi anterior mensaje, puse que el problema que tenia de las sessión, lo tengo solucionado, asi que no creo tenga nada que ver con el start_session(), si no estoy equivocado imagino que es problema de if ¿¿¿¿ ????

espero no te rías de mi básico conocimiento

Gracias

Última edición por jonysi_d; 23/11/2009 a las 11:23
  #11 (permalink)  
Antiguo 23/11/2009, 11:24
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 8 meses
Puntos: 77
Respuesta: que quiere decir este error??

Pon el div _despues_ de comprobar si no existe la sesion :/
  #12 (permalink)  
Antiguo 23/11/2009, 11:32
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: que quiere decir este error??

Lo he provado asi, per no me funciona tampoco, sale error en la linea <div id="login">:

<?php
if (!isset($_SESSION["sessionstart"])){
$_SESSION["sessionstart"] = $_SESSION['MM_Username'];
}
<div id="login">

echo "Hola !! " . $_SESSION["sessionstart"];
if (!isset($_SESSION["sessionstart"])){
echo "<a href=http://www.miweb.es/login.php>Login</a>";}
?> <a href="http://www.forosdelweb.com/f18/cerrar-session.php"> cerrar session</a>


</div>

Lo he provado asi tambien, pero tampoco funciona, sale error en la linea del echo "<div id.....":


<?php
if (!isset($_SESSION["sessionstart"])){
$_SESSION["sessionstart"] = $_SESSION['MM_Username'];
}


echo "<div id="login"> Hola !! " . $_SESSION["sessionstart"];
if (!isset($_SESSION["sessionstart"])){
echo "<a href=http://www.jdwake.es/login.php>Login</a>";}
?> <a href="http://www.forosdelweb.com/f18/cerrar-session.php"> cerrar session</a>


</div>
  #13 (permalink)  
Antiguo 23/11/2009, 11:35
Avatar de dannce4life  
Fecha de Ingreso: junio-2008
Ubicación: localhost
Mensajes: 137
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: que quiere decir este error??

bueno, a ver. te pongo los siguientes ejemplos para que puedas entender algo

Primero: index.php
Código php:
Ver original
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Página principal</title>
  5. </head>
  6. <body>
  7. <?
  8. if(!$_SESSION['acceso']) exit('<script tyle="text/javascript"> window.location.href="login.php"; </script>');
  9. else
  10. {
  11.     print 'Hola '. $_SESSION['MM_Username'] .'<br />';
  12.     print '<a href="cerrar_sesion.php">Cerrar Sesión</a>';
  13. }
  14. ?>
  15. </body>
  16. </html>

Segundo: login.php
Código php:
Ver original
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Inicial Sesión</title>
  5. </head>
  6. <body>
  7. <?
  8. if($_POST['boton']):
  9.  
  10.     if(empty($_POST['MM_Username'])) exit('Debes escribir el usuario');
  11.     $_POST['MM_Username'] = $_SESSION['MM_Username'];
  12.     $_SESSION['acceso'] = true;
  13.     print '<script tyle="text/javascript"> window.location.href="index.php"; </script>';
  14.    
  15. else:
  16. ?>
  17. <form action="" method="post">
  18.     <input name="MM_Username" type="text" />
  19.     <input name="boton" type="submit" value="Iniciar Sesión" />
  20. </form>
  21. <? endif; ?>
  22. </body>
  23. </html>

Tercero: cerrar_sesion.php
Código php:
Ver original
  1. <?
  2. header('location: login.php');
  3. ?>

Tan sencillo como eso. Depende de vos querer aprender. Y tener ganas de aprender porque entre tantas consultas al foro, terminamos nosotros, haciendo tus programas.

esta es la última ayuda que yo te doy si veo que no me demostrás tu interés en el saber.

Un saludo.
__________________
Gracias
  #14 (permalink)  
Antiguo 23/11/2009, 11:37
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 8 meses
Puntos: 77
Respuesta: que quiere decir este error??

(en realidad era despues del otro if)
Y coloca la cadena <div id="login".. dentro de comillas simples, o escapa con \ las comillas que esta contiene
  #15 (permalink)  
Antiguo 24/11/2009, 06:24
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: que quiere decir este error??

voy a hacer unas pruebas. gracias por la ayuda
  #16 (permalink)  
Antiguo 25/11/2009, 16:13
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: que quiere decir este error??

, gracias por vuestra ayuda y el querer que nos esforcemos y aprendamos practicando......

Me funciona perfectamente la session en cada pagina cuando esta el usuario logeado y cuando no lo esta tambien, pero hay un pequeño detalle que no he podido solucionar. La teoria de este codigo es que cuando no hay session, solo aparezca el echo "<a href=http://www.miweb.es/login.php> › Login</a>";} pero en relida salen los 2 echos del script, porque ??? en teoria se interpreta que si hay sesion aparezca un echo pero si no hay sesion aparezca el otro. No es asi ???


<div id="login">


<?php
if (isset($_SESSION["sessionstart"])){
$_SESSION["sessionstart"] = $_SESSION['MM_Username'];
}


echo " Hola!! " . $_SESSION["sessionstart"] . "<a href="http://www.miweb.es/f18/cerrar-session.php"> › cerrar session</a>";
if (!isset($_SESSION["sessionstart"])){
echo "<a href=http://www.miweb.es/login.php> › Login</a>";}
?> </div>

Última edición por jonysi_d; 25/11/2009 a las 16:30
  #17 (permalink)  
Antiguo 25/11/2009, 16:22
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: que quiere decir este error??

Si, ya te lo mencionaron anteriormente, necesitas escapar las comillas dobles anteponiendoles una diagonal invertida \ de lo contrario se cierra la cadena.

Mal: "Esta cadena tiene "comillas dobles" sin escapar"
Bien: "Esta cadena tiene \"comillas dobles\" escapadas"

Mal: 'Esta cadena tiene 'comilas sencillas' sin escapar'
Bien: 'Esta cadena tiene \'comillas sencillas\' escapadas'
__________________
- León, Guanajuato
- GV-Foto
  #18 (permalink)  
Antiguo 25/11/2009, 17:06
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: que quiere decir este error??

haver si me aclaro , espero me disculpen, es la primera vez que utilizo la "\" y no he visto en ningun tutorial.

Creo que entendi, el problema es que utilizava las mismas comillas dobles para una misma orden :
"<a href='../cerrar-session.php'> › cerrar session</a>"

creo que asi es correcto y no es necesario poner la "\" para escapar ¿¿ no es asi ???

El problema es que siguen sin solucionarme el problema:

<?php
if (isset($_SESSION["sessionstart"])){
$_SESSION["sessionstart"] = $_SESSION['MM_Username'];
}


echo " Hola!! " . $_SESSION["sessionstart"] . "<a href='../cerrar-session.php'> › cerrar session</a>";
if (!isset($_SESSION["sessionstart"])){
echo "<a href=http://www.miweb.es/login.php> › Login</a>";}
?>


Es decir si nop hay session, sigue apareciendo el " Holla !! Cerrar Session Login" me aparece todo

Tampoco funciona:

<?php
if (isset($_SESSION["sessionstart"])){
$_SESSION["sessionstart"] = $_SESSION['MM_Username'];

echo " Hola!! " . $_SESSION["sessionstart"];
}

if (!isset($_SESSION["sessionstart"])){
$_SESSION["sessionstart"] = false;
echo "<a href=http://www.miweb.es/login.php> › Login</a>";}
?> <a href='../cerrar-session.php'> › cerrar session</a>

Última edición por jonysi_d; 25/11/2009 a las 17:40
  #19 (permalink)  
Antiguo 25/11/2009, 19:30
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: que quiere decir este error??

Te complicas demasiado las cosas todo es cuestion solo de logica:

Código php:
Ver original
  1. if(SESION INICIADA) {
  2.     // Si necesitas asignar algunas variables aqui lo haces.
  3.     echo 'Hola usuario';
  4.     echo 'Aqui el enlace para cerrar sesion';
  5. } else {
  6.     // Igual si necesitas asignar (o eliminar variables) aqui.
  7.     echo 'No has iniciado sesion';
  8.     echo 'Aqui el enlace para iniciar sesion';
  9. }

En cuanto a las comillas, me parece raro que no hayas visto/leido como escapar caracteres y creo que te serviria leer el aporte de pateketrueke acerca de como usar las comillas bien.
__________________
- León, Guanajuato
- GV-Foto
  #20 (permalink)  
Antiguo 25/11/2009, 19:33
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 11 meses
Puntos: 20
Respuesta: que quiere decir este error??

para mi el problema esta en el php.ini

hay una parte donde dice session. bueno siempre que se instala el php esta en 1, eso que esta automatico la session start, tenes que ponerla en cero (0)
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 21:46.