𝗧𝗼𝗽 𝟭𝟬 𝗘𝗿𝗿𝗼𝗿𝗲𝘀 𝗱𝗲 𝗣𝗛𝗣 𝗾𝘂𝗲 𝗰𝗼𝗺𝗲𝘁𝗲 𝘁𝗼𝗱𝗼 𝗽𝗿𝗶𝗻𝗰𝗶𝗽𝗶𝗮𝗻𝘁𝗲

Escribes código. Refrescas la página. Ves una pantalla blanca vacía.

Esto sucede porque PHP falla silenciosamente de forma predeterminada. Debes forzarlo a mostrar errores durante el desarrollo.

Añade estas líneas al principio de tus archivos:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

No uses esto en producción. Usa registros de archivos (logs) en su lugar.

Aquí tienes 10 errores comunes y cómo solucionarlos:

  • Falta de puntos y coma PHP deja de funcionar si olvidas un punto y coma. A menudo provoca un fallo silencioso. Solución: Asegúrate de que cada sentencia termine con un punto y coma.

  • Comparación débil (== vs ===) El signo de igual doble realiza una conversión de tipo (type coercion). Esto provoca errores de lógica. Solución: Usa el triple igual (===). Comprueba tanto el valor como el tipo.

  • Variables no definidas Usar una variable antes de asignarle un valor rompe tu lógica. Solución: Usa el operador de coalescencia nula. Ejemplo: $name = $_GET['name'] ?? 'Guest';

  • Ámbito de las variables globales Las funciones no pueden ver las variables que están fuera de ellas. Solución: Pasa las variables a las funciones como parámetros.

  • Inyección SQL Construir consultas con la entrada del usuario permite que los hackers roben datos. Solución: Usa sentencias preparadas (prepared statements) con marcadores de posición (?).

  • Cross-Site Scripting (XSS) Imprimir la entrada del usuario directamente permite que se ejecuten scripts maliciosos en los navegadores. Solución: Envuelve la salida en htmlspecialchars().

  • Encabezados ya enviados (Headers Already Sent) No puedes redirigir a un usuario si ya has enviado texto al navegador. Incluso un solo espacio provoca este error. Solución: Coloca las llamadas a header() al principio de todo. Usa siempre exit() después de una redirección.

  • Claves de array no definidas Acceder a una clave de formulario que no existe provoca advertencias (warnings). Solución: Usa el operador de coalescencia nula para todos los datos de $_POST y $_GET.

  • Include vs Require include solo muestra una advertencia si falta un archivo. El script continúa ejecutándose y falla más adelante. Solución: Usa require_once para archivos críticos como las conexiones a la base de datos.

  • Valores de retorno no verificados Muchas funciones de PHP devuelven false en caso de error. Si usas ese resultado inmediatamente, obtendrás más errores. Solución: Comprueba si el resultado es false antes de usarlo.

Resumen para el éxito:

  • Activa el reporte de errores en desarrollo.
  • Usa === para todas las comparaciones.
  • Sanea todas las entradas de usuario.
  • Verifica los valores de retorno.

Fuente: https://dev.to/bikkisingh/top-10-php-bugs-every-beginner-makes-and-how-to-fix-them-1anh