65. Validar que el Email no esté repetido
Validación de Email Único en PHP Nativo
Hay una validación adicional que debemos implementar: garantizar que el email no esté repetido en la base de datos. Recordemos que el email es un campo único e irrepetible para cada cliente.
A diferencia de frameworks que manejan validaciones automáticas (como "unique"), al trabajar con PHP nativo desde cero, debemos elaborar un código más robusto para esta verificación.
🔍 Solución paso a paso:
1. Comentario inicial
Agregamos un marcador claro en el código:
// Validar que el email no esté repetido2. Extraer registros existentes
Necesitamos comparar el nuevo email con todos los clientes ya registrados. Para ello, en el Modelo Clientes, creamos un método estático:
<?php
require_once 'conexion.php';
class ModeloClientes {
// Método para obtener todos los clientes
static public function index($tabla) {
$stmt = Conexion::conectar()->prepare("SELECT * FROM $tabla");
$stmt->execute();
return $stmt->fetchAll(); // Retorna array con índices numéricos
}
}3. Lógica en el Controlador
Instanciamos el modelo y recuperamos los clientes:
$clientes = ModeloClientes::index("clientes");4. Validación de duplicados
Recorremos los registros y comparamos emails:
foreach ($clientes as $cliente) {
if ($cliente["email"] == $datos["email"]) {
echo json_encode(["error" => "El email ya existe en la base de datos"]);
return; // Detiene el proceso
}
}5. Prueba de validación
Al intentar registrar un email existente (ej: empresa@cursos.com), el sistema retornará:
{"error": "El email ya existe en la base de datos"}✅ Conclusión
Con este bloque de código, aseguramos que ningún email se repita, manteniendo la integridad de los datos. ¡Implementación sencilla y efectiva en PHP puro!
Comentarios
Publicar un comentario