Para la validación tengo esto pero esta en js
Código:
<script>
function validate(cctt) {
var valid = "0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz_"
var ok = "yes";
var temp;
for (var i=0; i<cctt.value.length; i++) {
temp = "" + cctt.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
alert("Teclee solo caracteres que sean letras o números." + '\n' +
"El caracter no válido es " + temp + ".");
cctt.focus();
cctt.select();
}
}
Pero siento que se puede mejorar