Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 2 Octubre 2019, 09:12 am



Título: [Pregunta]: Sugerencias (Optimizar)
Publicado por: Leguim en 2 Octubre 2019, 09:12 am
Buenas noches,
cada vez que se carga una pagina lo que hago es verificar que dicho usuario tenga el email verificado en el caso de que no lo tenga lo enviará a x pagina...
Lo hago de la siguiente manera

Código
  1. if(users::Check_Email_Verified($_SESSION['id_user']) == false)
  2. {
  3. ?>
  4.     <script type="text/javascript">
  5.        window.location.href = 'verify_email';
  6.        </script>
  7.        <?php
  8. }
  9.  

retorna false si dicho usuario no tiene el correo verificado
retorna true si dicho usuario tiene el correo verificado

Código
  1.        function Check_Email_Verified($id_user)
  2. {
  3. $con = Connection('root', '');
  4. $query = $con->prepare('SELECT (email_verified) FROM usuarios WHERE id_user = :id_user');
  5. $query->execute(array(':id_user' => $id_user));
  6. $results = $query->fetchAll();
  7.  
  8. $result = false;
  9.  
  10. if(!empty($results))
  11. {
  12. if($results[0]['email_verified'] == 1)
  13. {
  14. $result = true;
  15. }
  16. }
  17.  
  18. return $result;
  19. }
  20.  

La alternativa que tenia en mente sería usar una $_SESSION

Código
  1. if($_SESSION['email_verified'] == false)
  2. {
  3.     [Redirige a x pagina]
  4. }
  5.  

No sabría cual debería usar si como lo hago hasta ahora realizando consultas o con una $_SESSION.

¿Cual podría ser la forma más segura y optima de hacer esto?

Muchas gracias


Título: Re: [Pregunta]: Sugerencias (Optimizar)
Publicado por: #!drvy en 15 Octubre 2019, 10:59 am
Yo lo que haría es que cada vez que se carga una página, se construya una sesión con los datos del usuario (nombre, fechas, correo verificado etc) y ahí dentro ya compruebas si el usuario tiene verificado o no el correo.

Además, te recomiendo que en vez de redirigir por javascript, uses cabeceras HTTP y mates la ejecución del resto del código pues le estas dando la oportunidad al usuario de ejecutar otras acciones sin antes de redirigirlo.

Código
  1. if ($_SESSION['current_user']['email_verified'] != true) {
  2.    header('Location: http://blabla.com/verifica-tu-correo');
  3.    exit;
  4. }

Saludos


Título: Re: [Pregunta]: Sugerencias (Optimizar)
Publicado por: Leguim en 16 Octubre 2019, 22:58 pm
Yo lo que haría es que cada vez que se carga una página, se construya una sesión con los datos del usuario (nombre, fechas, correo verificado etc) y ahí dentro ya compruebas si el usuario tiene verificado o no el correo.

Además, te recomiendo que en vez de redirigir por javascript, uses cabeceras HTTP y mates la ejecución del resto del código pues le estas dando la oportunidad al usuario de ejecutar otras acciones sin antes de redirigirlo.

Código
  1. if ($_SESSION['current_user']['email_verified'] != true) {
  2.    header('Location: http://blabla.com/verifica-tu-correo');
  3.    exit;
  4. }

Saludos

¡Muchas gracias!