Listo (Ctrl + Enter para ejecutar) Bootcamp Fullstack »
ejemplo.php
Tab = 4 espacios
1
<?php
class ValidadorRegistro
{
    // Política: Mínimo 8 caracteres, 1 mayúscula, 1 minúscula, 1 número y 1 símbolo (@$!%*?&#)
    public static function esPasswordFuerte(string $password): bool
    {
        $patron = '/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&#])[A-Za-z\d@$!%*?&#]{8,64}$/';
        return preg_match($patron, $password) === 1;
    }

    // Política: Correo corporativo exclusivo (@kilopolis.com o subdominios)
    public static function esEmailCorporativo(string $email): bool
    {
        $patron = '/^[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9-]+\.)*kilopolis\.com$/i';
        return filter_var($email, FILTER_VALIDATE_EMAIL) !== false 
            && preg_match($patron, $email) === 1;
    }
}

$passwordsPrueba = [
    'MiClaveSegura2026!' => 'Válida (cumple todos los requisitos)',
    'password123'        => 'Falla (no tiene mayúscula ni símbolo)',
    'ADMIN2026!'         => 'Falla (no tiene minúsculas)',
    'Ab1!'               => 'Falla (tiene menos de 8 caracteres)',
];

$emailsPrueba = [
    '[email protected]'           => 'Válido (dominio corporativo)',
    '[email protected]' => 'Válido (subdominio corporativo)',
    '[email protected]'               => 'Rechazado (dominio genérico)',
    'correo_invalido_sin_arroba'     => 'Rechazado (formato roto)',
];

echo "<div style='font-family:system-ui; max-width:640px; padding:15px;'>";
echo "<h3 style='color:#0f172a; margin-top:0;'>🛡️ Suite de Validación Corporativa</h3>";

echo "<h4 style='color:#1e293b; margin-bottom:8px;'>1. Auditoría de Contraseñas Fuertes:</h4>";
foreach ($passwordsPrueba as $pwd => $desc) {
    $ok = ValidadorRegistro::esPasswordFuerte($pwd);
    $color = $ok ? '#059669' : '#dc2626';
    $icono = $ok ? '✅' : '❌';
    echo "<div style='display:flex; justify-content:space-between; font-size:13px; background:#f8fafc; border:1px solid #e2e8f0; padding:8px 12px; margin-bottom:6px; border-radius:6px;'>";
    echo "  <span><code>" . htmlspecialchars($pwd) . "</code> <small style='color:#64748b;'>($desc)</small></span>";
    echo "  <strong style='color:$color;'>$icono " . ($ok ? 'APROBADA' : 'INSEGURA') . "</strong>";
    echo "</div>";
}

echo "<h4 style='color:#1e293b; margin:16px 0 8px 0;'>2. Validación de Emails Corporativos:</h4>";
foreach ($emailsPrueba as $email => $desc) {
    $ok = ValidadorRegistro::esEmailCorporativo($email);
    $color = $ok ? '#059669' : '#dc2626';
    $icono = $ok ? '✅' : '❌';
    echo "<div style='display:flex; justify-content:space-between; font-size:13px; background:#f8fafc; border:1px solid #e2e8f0; padding:8px 12px; margin-bottom:6px; border-radius:6px;'>";
    echo "  <span><code>" . htmlspecialchars($email) . "</code> <small style='color:#64748b;'>($desc)</small></span>";
    echo "  <strong style='color:$color;'>$icono " . ($ok ? 'ACEPTADO' : 'RECHAZADO') . "</strong>";
    echo "</div>";
}

echo "</div>";
Haz clic para editar este código
Vista Previa
Servidor PHP 8.3