Compañeros(as)
Tengo el siguiente problema estoy tratando de hacer funcionar una funcion que encontre en la web...pero no resulta.
Este es mi formulario llamado form_rut.php
Código HTML:
<body>
<form id="form_rut" name="form_rut" method="post" action="procesar_rut.php">
<table width="225">
<tr>
<td width="26">Rut:</td>
<td width="108"><input name="txtRut" type="text" id="txtRut" /></td>
<td width="69"><label>
<input name="textfield" type="text" size="5" />
</label></td>
</tr>
<tr>
<td> </td>
<td><label>
<input name="btnVerificar" type="submit" id="btnVerificar" value="Enviar" />
</label></td>
<td> </td>
</tr>
</table>
</form>
</body>
Y aca esta la funcion que valida el rut, voy a copiarla tal cual como la encontre incluyendo los derechos de autor con esta funcion genere un archivo llamado procesar_rut.php la llamo desde el formulario.
Código PHP:
/* Introducción *****************************************************
* Dígito Verificador 2.1, aunque nunca hubo una versión 1.0 *
* Lo que hice fue bajar dv1.1 del baúl de la abuela y *
* modificarlo, porque no me funcionaba. Le encontré unas pifias *
* y las corregí, después lo programé para que funcionara con *
* RUT's en el formato 12345678 y en el formato 12.345.678 *
* Finalmente, le puse 4 opciones para ser devuelto *
* *
* Modo de uso (ejemplo) ********************************************
* rut ( string rut, int formato ) *
* Ejemplo: si el rut es 12345678 o 12.345.678 *
* formato 0: devuelve 5 *
* formato 1: devuelve 12.345.678-5 *
* formato 2: devuelve 12345678-5 *
* formato 3: devuelve 123456785 *
* *
* Copyright ********************************************************
* Lo único que les pido es que citen mi nombre y mi e-mail cuando *
* usen esta función. Yo también respeto a otros creadores! *
* *
* *
* Alejandro Mallea, [email protected] *
*********************************************************************/
function rut($ru,$f) {
$parte = explode('.',$ru,3);
$rut = $ru = $parte[0].$parte[1].$parte[2];
$i = 0;
$res = '0';
while ($rut) {
$resto = round((($rut/10)-floor($rut/10))*10);
$rut = floor($rut/10);
$res[$i++] = $resto;
}
$suma = ($res[0]*2+$res[1]*3+$res[2]*4+$res[3]*5+$res[4]*6+$res[5]*7+$res[6]*2+$res[7]*3)/11;
$dv = 11-ceil(($suma-floor($suma))*10);
if ($dv == 11) {
$dv = 0;
}
elseif ($dv == 10) {
$dv = 'k';
}
$a = floor ($ru / 1000000);
$b = floor ($ru / 1000) - $a * 1000;
$c = $ru - floor ($ru / 1000) * 1000;
// Lo siguiente revisa si los números $b y $c tienen sólo 1 o 2 dígitos
// y los devuelve (como string) en el formato 00X o 0XY (3 dígitos)
if ($b / 100 < 1) {
if ($b / 10 < 1) {
$b = '00'.$b;
}
else {
$b = '0'.$b;
}
}
if ($c / 100 < 1) {
if ($c / 10 < 1) {
$c = '00'.$c;
}
else {
$c = '0'.$c;
}
}
if ($f==0) {
return $dv; // Devuelve el dígito verificador
}
elseif ($f==1) {
return $a.'.'.$b.'.'.$c.'-'.$dv; // Devuelve en el formato 12.345.678-5
}
elseif ($f==2) {
return $a.$b.$c.'-'.$dv; // Devuelve en el formato 12345678-5
}
elseif ($f==3) {
return $a.$b.$c.$dv; // Devuelve en el formato 123456785
}
}
?>
Ojala puedan ayudarme ya que estoy hace varias horas tratando de poder llamar la funcion y no resulta sera quizas nose llamarla o quizas debe estar la funcion en el mismo archivo del formulario.
Bueno se agradece de antemano
Saludos desde CHILE