Para validar que el número de registro ingresado contenga 13 dígitos (asumo que se trata de dígitos porque dices que es un
número de registro), puedes utilizar expresiones regulares.
Código PHP:
Ver original$numero = "4352345234544";
$patron = "/^[\d]{13}$/";
echo preg_match($patron, $numero) ?
"Correcto" : "Incorrecto";
Lo de arriba imprimirá "Correcto", pues el número contiene 13 dígitos, ni más dígitos, ni menos dígitos ni otros caracteres en lugar de dígitos.
Una observación:
En la línea
if (strlen(trim($id)) == " "), utilizas la función
strlen, con la cual obtienes la cantidad de caracteres de la cadena, por lo tanto, no puedes comparar un número con un espacio en blanco. Probablemente hayas querido hacer algo así:
Pero aún así, estás evaluando que la cadena sea igual a un espacio en blanco, cuando lo correcto sería (para el caso de comprobar si no hay un contenido) que lo compares con dos comillas dobles sin espacios en medio, pero como utilizas
strlen, o bien lo comparas con cero (esto debido a que la función cuenta la cantidad de caracteres), o evalúas si es
false, anteponiéndole un signo de admiración.
Utilizo el operador de igualdad estricta (tres signos de igualdad), ya que el cero también equivale al valor booleano
false, pero con el operador de igualdad estricta, compruebo su valor y tipo de dato, el cual es númerico, aunque en este caso, hubiera dado lo mismo, ya que si la evaluación de la cantidad de caracteres de la cadena arrojara
false como resultado, querría decir que la cadena no contiene caracteres, o lo que lo mismo decir que no tiene un contenido.
Saludos