Llevo cierto tiempo trabajando con PHP y aunque no he tenido ningún problema siempre tengo la duda de si lo hago bien o no.
Cuando desde un formulario envío datos a otro script a la hora de recibir esos datos lo hago de la siguiente forma:
(Os pongo un ejemplo completo con un INSERT en MySQL)
Código PHP:
<?php
//----------- Curso es el codigo del curso en el cual se matricula.
if ( !isset($curso) || ($curso == "") ) {
$curso = "1486"; //-------------- Si no existe por defecto 1486
}
//----------- Este script se llama a si mismo, opc indica que hacer.
if ( !isset($opc) ) {
$opc = "0"; //------------- Si no existe se trata como una petición nueva.
//------------------------------ OPC = 0 Nueva petición.
//------------------------------ OPC = 1 Grabar una petición.
}
//---------- comprueba alguno de los parametros que no le deben faltar...
$error = 0;
if ($opc=="1") {
if (!isset($nombre) || ($nombre == "")) {
$error = 1;
}
if (!isset($apellidos) || ($apellidos == "")) {
$error = 1;
}
if (!isset($direccion) || ($direccion == "")) {
$error = 1;
}
if (!isset($poblacion) || ($poblacion == "")) {
$error = 1;
}
}
if ($error == 1) { //----------- falta algun dato...
$llamada = "Location: matricu.php?curso=" . $curso;
Header( $llamada );
exit;
}
//----------------- si es igual a 1 graba los datos...
if ($opc == "1") {
conecta_mysql(); //-------------- Realiza la conexión con la B.D.
$fecha = date("Y-m-d H:i:s");
//-------------------- graba el registro...
$orden = "INSERT INTO matricula (nombre, apellidos, direccion,
poblacion, fecha, curso) VALUES ('$nombre', '$apellidos',
'$direccion', '$poblacion', '$fecha', '$curso' )";
mysql_query ($orden); //----------- graba…
Este programa funciona perfectamente pero:
¿Que se puede mejorar (que se que hay mucho)?
Como veis no utilizo $_GET ya que desde mis inicios me he acostumbrado a recoger directamente las variables. ¿Es correcto?
¿Es segura la recepción de los datos que hago?
¿Puedo tener algún problema de seguridad con código HTML?
Bueno si alguien quiere comentar o explicar como se puede mejorar este código o de que otra forma lo hace será bienvenido.
Un saludo y gracias.