⊗ppPmAuRgtD 434 of 447 menu

Normalización de base de datos

Actualmente almacenamos los estados de nuestros usuarios en la misma tabla donde están los propios usuarios. Sin embargo, esto es incorrecto: obtenemos una tabla no normalizada, ya que las palabras 'user' y 'admin' se repiten muchas veces.

Es necesario realizar la normalización: extraigamos nuestros estados a una tabla separada statuses:

id name
1 user
2 admin

Y en la tabla users crearemos una columna status_id. Ahora durante el registro en la columna status_id escribiremos el id del estado de la tabla statuses:

<?php $query = "INSERT INTO users SET login='$login', password='$password', status_id='1'"; ?>

Los cambios más complejos ocurrirán durante la autorización: para obtener el estado del usuario, será necesario realizar un LEFT JOIN:

<?php $login = $_POST['login']; // Obtenemos el usuario por el login y unimos el estado: $query = "SELECT users.*, statuses.name as status FROM users LEFT JOIN statuses ON users.status_id=statuses.id WHERE login='$login'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { $hash = $user['password']; if (password_verify($_POST['password'], $hash)) { $_SESSION['auth'] = true; $_SESSION['status'] = $user['status']; // estado } else { } } else { } ?>

Rehagan su autorización y registro de acuerdo con lo descrito en la teoría.

Introduzcan cambios en el funcionamiento del panel de administración (visualización de los estados de los usuarios, cambios de estados y así sucesivamente).

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar