Foros del Web » Programando para Internet » PHP »

URGENTE Configurar PHP.INI para $_SESSION

Estas en el tema de URGENTE Configurar PHP.INI para $_SESSION en el foro de PHP en Foros del Web. hola que tal amigos, tengo este problemita con las variables de session, se pasan los valores y todo fino, pero con el detalle de que ...
  #1 (permalink)  
Antiguo 24/02/2004, 07:31
 
Fecha de Ingreso: enero-2004
Ubicación: This Planet
Mensajes: 46
Antigüedad: 13 años, 11 meses
Puntos: 0
URGENTE Configurar PHP.INI para $_SESSION

hola que tal amigos, tengo este problemita con las variables de session,
se pasan los valores y todo fino, pero con el detalle de que cada vez que utilizo session_start() en cada pagina que utiliza las variables de session, me arroja estos warning:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at C:\Apache Server\Apache2\htdocs\SATWEB\Estudiante\Est_panelP rincipal.htm:86) in C:\Apache Server\Apache2\htdocs\SATWEB\Estudiante\Est_panelP rincipal.htm on line 127

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\Apache Server\Apache2\htdocs\SATWEB\Estudiante\Est_panelP rincipal.htm:86) in C:\Apache Server\Apache2\htdocs\SATWEB\Estudiante\Est_panelP rincipal.htm on line 127

si pueden ayudarme, les agradeceria mucho.

esto es urgente

no estoy utilizando cookies, aqui les paso tambien la configuracion de session de mi php.ini:

[Session]
session.save_handler = files

session.save_path = "C:/temp"

session.use_cookies = 1

; session.use_only_cookies = 1

session.name = PHPSESSID

session.auto_start = 0

session.cookie_lifetime = 0

session.cookie_path = /

session.cookie_domain =

session.serialize_handler = php

session.gc_probability = 1
session.gc_divisor = 1000

session.gc_maxlifetime = 1440

session.bug_compat_42 = 0
session.bug_compat_warn = 1

session.referer_check =

session.entropy_length = 0

session.entropy_file =

;session.entropy_length = 16

;session.entropy_file = /dev/urandom

session.cache_expire = 180
session.use_trans_sid = 1

diganme si estan bien los valores o si debo cambiar algo, no quiero utilizar cookies solo las variable
__________________
:cool: Hagas lo que hagas, que sea eficiente :arriba:
  #2 (permalink)  
Antiguo 24/02/2004, 07:37
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,
Cita:
session.use_cookies = 1
Pues con este valor usa cookies siempre que pueda. Cambialo a 0. Tienes una descripcion de todas las directivas en www.php.net/session

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 24/02/2004, 07:41
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Por cierto, eso solucionaria lo de la cookie. Pero las sesiones tambien mandan otras cabeceras HTTP: cache_limiter y cache_expire. Asi que lo mejor es tratar session_start() como si fuese un header(): sin mandar salida antes.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 24/02/2004, 12:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El problema mas bien no es de configuración (que, si .. es cierto que con los ajustes que comenta Josemi irá mejor para ciertas cosas ..)

Cuando se inicia el uso de sesiones con: session_start() NO puede existir nada de HTML por encima de esta.

En el mensaje de error dice que:

C:\Apache Server\Apache2\htdocs\SATWEB\Estudiante\Est_panelP rincipal.htm:86

Linea 86 de ese Est_panelPrincipal ya estás enviando alguna cabecera al navegador ..sea HTML .. o por un echo "algo" .. y/o hasta un simple espacio o salto de línea antes de <? o despues de ?> si usas alguna llamada a otro archivo por un include() o similar.

La solución pasa por estructura tu programación teniendo en cuenta que PHP se ejecuta primero en el servidor y compone la página que será entregada al cliente .. así que si tienes proceso "PHP" y luego HTML que mostrar .. pon ahí arriba la llamada a session_start() ..

Un saludo,

PD: hay otras soluciones como controlar el buffer de salida de PHP, pero .. si re-ordenas tu código no te hace falta usarlas ademas de que entenderás como funciona PHP y quien manda en esos casos.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 25/02/2004, 17:44
 
Fecha de Ingreso: enero-2004
Ubicación: This Planet
Mensajes: 46
Antigüedad: 13 años, 11 meses
Puntos: 0
bien me sirvio lo que me dieron gracias

pero tengo otra duda, debo utilizar el session_start() en cada pagina que abra o solo con una vez al inicio de la pagina principal, porque el detalle es que se crean un monton de archivos de variables de session

que se hace en esos casos.. porque siempre me esta arrojando es este error

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\Apache Server\Apache2\htdocs\SATWEB\PregResp\Examen5.htm: 86) in
..\\pagina.htm on line 125
__________________
:cool: Hagas lo que hagas, que sea eficiente :arriba:

Última edición por david-SM; 25/02/2004 a las 17:47
  #6 (permalink)  
Antiguo 25/02/2004, 18:11
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Lo que te está sucediendo es lo que comenta Cluster, NO se debe iniciar la sesión o tratar de escribir en ella cuando los datos de la página han comenzado a fluir hacia el navegador.

Te pongo algunos ejemplos de los que NO se debe hacer...


1.- HTML antes de la session:
============================
<html>
<head>
<title>Mi Página</title>
</head>
<?php
session_start();
?>
==============================



2.- Lineas en blanco antes de comenzar php
==============================


<?php
session_start();
?>
==============================



3.- Echo o print (o sus variantes) antes de la sesión:
==============================
<?php
echo "Hola!";
session_start();
?>
==============================



4.- Errores que arrojen Warnings al navegador
==============================
<?php
$variable="Nota que no cierro con punto y coma"
session_start();
?>
==============================


Todos esos casos terminarán en errores como el que tienes ahora.

Te recomiendo revisar tu código en busca de cosas similares (toma en cuenta que archivos incluidos antes de la session pueden caer en cualquiera de estos errores también)

__________________
Manoloweb
  #7 (permalink)  
Antiguo 27/02/2004, 12:35
 
Fecha de Ingreso: enero-2004
Ubicación: This Planet
Mensajes: 46
Antigüedad: 13 años, 11 meses
Puntos: 0
DUDA

Bien muchas gracias, ya movi el codigo <php> al principio de mi pagina y todo funciona bien

ahora me surge la duda, la unica forma como funcionan las variables de session en mi maquina es cambiandole el valor a session_cookie = 1

aunque despues la vuelva a colocar en 0 pero si no hago eso a cuando deseo probar por primera vez la variable no pasan por las paginas, se crean en el directorio asignado pero no se pueden ver

eso por que sera?
__________________
:cool: Hagas lo que hagas, que sea eficiente :arriba:
  #8 (permalink)  
Antiguo 27/02/2004, 14:48
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Dejale el valor de Use Cookies, realmente el valor que OBLIGA al uso de cookies (y solo cookies) es el que se llama use_only_cookies

Puedes dejarlo como te funciona que no habrá problemas.

__________________
Manoloweb
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:38.