Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2007, 09:49
juan007
 
Fecha de Ingreso: marzo-2004
Ubicación: Chile
Mensajes: 382
Antigüedad: 20 años, 1 mes
Puntos: 0
Rut Chile ...no puedo hacer funcionar

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>&nbsp;</td>
      <td><label>
        <input name="btnVerificar" type="submit" id="btnVerificar" value="Enviar" />
      </label></td>
      <td>&nbsp;</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