Consejos para rematar una aplicación en PHP

En estas últimas dos semanas de clase hemos hecho una aplicación didáctica en PHP que nos ha servido para aprender muchas técnicas. Pero ahora nos falta una de las más importantes, revisión, documentación y el control de variables y otras estructiras dinámicas como vectores y objetos.
Vamos a verlas paso a paso aplicadas a nuestra práctica.

Revisión de los datos de entrada

La revisión de los datos de entrada, es la revisión de todos los datos que puede mandar el usuario. Es decir son los inputs de los formularios, para asegurar una entrada de datos correcta se han usado los controles de formulario que facilita HTML5 como se muestra en el ejemplo siguiente.

Control de formularios con HTML5

<form action=\"nueva.php\" method=\"post\">
	Nombre para la nueva tabla:* <br /> 
	<input type=\"text\" name=\"nombre\" size=\"20\" required=\"true\"/><br /> 
	Curso (año/año):* <br /> 
	<input type=\"text\" name=\"curso\" value=\"".(date('Y')-1)."/".(date('Y'))."\"size=\"12\" required=\"true\"/><br /> 
	Triemestre* (1,2,3): <br /> 
	<input type=\"number\" min=\"1\" max=\"3\" name=\"trimestre\" size=\"5\" required=\"true\"/><br /> 	
	Asignatura: <br /> 
	<input type=\"text\" min=\"1\" max=\"3\" name=\"asignatura\" size=\"35\"/><br /> 					Porcentaje de teoría:* <br /> 
	<input type=\"number\" value=\"75\" min=\"1\" max=\"100\" name=\"p_teoria\" size=\"5\" required=\"true\"/><br /> 	
	Porcentaje de práctica:* <br /> 
	<input type=\"number\" value=\"25\" min=\"1\" max=\"100\" name=\"p_practica\" size=\"5\" required=\"true\"/><br /> 	
	Mínimo de teoría:* <br /> 
	<input type=\"text\" value=\"3.5\" min=\"0\" max=\"10\" name=\"m_teoria\" size=\"5\" required=\"true\"/><br /> 	
	Mínimo de practica:* <br /> 
	<input type=\"text\" value=\"1.25\" min=\"0\" max=\"10\" name=\"m_practica\" size=\"5\" required=\"true\"/><br/><br/>	
	<input type=\"submit\" value=\"Enviar Formulario\"/><br /> 

El código anterior representa el código PHP usado para mostrar el formulario de nueva tabla. Aquí podemos ver como se han usado los atributos type, min, max, size y required de HTML5 con el fin de mejorar en lo posible el relleno de la tabla y sin complicarnos en hacer la comprobación con PHP.
No obstante queda pendiente la revisión de los datos para crear una nuevas tabla, ya que dan error si metemos espacios y caracteres extraños, podemos minimizar este riesgo usando la siguiente función en el fichero que crea una nueva tabla.

Función para limpiar caracteres conflictivos en PHP

<?php
function limpiar($cadena) 
{ 
    $resultado = strtolower($cadena);  //ponemos todo en minúsculas
    $b     = array("á","é","í","ó","ú","ä","ë","ï","ö","ü","à","è","ì","ò","ù","ñ"," ",",",".",";",":","¡","!","¿","?",'"');  //vector con caracteres conflictivos
    $c     = array("a","e","i","o","u","a","e","i","o","u","a","e","i","o","u","n","","","","","","","","","",'');  //vector con reemplazos
    $resultado = str_replace($b,$c,$cadena); 
    return $resultado; 
}  
?>

La función anterior es totalmente configurable, podemos sustituir cualquier carácter por cualquier otro caracter que deseemos. Sólo tenemos que tener cuidado con la posición.

Problemas con el diseño E/R

