Foros del Web » Programando para Internet » PHP »

Variables de sesion PROBLEMA

Estas en el tema de Variables de sesion PROBLEMA en el foro de PHP en Foros del Web. Hola, He hecho los cambios en los scripts y verificado los parámetros de configuración de sesión en el php.ini y el tema de las cookies ...
  #1 (permalink)  
Antiguo 10/07/2003, 11:46
 
Fecha de Ingreso: mayo-2003
Mensajes: 125
Antigüedad: 14 años, 7 meses
Puntos: 0
Variables de sesion PROBLEMA

Hola,

He hecho los cambios en los scripts y verificado los parámetros de configuración de sesión en el php.ini y el tema de las cookies y francamente, no se lo que pasa.

1.- Script de control



PHP:--------------------------------------------------------------------------------
if (mysql_num_rows($queryresult) == 1)
{
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
$_SESSION["autentificado"]= "SI";
header ("Location: aplicacion.php");
exit();
}else {
//si no existe le mando otra vez a la portada
header("Location: index.php?errorusuario=si");
exit();
}

--------------------------------------------------------------------------------


2.- Preguntando por variable de sesión


PHP:--------------------------------------------------------------------------------
<?
//Inicio la sesión
session_start();
echo $_SESSION["autentificado"];
echo "Aqui estoy";

//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] == "SI") {
$entro = "SI";
}else
{
//si no existe, envio a la página de autentificacion
header("Location: index.php");
//ademas salgo de este script
exit();
}

?>
--------------------------------------------------------------------------------


3.- La parte correspondiente a sesión de mi php.ini. Como estoy en windows he jugado con el path.


