Estoy haciendo la parte del registro de usuario de mi pagina.
Primero lo controlo con Javascript
Basicamente hago esto (es solo un extracto del javascript):
Código:
function validar_datos(){ //Defino variables para que se a mas comodo trabajar. var nom=document.usuario.nom_us.value; var ape=document.usuario.ape_us.value; //Defino estas variables para hacer la comparacion en el ultimo If. //Flag en ingles es bandera. var flagnom=false; var flagape=false; //este input informa que los password son diferentes, lo inicializo como vacio para que no quede un error anterior en pantalla. document.getElementById("distinto_password").style.display="none"; //===========Evaluo el nombre ======================================== //32= Espacio document.getElementById("nombre").style.display="none"; if (!nom.length==0){ for(i=0;i<nom.length;i++){ if((nom.charCodeAt(i)>=97 && nom.charCodeAt(i)<=122) || (nom.charCodeAt(i)>=65 && nom.charCodeAt(i)<=90) || (nom.charCodeAt(i)==32)){ document.getElementById("nombre").style.display="none"; flagnom=true; }else{ document.getElementById("nombre").style.display="inline"; flagnom=false;//si encuentra un codigo ASCCI fuera de los permitidos la cadena es invalida, por lo tanto deja de explorar la cadena mediante la instrccion: break; break; } } }else{ flagnom=false; document.getElementById("nombre").style.display="inline"; } //===========Evaluo el apellido ======================================== document.getElementById("apellido").style.display="none"; if (!ape.length==0){ for(i=0;i<ape.length;i++){ if((ape.charCodeAt(i)>=97 && ape.charCodeAt(i)<=122) || (ape.charCodeAt(i)>=65 && ape.charCodeAt(i)<=90) || (ape.charCodeAt(i)==32)){ document.getElementById("apellido").style.display="none"; flagape=true; }else{ document.getElementById("apellido").style.display="inline"; flagape=false;//si encuentra un codigo ASCCI fuera de los permitidos la cadena es invalida, por lo tanto deja de explorar la cadena mediante la instrccion: break; break; } } }else{ flagape=false; document.getElementById("apellido").style.display="inline"; } etc.... etc.... etc....
Luego en PHP (lo datos llegan por POST), antes de guardarlo en la BD hago básicamente lo mismo
Recorro todas la cadena ($_POST['xxxxxx']) cacaracter a caracter y me fijo mediante el codigo ASCII que el string solo tenga caracteres permitidos, mayusculas, minusculas, espacio, el punto y el guion bajo.
Solo si todo esta bien lo guardo en la BD.
¿Esta bien hacerlo asi?, basicamente es lo mismo en Javascript que en PHP, pero tengo entendido que del lado del servidor (php) es mas seguro.
Gracias.