Foros del Web » Programando para Internet » PHP »

Sesiones En Php

Estas en el tema de Sesiones En Php en el foro de PHP en Foros del Web. Hola amigos, para pedirles su apoyo de como solucionar este pequeño inconveniente que tengo con mi script. Código PHP: <HTML> <HEAD> <TITLE> SESSION </TITLE> </HEAD> <BODY> <?php ...
  #1 (permalink)  
Antiguo 11/09/2005, 10:38
Avatar de atak  
Fecha de Ingreso: julio-2005
Ubicación: Huancayo
Mensajes: 490
Antigüedad: 18 años, 9 meses
Puntos: 5
Sesiones En Php

Hola amigos, para pedirles su apoyo de como solucionar este pequeño inconveniente que tengo con mi script.
Código PHP:
<HTML>
<HEAD>
<TITLE> SESSION </TITLE>
</HEAD>
<BODY>
<?php
echo "iniciaremos una session  <br>";
echo 
" comentario  ";
session_start();
echo 
"Esto es una   session iniciada .   ".session_id();
?>
</BODY>
</HTML>
ese script me muestra el ID de sesion pero con el siguiente mensaje de error:

Cita:
iniciaremos una session
comentario
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\server\prg02.php:6) in C:\server\prg02.php on line 9

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\server\prg02.php:6) in C:\server\prg02.php on line 9
Esto es una session iniciada . 002d5d5d96ccfc7f35b87c6789a8f505
=> una de las soluciones que hice fue:

Código PHP:
<?php
session_start
();
?>
<HTML>
<HEAD>
<TITLE> SESSION </TITLE>
</HEAD>
<BODY>
<?php
echo "iniciaremos una session  <br>";
echo 
" comentario  ";
echo 
"Esto es una   session iniciada .   ".session_id();
?>
</BODY>
</HTML>
bueno eso me funciona de maravilla ........ pero yo no quiero que esté el codigo de esa manera.

estube viendo en las FAQ's el siguiente codigo del AUTENTIFICATOR de cluster:

Código PHP:
    .......
    
// Paranoia: destruimos las variables login y password usadas
    
unset($login);
    unset (
$password);

    
// En este punto, el usuario ya esta validado.
    // Grabamos los datos del usuario en una sesion.
    
     // le damos un mobre a la sesion.
    
session_name($usuarios_sesion);
     
// incia sessiones
    
session_start();
    ........... 
este archivo funciona Ok pero el SESSION_START() lo tiene en medio del script total.



espero que quede claro mi duda

salu2
  #2 (permalink)  
Antiguo 11/09/2005, 10:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. pues así es como debe quedar el código .. como "no te gusta" ..

Recuerda que PHP es un lenguaje del "lado del servidor" .. este "pre-procesa" tus páginas que son entregadas al cliente y el resultado de esto es el cliente el que ejecuta su parte. (no sé si entendistes algo?).

El caso es que al usar session_Start() se están enviando cabeceras HTTP al cliente, tu "HTML" son "más cabeceras" .. No pueden enviarse más que una cabecera por petición .. por eso he de ahí el mensaje de error que obtienes.

No sé por qué quieres que te quede el "session_start()" "al medio" de tu script PHP con HTML por médio .. Pero deberías enfocar el tema a "como funciona PHP" en lugar de buscar "parches" como por ejemplo usando las funciones de control del buffer de PHP como ob_start() y afines. De esta forma (pensando en como funciona PHP .. y no en que estás haciendo páginas HTML con "incrustraciones" de PHP) podrás "ordenar" tu código para que en ninguna situación se produzcan envio de "Cabeceras" antes de tu session_start().

Cita:
este archivo funciona Ok pero el SESSION_START() lo tiene en medio del script total.
PD: .. el tema no es que esté al "médio" del script total . sino que -antes- de ese código NO HAY nada de HTML, ni un echo "algo" .. ni un espacio antes de <? .. ni un salto de línea antes de <? . ni al final de los posibles "include()" que se llamen en sus respectivos códigos ...

Un saludo,
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 10:24.