Foros del Web » Programando para Internet » PHP »

Problemas con session_start()

Estas en el tema de Problemas con session_start() en el foro de PHP en Foros del Web. Hola: llevo dos dias intentando solucionar el erro que me da y por mucho que miro no veo nada. He probado muchas cosas y sigue ...
  #1 (permalink)  
Antiguo 20/05/2010, 05:34
Avatar de carballona21  
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 13 años, 11 meses
Puntos: 0
Problemas con session_start()

Hola:
llevo dos dias intentando solucionar el erro que me da y por mucho que miro no veo nada. He probado muchas cosas y sigue dandome el siguiente error.

conssite en a traves de un registro de usuario con su contraseña, mire en un archivo a ver si existe, si existe le permite ir a los menus y si no vuelve a la pagina de inicio.
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\practica\sesionusu.php:1) in C:\xampp\htdocs\practica\sesionusu.php on line 2


Os pongo el codigo para que veais con va.
  • Index.php
<!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=iso-8859-1" />
<title>bienvenida</title>
<style type="text/css">
<!--
@import url("colors6.css");
-->
</style>
</head>
<body>
<h2>Bienvenido </h2>
<p>&nbsp;</p>
<p>&nbsp;</p>
*</p>
<form id="form2" name="form2" method="post" action="sesionusu.php">
<table width="344" border="1" align="center">
<tr>
<td width="164"><div align="center">Usuario</div></td>
<td width="164"><input type="text" name="usuario" /></td>
</tr>
<tr>
<td><div align="center">Password</div></td>
<td><input type="password" name="clave" /></td>
</tr>
</table>
<p align="center">
<input name="Submit" type="submit" tabindex="10" value="Enviar" />
</p>
<p align="center">&nbsp;</p>
</form>
</body>
</html>
  • sesionusu.php
[INDENT <?php
session_start();
ob_end_clean();
if (file_exists('usuario.txt')){
$lines = file('usuario.txt');
foreach ($lines as $line_num => $line)
{
$datos = explode("#", $line);
if ($datos[0] == $_POST["usuario"] && $datos[1] == $_POST["clave"])
{
$_SESSION["usuario"]=$_POST["usuario"];
include("menu.php");
session_id("usuario");
$encontrado= true;
break;
}
}
if (!$encontrado)
{
Unset ($_SESSION["usuario"]);
include("Bienvenida.php");
}
}
else
include("Bienvenida.php");
?>[/INDENT]
  #2 (permalink)  
Antiguo 20/05/2010, 06:31
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Problemas con session_start()

Hola

Lee este articulo

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 20/05/2010, 06:37
Avatar de carballona21  
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Problemas con session_start()

He leido el post y sigo igual no se que hacer
  #4 (permalink)  
Antiguo 20/05/2010, 11:29
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Problemas con session_start()

Estas al parecer haciendo un include y en ese archivo que está en el include tienes declarado algún header o session_start y está provocando un error ya que el include lo que hace es añadir la página que estés llamando a la página que la está llamando y se trata como una. Debes pensar como si todo fuera una sola página. Por lo tanto debes colocar todo lo que modifique el header antes de todo código.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 20/05/2010, 15:42
Avatar de carballona21  
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Problemas con session_start()

En parte tenias razon porque en menu.php tenia puesto un session_start(), lo he quitado y me sigue saliendo el mismo error y ya no se como solucionarlo te pongo todo el codigo a continuación.
  • Index.php
    <?php
    session_start();
    ?>
    <!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=iso-8859-1" />
    <title>bienvenida</title>
    <style type="text/css">
    <!--
    @import url("colors6.css");
    -->
    </style>
    </head>
    <body>
    <h2>Bienvenido </h2>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    *</p>
    <form id="form1" name="form1" method="post" action="sesionusu.php">
    <table width="344" border="1" align="center">
    <tr>
    <td width="164"><div align="center">Usuario</div></td>
    <td width="164"><input type="text" name="usuario" /></td>
    </tr>
    <tr>
    <td><div align="center">Password</div></td>
    <td><input type="password" name="clave" /></td>
    </tr>
    </table>
    <p align="center">
    <input name="Submit" type="submit" tabindex="10" value="Enviar" />
    </p>
    <p align="center">&nbsp;</p>
    </form>
    </body>
    </html>
  • sesionusu.php
    <?php
    session_start();
    if (file_exists('usuario.txt')){
    $lines = file('usuario.txt');
    foreach ($lines as $line_num => $line)
    {
    $datos = explode("#", $line);
    if ($datos[0] == $_POST["usuario"] && $datos[1] == $_POST["clave"])
    {
    session_register("nombre");
    session_id($_POST["usuario"]);
    $_SESSION["usuario"]=$_POST["usuario"];
    include("menu.php");
    $encontrado= true;
    break;
    }
    }
    if (!$encontrado)
    {
    Unset ($_SESSION["usuario"]);
    include("Error.php");
    }
    }
    else
    include("Error.php");
    ?>
  • menu.php
    <!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=iso-8859-1" />
    <title>Menu</title>
    </head>
    <?php
    echo "Bienvenid@: ", session_id("usuario");
    echo "Bienvenid@: ", $_SESSION["usuario"];
    include("crear_my.php");
    ?>
    <body>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <table width="302" border="1" align="center">
    <tr>
    <td><div align="center"><a href="copiaseguridad.php">Realizar copia de Seguridad </a></div></td>
    </tr>
    <tr>
    <td><div align="center"><a href="restaurar.php">Restaurar copia de Seguridad</a> </div></td>
    </tr>
    <tr>
    <td><div align="center"><a href="listado.php">Listado de coches ordenado por matricula </a></div></td>
    </tr>
    <tr>
    <td><div align="center"><a href="anadir.php">Añadir coche </a></div></td>
    </tr>
    <tr>
    <td><div align="center"><a href="modificar.php">Modificar </a></div></td>
    </tr>
    <tr>
    <td><div align="center"><a href="eliminar.php">Eliminar </a></div></td>
    </tr>
    <tr>
    <td><div align="center"><a href="consultamatricula.php">Consultar por Matricula</a> </div></td>
    </tr>
    <tr>
    <td><div align="center"><a href="consultamodelo.php">Consultar por Modelo </a></div></td>
    </tr>
    <tr>
    <td><div align="center"><a href="despedida.php">Salir</a></div></td>
    </tr>
    </table>

    </body>
    </html>

El mensaje que me sale es:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\practica\sesionusu.php:1) in C:\xampp\htdocs\practica\sesionusu.php on line 2
  #6 (permalink)  
Antiguo 20/05/2010, 15:54
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Problemas con session_start()

Lee esto http://www.forosdelweb.com/wiki/PHP:...lready_sent%3F
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 20/05/2010, 16:05
Avatar de carballona21  
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Problemas con session_start()

Muchas gracias por contestarme el error ese ya le he solucionado de la siguiente manera:
desde la pagina de inicio voy a otra pagina que la llamo menu y tiene el siguiente codigo.
<?php
session_start();
include ("usu.php");
if (!$encontrado)
{
Unset ($_SESSION["usuario"]);
include("Error.php");}
else
include ("menu1.php");
?>
Y el menu1.php es el menu de mi pagina.
Ahora lo que me pasa es que desde el menu voy a cualquira de las paginas que estas enlazadas y no me deja es como si me perdiera la sesion y no se como solucinarlo.
Gracias de ante mano

Etiquetas: Ninguno
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 14:20.