Foros del Web » Programando para Internet » PHP »

Sesiones

Estas en el tema de Sesiones en el foro de PHP en Foros del Web. Wenas! Aki tamos de nuevo, tengo 1 problemilla con las sesiones: YO pongo lo siguiente: Código PHP: function  Sesiones (){    session_start ();                 // Inicializa la sesion, si ya esta inicializada no pasa nada    ...
  #1 (permalink)  
Antiguo 13/09/2003, 12:22
 
Fecha de Ingreso: agosto-2003
Ubicación: Zaragoza
Mensajes: 12
Antigüedad: 20 años, 8 meses
Puntos: 0
Exclamación Sesiones

Wenas!
Aki tamos de nuevo, tengo 1 problemilla con las sesiones:
YO pongo lo siguiente:
Código PHP:
function Sesiones(){
  
session_start();                // Inicializa la sesion, si ya esta inicializada no pasa nada
  
if(!session_is_registered("Login")){ // Si no se ha hecho un Login, entonces se pasan los permisos de "Usuario"
       
$link=ConectarBD();
       
$sql "SELECT * FROM Perfil where Perfil = 1";// Si no se ha hecho login, se coge los permisos de Usuario (codigo 1)
       
$result mysql_query($sql,$link);
       
$row mysql_fetch_array($result);
       
session_register("SPermisos");// Registro la variable Permisos
       
$HTTP_SESSIONS_VARS["SPermisos"]=$row["Permisos"]; // inserto los datos del permiso
       
mysql_close($link);
  }

Con esto pretendo hacer que si no se ha registrado en la página se le carguen los datos del perfil "Usuario", pero cuando lo ejecuto, llamando la función desde otra página, me pone lo siguiente:


Warning: Cannot send session cookie - headers already sent by (output started at c:\www\infopiee.com\actividades.php:6) in c:\www\infopiee.com\inc\OperacionesBD.php on line 192


cuya línea 192 es session_start();

y

Warning: Cannot send session cache limiter - headers already sent (output started at c:\www\infopiee.com\actividades.php:6) in c:\www\infopiee.com\inc\OperacionesBD.php on line 192

¿Cual es la solución?.
ah! my php.ini en lo que se refiere a sessions lo tengo de la siguiente forma:

[Session]
; Handler used to store/retrieve data.
session.save_handler = files

; Argument passed to save_handler. In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use PHP's session functions.
session.save_path = c:\apache\tmp

; Whether to use cookies.
session.use_cookies = 1


; Name of the session (used as cookie name).
session.name = PHPSESSID

; Initialize session on request startup.
session.auto_start = 0

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0

; The path for which the cookie is valid.
session.cookie_path = /

; The domain for which the cookie is valid.
session.cookie_domain =

; Handler used to serialize data. php is the standard serializer of PHP.
session.serialize_handler = php

; Percentual probability that the 'garbage collection' process is started
; on every session initialization.
session.gc_probability = 1

; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
session.gc_maxlifetime = 1440

; Check HTTP Referer to invalidate externally stored URLs containing ids.
session.referer_check =

; How many bytes to read from the file.
session.entropy_length = 0

; Specified here to create the session id.
session.entropy_file =

;session.entropy_length = 16

;session.entropy_file = /dev/urandom

; Set to {nocache,private,public} to determine HTTP caching aspects.
session.cache_limiter = nocache

; Document expires after n minutes.
session.cache_expire = 180

; use transient sid support if enabled by compiling with --enable-trans-sid.
session.use_trans_sid = 1

url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeent ry"

[MSSQL]

Gracias!

Salu2
  #2 (permalink)  
Antiguo 13/09/2003, 12:37
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años
Puntos: 1
no estoy demasiado ducho en sesiones, pero me parece
que cuando trabasjas con el arry $HTTP_SESSIONS_VARS
$_SESSION no puedes trabajar con sesion_register(),
o session_is_registered(), tienes de trabajar con el array,
$HTTP_SESSIONS_VARS[] o $_SESSION[] en funcion de la
version del php,

osease , tendrias de poner

[PHP]
if(!session_is_registered("Login")){

if(!$_SESSION['Login']){

//y

session_register("SPermisos");//

//cambiarlo a eliminando session_register("SPermisos");//


$_SESSIONS["SPermisos"]=$row["Permisos"];

//o bien

/ya te digo en funcion de la version del php


$HTTP_SESSIONS_VARS["SPermisos"]=$row["Permisos"];


a ver si te sirve,

un saludo
  #3 (permalink)  
Antiguo 16/09/2003, 02:29
 
Fecha de Ingreso: agosto-2003
Ubicación: Zaragoza
Mensajes: 12
Antigüedad: 20 años, 8 meses
Puntos: 0
Exclamación

Agradezco la apreciación, trabajo con PHP 4.2 pero el mayor problema es que el fallo me lo da en session_start();

Warning: Cannot send session cookie - headers already sent by (output started at c:\www\infopiee.com\actividades.php:6)

Warning: Cannot send session cache limiter - headers already sent (output started at c:\www\infopiee.com\actividades.php:6)

es decir, he quitado todo el código y sólo he puesto session_start(); y me da el mismo fallo.

¿Que hago?

Salu2
  #4 (permalink)  
Antiguo 16/09/2003, 03:21
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años
Puntos: 1
Bueno ya te decia que no estoy muy ducho en sesiones pero
me parece que cuando se hace session_start() no puede haber ninguna salida y lo que te dice es que tienes una salida,


llamas a la funcion despues de alguna salida, intentala llamar antes.
  #5 (permalink)  
Antiguo 16/09/2003, 03:25
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años
Puntos: 1
disculpa, ahora que lo miro bien, te dice que hay una salida en
c:\www\infopiee.com\inc\OperacionesBD.php on line 192

puede ser que en archivo operaciones te quede algun espacio,
salto de linea o algo despues del tag de cierre ?>, mira bien esto
puede andar por ahi el problema

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 15:00.