Ver Mensaje Individual
  #6 (permalink)  
Antiguo 25/07/2004, 11:10
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
1) Cuando comienza una sesion??? Vi q usan session_start() al setear una variable, no me queda claro si es necesario llamar la funcion para comenzar la sesion.
El inicio de sesiones se indica con esa función: session_start() .. es insprescindible que la uses siempre que pretengas acceder a una variable de sesión (sea para "registrarla" o para leerla/modificar su valor).

Cita:
2) Lei q no recomiendan utilizar variables de sesion, q no son seguras (tu mismo lo dijiste), por lo q desde versiones pasadas en adelante register_globals tiene el valor predeterminado off. Cual es el peligro??? Q diferencia hay entre decir session_register('variable') y $_SESSION["variable"]???
No, .. no dije (y si lo dije fué un "lapsus") que variables de sesiones no son seguras (más bien las cookies por qué son alterables los valores que contienen al estar en el "cliente" .. no como una sesión que permaneces sus datos en el servidor).

Lo que dije que no es recomendable es usar session_register() para registrar una variable de sesión .. por qué así puedes acceder a su valor por: $nombre_variable (definiendola como session_register("nombre_variable") ; $nombre_variable='valor';

Si no discriminas el método o médio que llega una variable a un script PHP (externa) podrías suplantar el valor de una variable de sesión. Ejemplo .. en el manual sobre sesiones que hay en desarrolloweb.com (link que dejó lado2mx) definen una variable de sesión tipo: $autentificado="SI" y la registran en la sesión con session_register('autentificado') .. Si yo llego y hago tu_script.php?autentificado=SI con register_globals a ON .. voy a pasar toda tu validación (if ($autentificado=="SI") .. directo .. por qué tu script NUNCA supo si la variable que debía ver su valor era del "método" GET ,... o POST .. o era una cookie .. o una sesión o cualquier otra cosa.

Cita:
3)Cual es la diferencia entre una matriz asociativa global como $HTTP_SESSION_VARS[] y una matriz superglobal como $_SESSION???
$_SESSION son arrays superglobales .. eso significa que bajo una función podrías acceder al valor de esta sin tener que declararla como globales (GLOBAL) .. El uso de $HTTP_XXX_VARS no recuerdo como se comporta con register_globals a OFF (pero creo que no son accesibles y por lo menos en PHP 5 por ejemplo hay que especificar que quieres usarlos .. por qué por defecto no son registradas para su uso: sólo los arrays superglobales).

---------

Hay un tema que te estás "olvidando" .. el "SID" (Identificador único de sesión) y que es parte fundamental de las sesiones. Ese "SID" es el nexo entre los datos que se almacenan en el servidor y el cliente que las creó y puede accederlas. Ese "SID" se ha de propagar .. ya sea por el URL o por COOKIEs (siendo más seguro por cookies con los "contra" que ello conlleva: requieres de un navegador que acepte cookies).

A su vez, PHP te "ayuda" a propagar el SID por configuración (php.ini y ajustable por ini_set() también) donde le dices que propage el SID por el URL (reescribiendo ciertos tag's HTML como el de link, formularios .. etc) o en cookies .. o si lo deseas lo dejas completamente manual (bajo tu programación). o fuerzas cierta configuración. Pero insisto que el SID es parte fundamental de las sesiones .. si no se propaga en tus scripts que estén bajo la sesión no podras acceder a sus valores.

(usa el buscador del foro y busca por sesiones .. se suele hablar de esos temas muy amenudo).

Un saludo,