No olvidemos que la práctica en principio se hizo para que un sólo profesor pudiese calcular las medias de unas notas dadas y se ha ido convirtiendo en una aplicación multiusuario que permite gestionar diversos cursos y profesores. Pero por supuesto tiene sus limitaciones una de las más importantes es que no podemos crear dos tablas temporales con el mismo nombre. Esto tiene varias soluciones que se enumeran de más sencilla a más complicada:

  1. Poner la restricción nulo al campo “tabla” en la tabla tablas. No se podrán crear dos tablas de igual nombre pero no dará errores.
  2. Añadir a la anterior una comprobación para informar al usuario de la repetición del nombre y pedirle otro
  3. Hacer como cualquier sistema operativo y concatenar (x) al nombre la tabla repetida
  4. Cambiar el diseño de la base de datos y con ello toda la primera parte de la aplicación

Dado el carácter educativo de la práctica se aconseja simplemente la primera opción y en todo caso la segunda o tercera.

Documentación del código

Es muy importante documentar correctamente cada fichero de nuestra aplicación deberemos respetar estos puntos. También es importante usar nombre de variable y funciones descriptivas.

  1. Todo fichero tiene que tener una descripción al principio, indicando sus tareas principales
  2. Para cada clase se debe hacer un resumen al principio y documentar sus atributos y métodos.

Originally posted 2011-03-29 18:02:21.

15 Responses to “ Consejos para rematar una aplicación en PHP ”

  1. Alberto dice:

    Enlace para descargar gedit-symbol-browser-plugin.

    http://www.micahcarrick.com/gedit-symbol-browser-plugin.html#3

  2. Julián dice:

    Bien para los usuarios de windows que queráis instalar complementos al gedit tales como el symbol-browser tenemos dos rutas para instalar los complementos.

    C:\Archivos de programa\gedit\lib\gedit-2\plugins
    C:\Archivos de programa\gedit\share\gedit-2\plugins

  3. Alberto dice:

    Estoy documentando mi practica pero antes la he copiado al www de mi pc y he cambiado la contraseña de phpmyadmin no he tocado nada mas y al querer entrar mi sorpresa ha sido que ponga el nombre de usuario que ponga y su contraseña (correcta) no me deja entrar y así no se si al documentarla estropeo algo al no poder probarla.
    ¿Como puedo solucionarlo?

    • jlmora dice:

      A Pilar le ha pasado lo mismo y era por un unset demás, en el fichero de logín.

      • Alberto dice:

        pero es que yo la copie al pen la he copiado al www le he dado permisos y he cambiado la contraseña de la base de datos todavía no he puesto ni un solo unset.
        No se que puede ser nunca he tenido problemas de que me la he llevado del curso.

  4. Alberto dice:

    ¿En el fichero clases hay que hacer unset de las variables?
    Sigue sin funcionar pero voy a documentarla de todas maneras espero que luego no me de problemas.

  5. Alberto dice:

    ¿En la versión básica de la practica hay que tener el buscar? ¿Y el iniciar sesión? estoy documentando la practica y es para saber si esos archivos tengo que modificarlos o no.

    • jlmora dice:

      El buscar no estaría de más, el iniciar sesión sólo es necesario para administrar o sea que para la parte básica no hace falta.

  6. Alberto dice:

    Hola, ¿exactamente en que enlaces es conveniente poner no follow?. Los enlaces que muestran una empresa completa y los de las categorías es mejor no ponerlo no? por que por ahí vamos a ganar visitas.

  7. jlmora dice:

    En principio los que nos son tuyos nofollow y los tuyos como veas, por ejemplo las empresas follow y las categorías no.

    El navegador no, el pie no….

    También es conveniente no dejar enlaces innecesarios, por ejemplo yo voy a quitar el acerca de del pie busca en google link sculpting para leer experimentos y opiniones

  8. Alberto dice:

    Si intento poner lo de las redes sociales en empresa.php me aparecen siempre arriba no soy capaz de que me queden en su sitio ni siquiera copiando del tuyo.

Deja un comentario