Foros del Web » Programando para Internet » PHP »

Iniciar Session ?

Estas en el tema de Iniciar Session ? en el foro de PHP en Foros del Web. hola a todos Estoy tratando de iniciar una sesion con session_start(); Solo tengo esto y me da un error. He buscado y encontré que tiene ...
  #1 (permalink)  
Antiguo 07/09/2006, 11:36
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 3 meses
Puntos: 15
Iniciar Session ?

hola a todos

Estoy tratando de iniciar una sesion con session_start();

Solo tengo esto y me da un error. He buscado y encontré que tiene que ver con espacios y lineas en blanco dentro del script. PERO ESTE SCRIPT NO TIENE NINGUN ESPACIO EN BLANCO.

el codigo completo es :

<html>
<head>
</head>
<body>
<?php
session_start();
?>
</body>
</html>

y el error que me da son:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/content/c/h/e/chefnelone2970/html/Sessions1.php:5) in /home/content/c/h/e/chefnelone2970/html/Sessions1.php on line 6

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/content/c/h/e/chefnelone2970/html/Sessions1.php:5) in /home/content/c/h/e/chefnelone2970/html/Sessions1.php on line 6
  #2 (permalink)  
Antiguo 07/09/2006, 11:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Estas equivocado, en cuanto el espacio en blanco, la sesion se tiene que inciar ANTES DE QUE CUALQUIER DATO SEA ENVIADO AL BROWSER, esto incluye HTML, es por eso que te falla tu "script" porque estas enviando <html><head></head><body> antes de enviar tu session_start(); es por eso que te tira el error
  #3 (permalink)  
Antiguo 07/09/2006, 11:52
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años
Puntos: 7
bueno yo lo tengo asi
<html>
<?php
////////////////////// MUESTRA LISTADO //////////////////////////////////////////////////
require('conect.php');
/////////////////////////////////////////////////////////////////////////////////////////
$consulta = "SELECT * FROM USUARIO INNER JOIN ALUMNO ON ALUMNO.ID_ALUMNO = USUARIO.ID_ALUMNO WHERE USUARIO ='".$_POST['USUARIO']."'";
//////////////////////////////////////////////////////////////////////////////////////////////////////
require('header_sql.php');

