Perdón por el doble post, pero me ha surgido un problema justo al final de todo [me acabo de dar cuenta ahora mismo], espero que me ayudéis porque creo que es lo último que me queda por finalizar.
Os explico: teniendo una frase cualquiera, mi sistema convierte a un código numérico que tengo almacenado en otro archivo; este código numérico lo convierto en un número de, según mis cálculos, 4 dígitos. Sin embargo, algunos valores después de la encriptación pueden ser de menos dígitos. ¿Qué hago? Tengo una función que me comprueba si tengo o no 4 dígitos en el valor encriptado. La función es esta:
Código:
function compruebaCifrado($pEncriptada,$f)
{
$stlen = strlen($pEncriptada);
$esp = $f - $stlen;
if ($esp > 0)
{
for ($i=1; $i<=$esp; $i++)
{
echo $i."<br>";
$st = "0".$pEncriptada;
echo $st."<br>";
}
$pEncriptada = $st;
}
return $pEncriptada;
}
Donde $pEncriptada es la letra encriptada [la función recibe la palabra encriptada y me comprueba si tiene o no 4 dígitos], y $f es un valor fijo de 4, que es el número de dígitos de cada número.
Compruebo mediante el valor $esp cuántos dígitos faltan a dicho número para ser 4: si $esp es 0, no hay que hacer nada devolvemos la letra encriptada y punto, y si no añadimos tantos 0 a la izquierda como dígitos falten.
Todo perfecto, he hecho muchas pruebas y funcionaba perfectamente, hasta que me dí cuenta de un fallo que, aunque está contemplado, no funciona: si el número de 2 dígitos sólo añade un 0 a la izquierda en vez de dos, con lo que el mensaje se me descuadra completamente el mensaje cifrado...
¿Alguna idea de dónde está mi error o cómo solucionaro?
Gracias por adelantado ;)