si el usuario está en session está en DB, si no es así, algo raro pasa...
si hay otras formas... directamente con $_COOKIES creas un identificador y lo almacenas en una tabla junto con los datos que quieras almacenar, cada vez que se cargue la pagina lees $_COOKIES y si tiene el identificador, lees la DB, si exíste, cargas su rol... para esto no son utiles las tablas comunes debido a la lentitud, en este caso tienes que crear una tabla que corra en ram (memory tables)
https://dev.mysql.com/doc/refman/5.7/en/memory-storage-engine.html
un nivel de seguridad mas, es que cada vez que lees la $_COOKIE, la recalculas y mandas el nuevo identificador, así si llegaran a robar el ID solo será valido antes que esa persona cargue de nuevo la pagina... eso si, si recalculas con un motor predecible, será peor el remedio que la enfermedad
si hay otras formas... directamente con $_COOKIES creas un identificador y lo almacenas en una tabla junto con los datos que quieras almacenar, cada vez que se cargue la pagina lees $_COOKIES y si tiene el identificador, lees la DB, si exíste, cargas su rol... para esto no son utiles las tablas comunes debido a la lentitud, en este caso tienes que crear una tabla que corra en ram (memory tables)
https://dev.mysql.com/doc/refman/5.7/en/memory-storage-engine.html
un nivel de seguridad mas, es que cada vez que lees la $_COOKIE, la recalculas y mandas el nuevo identificador, así si llegaran a robar el ID solo será valido antes que esa persona cargue de nuevo la pagina... eso si, si recalculas con un motor predecible, será peor el remedio que la enfermedad