if ( $row = oci_fetch_array ($statement))
{
if ( $row['USUARIO'] == $_POST['USUARIO'] )
{
if ( $row['CONTRASENA'] == $_POST['CONTRASENA'] )
{
// echo 'si existe';
$apellido_mat = $row['USUARIO'];
session_start();
$_SESSION['ID_USUARIO'] = $row['ID_USUARIO'];
$_SESSION['USUARIO'] = $row['USUARIO'];
$_SESSION['CONTRASENA'] = $row['CONTRASENA'];
$_SESSION['ID_ALUMNO'] = $row['ID_ALUMNO'];
$_SESSION['ID_ANO'] = $row['ID_ANO'];
$_SESSION['ID_INSTITUCION'] = $row['ID_INSTITUCION'];
$_SESSION['ID_SEDE'] = $row['ID_SEDE'];
$_SESSION['ID_SEMESTRE'] = $row['ID_SEMESTRE'];
$_SESSION['ID_CURRICULUM'] = $row['ID_CURRICULUM'];
$_SESSION['ID_SECCION'] = $row['ID_SECCION'];
$_SESSION['JORNADA'] = $row['JORNADA'];
$_SESSION['ID_FLAG'] = $row['ID_FLAG'];
$_SESSION['ACTIVO'] = $row['ACTIVO'];



?>
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #4 (permalink)  
Antiguo 07/09/2006, 11:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No tiene espacios en blanco .. pero si que tienes todo ese montón de "HTML" antes de session_start().

El problema no es de "un espacio en blanco" o un "salto de línea" sino de "salida enviada al cliente" .. Como "salida" se considera todo lo que queda fuera de tu <? ... ?> .. puede ser algo en HTML, javascript .. o como ya conocese un simple espacio o salto de línea. Incluso depende si haces un "include()" por ejemplo donde llamas a otro código que este a su vez cumpla estos requisitos.

El mensaje de error dice exactamente donde tienes eas "cabeceras" enviadas:
output started at /home/content/c/h/e/chefnelone2970/html/Sessions1.php:5

Por otro lado .. así tal cual "usas" PHP es como si pensases en "incrustrar PHP entre mi HTML" .. Debes -abandonar- ese pensamiento y ver que PHP "genera" tu página HTML que el cliente (tu navegador) al final verá e interpretará su parte.

Si piensas como funciona PHP .. tu código debería quedar:

Código PHP:
<?php
session_start
();
?>
<html>
<head>
</head>
<body>
</body>
<?
// aquí ya pondrás tu resto de código PHP que tal vez genera una "salida" . .un echo "algo" .. o similar.
?>
</html>
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 07/09/2006, 11:54
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 FNX_NET Ver Mensaje
bueno yo lo tengo asi
<html>
<?php
////////////////////// MUESTRA LISTADO //////////////////////////////////////////////////
require('conect.php');
/////////////////////////////////////////////////////////////////////////////////////////
$consulta = "SELECT * FROM USUARIO INNER JOIN ALUMNO ON ALUMNO.ID_ALUMNO = USUARIO.ID_ALUMNO WHERE USUARIO ='".$_POST['USUARIO']."'";
//////////////////////////////////////////////////////////////////////////////////////////////////////
require('header_sql.php');

if ( $row = oci_fetch_array ($statement))
{
if ( $row['USUARIO'] == $_POST['USUARIO'] )
{
if ( $row['CONTRASENA'] == $_POST['CONTRASENA'] )
{
// echo 'si existe';
$apellido_mat = $row['USUARIO'];
session_start();
$_SESSION['ID_USUARIO'] = $row['ID_USUARIO'];
$_SESSION['USUARIO'] = $row['USUARIO'];
$_SESSION['CONTRASENA'] = $row['CONTRASENA'];
$_SESSION['ID_ALUMNO'] = $row['ID_ALUMNO'];
$_SESSION['ID_ANO'] = $row['ID_ANO'];
$_SESSION['ID_INSTITUCION'] = $row['ID_INSTITUCION'];
$_SESSION['ID_SEDE'] = $row['ID_SEDE'];
$_SESSION['ID_SEMESTRE'] = $row['ID_SEMESTRE'];
$_SESSION['ID_CURRICULUM'] = $row['ID_CURRICULUM'];
$_SESSION['ID_SECCION'] = $row['ID_SECCION'];
$_SESSION['JORNADA'] = $row['JORNADA'];
$_SESSION['ID_FLAG'] = $row['ID_FLAG'];
$_SESSION['ACTIVO'] = $row['ACTIVO'];



?>
Y .. ese <html> no te marca un error similar sobre cabeceras HTTP?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 07/09/2006, 11:54
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años
Puntos: 7
y en otra pagina para activar la sesion asi

</head>
<body background="../pruebas/images/shadow_bkgrd1.gif">
<p>
<?php
session_start();
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #7 (permalink)  
Antiguo 07/09/2006, 11:56
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años
Puntos: 7
Cita:
Iniciado por Cluster Ver Mensaje
Y .. ese <html> no te marca un error similar sobre cabeceras HTTP?

Un saludo,
nop y eso, que tengo que el php me muestre los errores y nada
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #8 (permalink)  
Antiguo 07/09/2006, 11:58
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 FNX_NET Ver Mensaje
y en otra pagina para activar la sesion asi

</head>
<body background="../pruebas/images/shadow_bkgrd1.gif">
<p>
<?php
session_start();
Insisto ..

Todo ese HTML por delante de session_start() no te ocasiona problemas?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 07/09/2006, 12:00
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 FNX_NET Ver Mensaje
nop y eso, que tengo que el php me muestre los errores y nada
Realmente no es correcto el uso que haces. Ahora, si usas el control del buffer de PHP por ahí podría ser que no te presente problemas ..pero no el lo "lógico" .. Creo que es necesario pensar en que se programa en PHP no en "HTML con incrustraciones de PHP" (por el tema de que PHP es quien genera la página no al reves).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 07/09/2006, 12:31
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 3 meses
Puntos: 15
gracias cluster. claro como el agua...
he puesto el codigo php antes de todo lo demas y funciona correctamente.

saludos
gracias
  #11 (permalink)  
Antiguo 07/09/2006, 12:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
@FNX_NET

Es probable que tengas activado el gz_output, o que estes usando ouput_buffering functions, con esto cualquier "salida" que envies, no se envia, mas bien se guarda en un cache hasta que todo el script ha terminado de procesarse, es por eso que puedes llamar session_start(); en cualquier lado, aunque no es su uso mas correcto.
  #12 (permalink)  
Antiguo 07/09/2006, 12:49
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años
Puntos: 7
bueno, aunque no m da drama, lo podre arriba xD
grax por sus sugerencias y conocimientos
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #13 (permalink)  
Antiguo 07/09/2006, 12:51
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 FNX_NET Ver Mensaje
bueno, aunque no m da drama, lo podre arriba xD
grax por sus sugerencias y conocimientos
Lo importate es "conocer" por qué a tí ahora te funcione y eres "feliz". Los dramas los tendrás cuando migres tu aplicación a otro servidor que no use esa gestión del buffer de salida de PHP y veas que tu aplicación que usa sesiones no funciona. Por eso .. siguiendo la "lógica" planteada .. no tendras problemas ni ahora en tu caso particular ni a futuro en otras situaciones (configuraciones de servidores).

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 10:04.