Foros del Web » Programando para Internet » PHP »

problema con digito verificador

Estas en el tema de problema con digito verificador en el foro de PHP en Foros del Web. estoy tratando de implementar un código de verificación de rut que encontré en los forosdelweb pero tengo problemas, me arroja false, o sea no me ...
  #1 (permalink)  
Antiguo 30/05/2003, 18:36
 
Fecha de Ingreso: mayo-2003
Mensajes: 119
Antigüedad: 20 años, 11 meses
Puntos: 0
problema con digito verificador

estoy tratando de implementar un código de verificación de rut que encontré en los forosdelweb pero tengo problemas, me arroja false, o sea no me reconoce ningún rut, qué puede ser,
code:
<?php

function validar_rut($rut,$digito_v){

if ($rut == ""){
$verificado=false;
return $verificado;
}

$x=2;
$sumatorio=0;
for ($i=strlen($rut)-1;$i>=0;$i--){
if ($x>7){$x=2;}
$sumatorio=$sumatorio+($rut[$i]*$x);
$x++;
}
$digito=$sumatorio%11;
$digito=11-$digito;

switch ($digito){
case 10:
$digito="k";
break;
case 11:
$digito="0";
break;
}

if (strtolower($digito_v)==$digito){
$verificado=true;
} else {
$verificado=false;
}

return $verificado;
}
if (validar_rut($rut,$digito)){
echo "rut válido";
}else{
echo "RUT no valido";
}

?>
espero me puedan ayudar.
gracias

Andrea.
__________________
Saludos

Última edición por andreamod; 30/05/2003 a las 18:47
  #2 (permalink)  
Antiguo 30/05/2003, 20:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Seguro que estas probandolo así:

Código PHP:
$rut="1234567";
$digito="K";

if (
validar_rut($rut,$digito)){
echo 
"rut válido";
}else{
echo 
"RUT no valido";

(el rut y dígito son hipotéticos .. prueba con el tuyo ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 31/05/2003, 10:08
 
Fecha de Ingreso: mayo-2003
Mensajes: 119
Antigüedad: 20 años, 11 meses
Puntos: 0
despues de la condicion reemplazé el echo rut correcto por el código que quiero que se ejecute, pero no funciona, voy a postear el codigo entero para que lo chequees.
****ya funciona***** gracias Cluster, tu código es genial.

__________________
Saludos

Última edición por andreamod; 31/05/2003 a las 10:42
  #4 (permalink)  
Antiguo 24/02/2008, 10:45
 
Fecha de Ingreso: noviembre-2007
Mensajes: 2
Antigüedad: 16 años, 5 meses
Puntos: 0
Pregunta Re: problema con digito verificador

Sigo con problemas o es que la empresa tiene mal puesto el digito verificador.

Explico: De acuerdo al algoritmo entregado por el registro civil la normativa n1 no se estaria cumpliendo, eso implicaria que la empresa tiene mal puesto el rut o es que me esta fallando el algoritmo a mi??? me podria ayudar-...

Aca va el ejemplo:
81110200-K <- este es el rut de la empresa

Segun los calculos me esta dando como resultado 8 lo que no coincide con la
el digito verificador K

Este es el algoritmo que estoy empleando.
Ya lo probe con 2 rut y el mio propio y el de mi hija que es con extension K
me corrio bueno pero para el ejemplo de arriba no me funciona.

DG = UCase(Right(Rut, 1))
vpos = 2
Acumulador = 0
For Contador = Len(Rut) - 1 To 1 Step -1

Acumulador = Acumulador + Val(Mid(Rut, Contador, 1)) * vpos

vpos = vpos + 1
If vpos = 8 Then
vpos = 2
End If
Next

Digito = 11 - (Acumulador Mod 11)
RutDigito = CStr(Digito)
If Digito = 10 Then RutDigito = "K"
If Digito = 11 Then RutDigito = "0"

If RutDigito = DG Then ValidarRut = True
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:57.