Los Errores mas Comunes al programar en PHP

Iniciado por Flemon, Octubre 28, 2012, 07:48:49 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Octubre 28, 2012, 07:48:49 AM Ultima modificación: Marzo 27, 2014, 05:43:40 PM por Expermicid
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.


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)

Código: php
<?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

Código: php
<?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:

Código: php
<?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:

Código: php
<?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 HTML

No 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:

Código: php
htmlspecialchars($_GET['comentarios'], ENT_QUOTES);


5- Apertura de código PHP

un posible error bien "boludo" por decirlo de alguna forma es...

Hay usuarios q se acostumbran a usar php y abrirlo de esta forma:

Código: php
<?

?>


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:

Código: php
<?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: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
             No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y aportes de los usuarios de Underc0de
No intentes pararme, trata de defenderte, trata de matarme, pero de cualqueir forma TE SUPERARE

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!

<input type="cualquiera" value="fuckme" OnClick="alert("oggy"); />

Igual que en Javascript en php se debe tener cuidado Con el uso De comillas simples & dobles, Un error muy comun y que me paso fue que al poner comillas dobles dentro del String a printar con un alert (en javascript) agarraba la primera comilla que se encuentre y la toma como comilla De cierre, para solucionar estos errores tan pequeños y tan cojonudos Simplemente se debe tener noción de cuando usar las comillas Simples y dobles, Mas info: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Oggy la explicación también se encuentra aquí pero más facil de ver

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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:

Código: php

<?php

?>


Es un error que en XAMPP te puede volver loco jaja

saludos!

agregada tu respuesta al post principal, quen.

saludos!