Hosting de Calidad
  • Inicio
  • Precios y servicios
  • F.a.q y ayudas
  • Realizar pedido
  • Webs alojadas
  • Quienes somos
  • Foro HyD
  • Contacto

    Zona Dominios

    Entrar
    registro de dominios


    Zona Hosting

    Entrar
    alojamiento web


    5 Métodos de Pago
    Tarjeta de crédito
    Domiciliación
    Transferencia
    Soporte Epagado
    Soporte Paypal

    Liberalización .es

    Ver mas
    dominios .es


  •  
     
     
    Funciones para el manejo de sesiones

    XCV_ Funciones para el manejo de sesiones

    El apoyo que PHP proporciona para las sesiones consiste en una forma de conservar ciertos datos a lo largo de los subsiguientes accesos, lo cual le permite construir aplicaciones más personalizadas e incrementar el atractivo de su sitio web_

    Si ya está familiarizado con el tratamiento de sesiones de PHPLIB, notará que algunos conceptos son similares al soporte de las sesiones de PHP_

    A cada visitante que accede a su web se le asigna un identificador único, llamado "session id" (identificador de sesión)_ Éste se almacena en una cookie por parte del usuario o se propaga en la URL_

    El soporte de las sesiones le permite registrar un número arbitrario de variables que se conservarán en las siguientes peticiones_ Cuando un visitante acceda a su web, PHP comprobará automáticamente (si session_auto_start está puesto a 1) o cuando usted lo especifique (de forma explícita mendiante session_start() o implícita a través de session_register()) si se le ha enviado un "session id" específico con su petición, en cuyo caso se recrean las variables que se habían guardado anteriormente_

    Todas las variables registradas son almacenadas tras finalizar la petición_ Las variables que están indefinidas se marcan como no definidas_ En los subsiguientes accesos, no estarán definidas por el módulo de sesiones a menos que el usuario las defina más tarde_

    Las opciones de configuración track_vars y register_globals influyen notablemente en la forma en que las variables de la sesión se almacenan y restauran_

    Nota: A partir de PHP 4_0_3, track_vars siempre está activado_

    Nota: A partir de PHP 4_1_0, $_SESSION está disponible como variable global, al igual que $_POST, $_GET, $_REQUEST y demás_ Al contrario que $HTTP_SESSION_VARS, $_SESSION siempre es global_ Por tanto, no se debe usar global para $_SESSION_

    Si track_vars está activado y register_globals está desactivado, sólo los miembros del vector asociativo global $HTTP_SESSION_VARS pueden ser registrados como variables de la sesión_ Las variables restauradas de la sesión sólo estarán disponibles en el vector $HTTP_SESSION_VARS_

    Ejemplo 1_ Registrar una variable con track_vars activado

    <?php
    session_start();
    if (isset($HTTP_SESSION_VARS['count'])) {
       $HTTP_SESSION_VARS['count']++;
    }
    else {
       $HTTP_SESSION_VARS['count'] = 0;
    }
    ?>

    Se recomienda usar $_SESSION (o $HTTP_SESSION_VARS con PHP 4_0_6 o inferior) por seguridad y para hacer el código más legible_ Con $_SESSION o $HTTP_SESSION_VARS, no es necesario usar las funciones session_register() / session_unregister() / session_is_registered()_ Los usuarios pueden acceder a una variable de la sesión como si se tratase de una variable normal_

    Ejemplo 2_ Registrar una variable con $_SESSION_

    <?php
    session_start();
    // Use $HTTP_SESSION_VARS con PHP 4_0_6 o inferior
    if (!isset($_SESSION['count'])) {
        $_SESSION['count'] = 0;
    } else {
        $_SESSION['count']++;
    }
    ?>

    Ejemplo 3_ Borrar una variable con $_SESSION_

    <?php
    session_start();
    // Use $HTTP_SESSION_VARS con PHP 4_0_6 o inferior
    unset($_SESSION['count']);
    ?>

    Si register_globals está activado, todas las variables globales pueden ser registradas como variables de la sesión, y las variables de la sesión serán restauradas a sus correspondientes variables globales_ Como PHP debe saber qué variables globles están registradas como variables de la sesión, los usuarios deben registrar las variables con la función session_register(), mientras que con $HTTP_SESSION_VARS/$_SESSION no es necesario usar session_register()_

    Atención

    Si está usando $HTTP_SESSION_VARS/$_SESSION y desactiva register_globals, no use session_register(), session_is_registered() ni session_unregister()_

    Si activa register_globals, session_unregister() debería ser usado a partir de que las variables de la sesión sean registradas como variables globales cuando los datos de la sesión se guardan_ Se recomienda desactivar register_globals por motivos de seguridad y rendimiendo_

    Ejemplo 4_ Registrar una variable con register_globals activado

    <?php
    if (!session_is_registered('count')) {
        session_register("count");
        $count = 0;
    }
    else {
        $count++;
    }
    ?>

    Si track_vars y register_globals están activados, las variables globales y las entradas de $HTTP_SESSION_VARS/$_SESSION harán referencia al mismo valor para variables ya registradas_

    Si el usuario utiliza session_register() para registrar una variable, el vector $HTTP_SESSION_VARS/$_SESSION no contendrá esa variable hasta que se cargue de los datos de la sesión_ (p_ej_ hasta la próxima petición)_

    Hay dos formas de propagar un "session id":

    • Cookies

    • Parámetro en la URL

    El módulo de sesiones admite ambas formas_ Las Cookies son la mejor opción, pero como no son fiables (los clientes no están obligados a aceptarlas), no podemos confiar en ellas_ El segundo método incrusta el "session id" directamente en las URLs_

    PHP es capaz de hacerlo de forma transparente al usuario cuando se compila con __enable_trans_sid_ Si activa esta opción, las URIs relativas serán modificadas de forma que contengan el session id automáticamente_ Alternativamente, puede usar la constante SID que está definida, si el cliente no envía la cookie adecuada_ El SID puede tener la forma de nombre_de_sesion=session_id o ser una cadena vacía_

    El ejemplo siguiente demuestra cómo registrar una variable, y cómo colocar correctamente un enlace a otra página usando la constante SID_

    Ejemplo 5_ Contar el número de impresiones de un usuario

    <?php
    if (!session_is_registered('count')) {
        session_register('count');
        $count = 1;
    }
    else {
        $count++;
    }
    ?>
    
    Hola, visitante_ Has visto esta p&aacute;gina <?php echo $count; ?> veces_
    
    <?php
    # el <?php echo SID?> (Se puede usar <?=SID?> si short tag est&aacute; activado)
    # es necesario para conservar el session id
    # en caso de que el usuario haya desactivado las cookies
    ?>
    
    Para continuar, haga click <A HREF="/mambo/documentacion-manual_php-pagina-nextpage_php?<?php echo SID?>">aqu&iacute;</A>_

    El <?=SID?> no es necesario si se ha usado __enable_trans_sid al compilar PHP_

    Nota: Se asume que las URLs no relativas apuntan a sitios web externos, y por tanto no se añade el SID, ya que pasar el SID a un servidor diferente podría ocasionar un agujero de seguridad_

    Para implementar el almacenamiento en bases de datos o en otro tipo de almacenamiento, necesitará usar session_set_save_handler()() para crear una colección de funciones de almacenamiento a nivel de usuario_

    El sistema de control de sesiones soporta varias opciones de configuración que puede colocar en su archivo php_ini_ Les daremos un pequeño repaso_

    • session_save_handler define el nombre del controlador que se usa para almacenar y recuperar los datos asociados a la sesión_ Su valor por defecto es files_

    • session_save_path define el argumento que se pasa al controlador de almacenamiento_ Si elige el controlador de archivos por defecto, esta es la ruta donde los archivos se crean_ Por defecto es /tmp_ Si la profundidad de la ruta de session_save_path es mayor que 2, no se llevará a cabo la recolección de basura_

      Aviso

      Si lo deja apuntando a un directorio con permiso de lectura por el resto de usuarios, como /tmp (la opción por defecto), los demás usuarios del servidor pueden conseguir robar las sesiones obteniéndolas de la lista de archivos de ese directorio_

    • session_name especifica el nombre de la sesión que se usa como nombre de la cookie_ Sólo debería contener caracteres alfanuméricos_ Por defecto vale PHPSESSID_

    • session_auto_start especifica si el módulo de las sesión inicia una sesión automáticamente al comenzar la petición_ Por defecto está 0 (desactivado)_

    • session_cookie_lifetime especifica la duración de la cookie en segundos que se manda al navegador_ El valor 0 significa "hasta que se cierra el navegador", y es el que se encuentra por defecto_

    • session_serialize_handler define el nombre del controlador que se utiliza para guardar y restaurar los datos_ Actualmente se soportan un formato interno de PHP (cuyo nombre es php) y WDDX (cuyo nombre es wddx)_ WDDX sólo está disponible si PHP está compilado con Soporte para WDDX_ Por defecto es php_

    • session_gc_probability especifica la probabilidad de que se inicie la rutina gc (garbage collection _ recoleción de basura) en cada petición en porcentaje_ Por defecto es 1_

    • session_gc_maxlifetime especifica el número de segundos tras los cuales los datos se considerarán como 'basura' y serán eliminados_

    • session_referer_check contiene la subcadena que usted quiera que se compruebe en cada "HTTP Referer" (N_T_: Página desde donde proviene el enlace a la página actual)_ Si el "Referer" fue enviado por el cliente y la subcadena no se ha encontrado, el session id incrustado será marcado como inválido_ Por defecto es una cadena vacía_

    • session_entropy_file indica la ruta a un recurso externo (un archivo) que se usará como fuente adicional de entropía en el proceso de creación de session id's_ Por ejemplo /dev/random o /dev/urandom, que están disponibles en muchos sistemas Unix_

    • session_entropy_length especifica el número de bytes que serán leidos del archivo indicado más arriba_ Por defecto es 0 (desactivado)_

    • session_use_cookies indica si el módulo puede usar cookies para guardar el session id en el lado del cliente_ Por defecto está a 1 (activado)_

    • session_cookie_path especifica la ruta a colocar en session_cookie_ Por defecto es /_

    • session_cookie_domain especifica el dominio a establecer en session_cookie_ Por defecto no se especifica ninguno en ningún caso_

    • session_cache_limiter especifica el método de control del caché a usar en las páginas de la sesión (none/nocache/private/private_no_expire/public)_ Por defecto es nocache (no guardar las páginas en el caché)_

    • session_cache_expire especifica el tiempo_de_vida de las páginas de la sesión que se encuentran en el caché en minutos_ No tiene efecto para el limitador nocache_ Por defecto vale 180_

    • session_use_trans_sid indica si la inclusión del sid transparente está activada o no, si fue activada compilando con __enable_trans_sid_ Por defecto está a 1 (activado)_

    • url_rewriter_tags especifica qué etiquetas html serán reescritas para incluir el session id si la inclusión del sid transparente está activada_ Las etiquetas por defecto son a=href,area=href,frame=src,input=src,form=fakeentry

    Nota: El manejo de sesiones fue añadido en PHP 4_0_

    Tabla de contenidos
    session_cache_expire __ Devuelve la caducidad actual del caché
    session_cache_limiter __ Lee y/o cambia el limitador del caché actual
    session_decode __ Decodifica los datos de una sesión a partir de una cadena
    session_destroy __ Destruye todos los datos guardados en una sesión
    session_encode __  Codifica los datos de la sesión actual en una cadena
    session_get_cookie_params __  Obtiene los parámetros de la cookie de la sesión
    session_id __ Lee y/o cambia el session id actual
    session_is_registered __  Comprueba si una variable está registrada en la sesión
    session_module_name __ Lee y/o cambia el módulo de la sesión actual
    session_name __ Lee y/o cambia el nombre de la sesión actual
    session_regenerate_id __  Update the current session id with a newly generated one
    session_register __  Register one or more global variables with the current session
    session_save_path __ Lee y/o cambia la ruta donde se guardan los datos de la sesión actual
    session_set_cookie_params __  Cambia los parámetros de la cookie de la sesión
    session_set_save_handler __  Establece unas funciones para el almacenamiento de los datos de la sesión a nivel de usuario
    session_start __ Inicializar los datos de una sesión
    session_unregister __  Desregistrar una variable de la sesión actual
    session_unset __  Elimina todas las variables de la sesión
    session_write_close __ Escribe los datos de la sesión y la finaliza
     
       



    registro de dominios | alojamiento web | hosting por publicidad

       

     

    Manual de linux Manual de apache Manual de php Manual de mysql Manual de SQL Manual del Plesk Como funciona Paypal Manual de html