PHP:--------------------------------------------------------------------------------
[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 = \tmp

; Whether to use cookies.
session.use_cookies = 1

; This option enables administrators to make their users invulnerable to
; attacks which involve passing session ids in URLs; defaults to 0.
; session.use_only_cookies = 1

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

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

; 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

; Define the probability that the 'garbage collection' process is started
; on every session initialization.
; The probability is calculated by using gc_probability/gc_dividend,
; e.g. 1/100 means 1%.

session.gc_probability = 1
session.gc_dividend = 1000

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

; PHP 4.2 and less have an undocumented feature/bug that allows you to
; to initialize a session variable in the global scope, albeit register_globals
; is disabled. PHP 4.3 and later will warn you, if this feature is used.
; You can disable the feature and the warning seperately. At this time,
; the warning is only displayed, if bug_compat_42 is enabled.

session.bug_compat_42 = 0
session.bug_compat_warn = 1

; Check HTTP Referer to invalidate externally stored URLs containing ids.
; HTTP_REFERER has to contain this substring for the session to be
; considered as valid.
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.
; or leave this empty to avoid sending anti-caching headers.
session.cache_limiter = nocache

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

; trans sid support is disabled by default.
; Use of trans sid may risk your users security.
; Use this option with caution.
; - User may send URL contains active session ID
; to other person via. email/irc/etc.
; - URL that contains active session ID may be stored
; in publically accessible computer.
; - User may access your site with the same session ID
; always using URL stored in browser's history or bookmarks.
session.use_trans_sid = 0

; The URL rewriter will look for URLs in a defined set of HTML tags.
; form/fieldset are special; if you include them here, the rewriter will
; add a hidden <input> field with the info which is otherwise appended
; to URLs. If you want XHTML conformity, remove the form entry.
; Note that all valid entries require a "=", even if no value follows.
url_rewriter.tags = " a=href,area=href,frame=src,input=src,form=fakeentr y"

--------------------------------------------------------------------------------


4.- Cookies ( en Internet Explorer 6.0.2600.0000 sobre XP )


PHP:--------------------------------------------------------------------------------
* Sobreescribir la administración automática de cookies (SI)
* Cookies de origen (Aceptar)
* Cookies de terceros (Aceptar)
* Aceptar siempre las cookies de sesión (SI)

--------------------------------------------------------------------------------



Espero encontrar el problema, ya no se que probar,

Gracias
__________________
Lailuluelo
El error está en lo obvio
  #2 (permalink)  
Antiguo 10/07/2003, 12:22
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 15 años, 11 meses
Puntos: 0
Yo le tengo de este modo.

[QUOTE]session.save_path = C:/php/sessions/

obviamente que debe existir ese directorio.

Saludos
  #3 (permalink)  
Antiguo 10/07/2003, 15:04
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

El session.save_path debe ser un directorio que exista. Si estas en windows, el formato es como pone biblio. Yo tengo

session.save_path = "c:\WINDOWS\temp"

Ahora, si usas un sistema operativo que maneje permisos en los directorios segun usuarios (no se si XP los usa), ese directorio debe tener permisos de escritura para el usuario de Apache o PHP, no me acuerdo (creo que depende de que si es modulo o cgi). Si es para tu entorno de desarrollo y puedes permitirte un poco de inseguridad en ese directorio, dale permisos de lectura y escritura para todo el mundo.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 15/07/2003, 02:27
 
Fecha de Ingreso: mayo-2003
Mensajes: 125
Antigüedad: 14 años, 7 meses
Puntos: 0
Desacuerdo No consigo controlar la sesión

Hola,

He cambiado todas las opciones posibles, con todas su variantes. Trabajo en Xp pero para otros scripts de subida de ficheros y demas no he tenido mayor problema con los permisos.

El código es exactamente el mismo, no he modificado nada.

El directorio donde deberia de guardar todo lo necesario respecto a la sesion es c:\temp_sesion

La seccion del Php.ini referente a sesiones es:

Código PHP:
[Session]
Handler used to store/retrieve data.
session.save_handler files

Argument passed to save_handler.  In the case of filesthis is the path
where data files are storedNoteWindows users have to change this 
variable in order to use PHP's session functions.
session.save_path = C:\temp_sesion
;session.save_path = \

; Whether to use cookies.
session.use_cookies = 0

; This option enables administrators to make their users invulnerable to 
; attacks which involve passing session ids in URLs; defaults to 0.
; session.use_only_cookies = 1

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

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

; 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 = /
session.cookie_path = C:\temp_sesion

; The domain for which the cookie is valid.
;session.cookie_domain = 
session.cookie_domain = http:\\localhost

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

; Define the probability that the '
garbage collection' process is started
; on every session initialization.
; The probability is calculated by using gc_probability/gc_dividend,
; e.g. 1/100 means 1%.

session.gc_probability = 1
session.gc_dividend    = 1000

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

; PHP 4.2 and less have an undocumented feature/bug that allows you to
; to initialize a session variable in the global scope, albeit register_globals
; is disabled.  PHP 4.3 and later will warn you, if this feature is used.
; You can disable the feature and the warning seperately. At this time,
; the warning is only displayed, if bug_compat_42 is enabled.

session.bug_compat_42 = 0
session.bug_compat_warn = 1

; Check HTTP Referer to invalidate externally stored URLs containing ids.
; HTTP_REFERER has to contain this substring for the session to be
; considered as valid.
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 = C:\temp_sesion

;session.entropy_length = 16

;session.entropy_file = /dev/urandom

; Set to {nocache,private,public,} to determine HTTP caching aspects.
; or leave this empty to avoid sending anti-caching headers.
session.cache_limiter = nocache

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

; trans sid support is disabled by default.
; Use of trans sid may risk your users security.
; Use this option with caution.
; - User may send URL contains active session ID
;   to other person via. email/irc/etc.
; - URL that contains active session ID may be stored
;   in publically accessible computer. 
; - User may access your site with the same session ID
;   always using URL stored in browser'
s history or bookmarks.
session.use_trans_sid 0

The URL rewriter will look for URLs in a defined set of HTML tags.
form/fieldset are special; if you include them herethe rewriter will
add a hidden <inputfield with the info which is otherwise appended
to URLs.  If you want XHTML conformityremove the form entry.
Note that all valid entries require "="even if no value follows.
url_rewriter.tags "a=href,area=href,frame=src,input=src,form=fakeentry" 
No se que hacer, me estoy desanimando. He utilizado las funciones que me proporciona php en la página donde deberia controlar si el usuario esta autenticado o no y me encuentro lo siguiente:

Código PHP:
<?
session_start
(); 
echo 
'La sesión actual es: '.session_id(); // Me devuelve el id de la sesion - CORRECTO 
echo session_is_registered(autentificado); // No me devuelve nada - CURIOSO
echo session_save_path(); // Me devuelve el path que he incluido en php.ini y es el CORRECTO
$sessStr session_encode();
echo 
$sessStr// No me devuelve nada - PREOCUPANTE

//Inicio la sesión 
/*session_start();
echo $_SESSION["autentificado"];
echo "Aqui estoy";*/

//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO 
/*
if ($_SESSION["autentificado"] != "SI")
{
    //si no existe, envio a la página de autentificacion 
    header("Location: index.php"); 
    //ademas salgo de este script 
    exit(); 
}*/

?>

¿Puede alguien enviarme un php.ini que haya sido instalado por el AppServer 1.9 y en el que funcionen las sesiones en XP?

Muchas gracias,
__________________
Lailuluelo
El error está en lo obvio

Última edición por lailuluelo; 15/07/2003 a las 04:24
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 01:46.