Cita: Mensaje Original por César López
Asignarle un valor nulo a una sesión puede traer problemas a la larga, además de que esa sesión ni siquiera se ha registrado.
Lo mejor para evitar eso es:
if(!session_is_registered('visitas')) {
[conectate a la base de datos y actualizala con una visita más]
session_register('visitas');
}
Listo.
Un Saludo.-
P.D: Tomo por entendido que tienes session_start() en algún otro archivo madre. Si no es así, debes agregarlo antes de cualquier cosa.
Si registras variables de session usando el array superglobal $_SESSION['variable'] ... las funciones session_is_register() no actuan .. Por eso uso isset() como una variable cualquiera. Al NO ser globales .. tampoco me importa si tiene valor o no .. pues lo uso como flag como he comentado ...
Todo esto no lo digo yo .. lo dice:
Cita: session_is_registered() returns TRUE if there is a variable with the name name registered in the current session.
Note:
If $_SESSION (or $HTTP_SESSION_VARS for PHP 4.0.6 or less) is used, use isset() to check a variable is registered in $_SESSION.
Caution:
If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered() and session_unregister().
Tu método es valido si registra variables via session_register como así lo haces en tu ejemplo .. Pero han llegado nuevos tiempos para PHP xD (desde 4.1.x en adelante) .. Usa en la medída de lo posible $_SESSION ..
Un saludo ..