Bueno creo que ya está todo dicho, si el usuario se conecta, actualizas el campo "online" en la base de datos con la hora actual, durante los próximos 5 minutos muestras el nombre del usuario en la página, ahora si el usuario se desloguea entonces borra el contenido del campo "online" por lo que el tiempo será más de 5 minutos.
Como verás el problema al final se soluciona por si mismo al borrar el contenido del campo online al desloguear