Foros del Web » Programando para Internet » PHP »

warning en sessiones

Estas en el tema de warning en sessiones en el foro de PHP en Foros del Web. tengo un sistema para iniciar sesión con login y contraseña y está hecho con sesiones. Funcionaba bien y un día sin más me sale este ...
  #1 (permalink)  
Antiguo 17/10/2006, 13:59
 
Fecha de Ingreso: septiembre-2006
Mensajes: 81
Antigüedad: 17 años, 7 meses
Puntos: 0
warning en sessiones

tengo un sistema para iniciar sesión con login y contraseña y está hecho con sesiones.
Funcionaba bien y un día sin más me sale este mensaje cuando quiero iniciar sesión

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/aposting/privat.php:13) in /home/aposting/privat.php on line 15

por si sirve.... cuando pones nombre de usuario y contraseña te envia a check.php quien comprueba si son correctos y si lo son te lleva a privat.php donde pone que hay error. El trozo de codigo de privat.php

<html>
<head>
<title>Privat</title>
<LINK REL="stylesheet" TYPE="text/css" HREF="estil.css">
</head>
<body>
<center>
<IFRAME src="dalt.html" width="610" height="240" scrolling="auto" frameborder="0">
Tu navegador no soporta los marcos en línea.
<A HREF="dalt.html">Haz clic aquí</A>
</IFRAME>
</center>
<strong>
<?php
session_start();
if($_SESSION['logged']!="si"){
header("Location: index.html");
exit;
}
else{
...+código

a ver si alguien me ayuda porque eso de que deje de funcionar de repente es un palo.
gracias
  #2 (permalink)  
Antiguo 17/10/2006, 14:23
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
No puede haber ninguna salida al explorador antes de session_start().
Coloca tu session_start() al comienzo de todo tu código.
Código PHP:
<?php
session_start
();
?>
<html>
<head>
<title>Privat</title>
<LINK REL="stylesheet" TYPE="text/css" HREF="estil.css">
</head>
<body>
Saludillos.
  #3 (permalink)  
Antiguo 17/10/2006, 14:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por jgar Ver Mensaje
tengo un sistema para iniciar sesión con login y contraseña y está hecho con sesiones.
Funcionaba bien y un día sin más me sale este mensaje cuando quiero iniciar sesión

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/aposting/privat.php:13) in /home/aposting/privat.php on line 15

por si sirve.... cuando pones nombre de usuario y contraseña te envia a check.php quien comprueba si son correctos y si lo son te lleva a privat.php donde pone que hay error. El trozo de codigo de privat.php

<html>
<head>
<title>Privat</title>
<LINK REL="stylesheet" TYPE="text/css" HREF="estil.css">
</head>
<body>
<center>
<IFRAME src="dalt.html" width="610" height="240" scrolling="auto" frameborder="0">
Tu navegador no soporta los marcos en línea.
<A HREF="dalt.html">Haz clic aquí</A>
</IFRAME>
</center>
<strong>
<?php
session_start();
if($_SESSION['logged']!="si"){
header("Location: index.html");
exit;
}
else{
...+código

a ver si alguien me ayuda porque eso de que deje de funcionar de repente es un palo.
gracias
El código que expones no tiene sentido .. Te explico:

El objetivo de tu validacíon en PHP es que si cumple esa condición tu redireccionas vía cabeceras HTTP (con header() de tipo Location) ... Para ee caso no te interesa para nada haber generado una página HTML con frames y demás .. Recuerda que PHP se ejecuta en el "servidor" y que las cabeceras HTTP se ejecutan -antes- de tu código HTML pueda llegar al cliente para que este interprete su parte.

Por eso .. debes cambiar el orden de tu validación y session_start()

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 15:19.