Esta es una lista de los 3 errores más comunes que cometemos cuando programamos en PHP, especialmente si hace poco que conoces el lenguaje.
(http://www.wp-monkeys.com/wp-content/uploads/2011/02/iconPhpServer-150x150.jpg)
1- La funcion header ():Alguna vez nos hemos encontrado con el mensaje "warning: Cannot add header information – headers already sent ...." esto se debe a que cuando el navegador solicita una página el server envía la respuesta en 2 partes, el header, que esta conformado por "datos invisibles" para el usuario como las cookies por ejemplo; y el contenido que es lo que el usuario ve en el navegador, html, imagenes, etc.
Por lo tanto siempre debemos usar la funcion header antes de enviar cualquier dato al navegador; el archivo php.ini contiene una opción que permite habilitar y deshabilitar si queremos que nos avise el error: output_buffering = on / off. En un ambiente de desarrollo es importante tener esta opción deshabilitada ya que sino nunca podríamos darnos cuenta si estamos cometiendo el error.
El siguiente código genera el error (asegúrense de tener output_buffering = off en el php.ini)
<?php
//tratamos de enviar el mensaje hola antes que la redireccion
echo "hola";
header("Location: http://localhost/pruebas/errores2.php");
?>
lo mismo sucede con otras funciones relacionadas con los cabezales HTTP como session_start() y setcookie().
2- Problemas al Comparar:Es común ver el siguiente código
<?php
//esto es incorrecto
if ($variable = 'algo'){
//hacemos algo
}
//esto es correcto
if ($variable == 'algo'){
//hacemos algo
}
?>
deben recordar que el operador de comparación de igual es == y el símbolo = es el indicador de asignación de variable.
3- Olvidar el Break en el switch:Cuando usamos la sentencia de control switch, solemos olvidar usar break al final de cada opción, lo que genera por ejemplo, cuando la primera opción es evaluada en true se ejecute el resto de las opciones también, veamos un ejemplo:
<?php
$test = 1;
switch($test){
case 1: echo 'algo';
case 2: echo 'algo mas';
case 3: echo 'mucho mas';
}
?>
en este caso la opción verdadera es la 1 pero al no usar break ejecutará todos los echo siguientes hasta encontrar un break o hasta terminar el switch, lo que puede ser fatal.
Tambien es recomendable usar la opción default lo que nos asegura que si ninguno de los casos es verdadero, se ejecuta el código default y asi podemos prevenir errores.
El código correcto seria:
<?php
$test = 1;
switch($test){
case 1: echo 'algo';
break;
case 2: echo 'algo mas';
break;
case 3: echo 'mucho mas';
break;
default: echo 'opcion por defecto';
}
?>
4- No convertir caracteres a su entidad HTMLNo hay que confiar en los usuario!!. Algunos datos que los usuarios envian a nuestra aplicación es posible que se encuentre infectada. Infectada me refiero a que quieran realizar ciertas acciones o sentencias que pueden modificar el contenido de nuestro sitio, es por ello que debemos limpiar esos datos, para ello se realiza lo siguiente:
htmlspecialchars($_GET['comentarios'], ENT_QUOTES);
5- Apertura de código PHPun posible error bien "boludo" por decirlo de alguna forma es...
Hay usuarios q se acostumbran a usar php y abrirlo de esta forma:
<?
?>
Si bien esto funciona en la gran mayoria de los servidores..., pero en muchos no te lo toma como php y te tira pagina en blanco, te podes volver loco hasta encontrar la solucion, y es tan simple como:
<?php
?>
Es un error que en XAMPP te puede volver loco jaja
Bueno espero que estas lineas puedan serle útiles, especialmente si están comenzando con PHP.
Fuente: http://www.tecnopedia.net/php-scripts/3-errores-comunes-en-php/ (http://www.tecnopedia.net/php-scripts/3-errores-comunes-en-php/)
http://guedea.blogspot.com.ar/2009/05/los-errores-mas-comunes-de-un.html (http://guedea.blogspot.com.ar/2009/05/los-errores-mas-comunes-de-un.html) y aportes de los usuarios de Underc0de
genial! gracias por el aporte, la verdad que si, normalmente son los errores más comunes.
lo agregaré a la lista de post interesantes!
gracias! y un saludo!
un posible error bien "boludo" por decirlo de alguna forma es...
Hay usuarios q se acostumbran a usar php y abrirlo de esta forma:
Citar
<?
?>
Si bien esto funciona en la gran mayoria de los servidores..., pero en muchos no te lo toma como php y te tira pagina en blanco, te podes volver loco hasta encontrar la solucion, y es tan simple como:
<?php
?>
Es un error que en XAMPP te puede volver loco jaja
saludos!
agregada tu respuesta al post principal, quen.
saludos!