Foros del Web » Programando para Internet » PHP »

Codigo Para Validar RUT Chileno!

Estas en el tema de Codigo Para Validar RUT Chileno! en el foro de PHP en Foros del Web. Estimados, googlie y forosdelwebie XD mucho y me encontré con muchos codigos para validar el rut lo cierto es que ninguno me funciona imagino que ...
  #1 (permalink)  
Antiguo 13/08/2009, 14:16
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Codigo Para Validar RUT Chileno!

Estimados, googlie y forosdelwebie XD mucho
y me encontré con muchos codigos para validar el rut
lo cierto es que ninguno me funciona
imagino que es por las versiones de php
en gran parte me decia deprecated, parse error y otras yerbas

asi que pido si es que alguien tiene el codigo de un validador de rut chileno que esté actualizado y por ende funke en php5 para que lo comparta conmigo y con toda la comunidad

se agradeceria!
saludos

Última edición por Twonex; 13/08/2009 a las 14:46
  #2 (permalink)  
Antiguo 13/08/2009, 14:46
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: Codigo Para Validar Rut Chileno!

la verdad ese tipo de cosas si esta para php4 deberia irte bien para php5, podrias mostrar tu codigo y decirnos por que crees y donde crees que falla y te podemos ayudar, de una forma que prendas que hacen las funciones mas que pasenme el codigo funcionando...

saludos...
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 13/08/2009, 14:50
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Respuesta: Codigo Para Validar RUT Chileno!

este es el codigo que estoy usando ahora

Código PHP:
function valida_Rut($sUsr) { 
  if (!
preg_match("/(\d{7,8})-([\dK])/"strtoupper($sUsr), $aMatch)) { 
  return 
false
  } 
  
$sRutBase substr(strrev($aMatch[1]) , 0); 
  
$sCodigoVerificador $aMatch[2]; 
  
$iCont 2
  
$iSuma 0
  for (
$i 0;$i<strlen($sRutBase);$i++) { 
  if (
$iCont>7) { 
  
$iCont 2
  } 
  
$iSuma+= ($sRutBase{$i}) *$iCont
  
$iCont++; 
  } 
  
$iDigito 11-($iSuma%11); 
  
$sCaracter substr("-123456789K0"$iDigito1); 
  return (
$sCaracter == $sCodigoVerificador); 
  } 
el error es:
Parse error: parse error, expecting `')'' in C:\wamp\www\sistema\funciones.php on line 15

y la linea 15 es la del for


no cacho que onda!
pedi el codigo porque generalmente estas cosas ya están hechas, solo se implementan!
saludos


PD: tengo otro que es mas antiguo que este
todos los codigos que he encontrado tienen fecha entre 2002 y 2004
por eso lo de las versiones!
  #4 (permalink)  
Antiguo 13/08/2009, 14:54
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: Codigo Para Validar RUT Chileno!

for ($i = 0;$i<strlen($sRutBase);$i++) {

deberia ser:

$nuevoStilo=strlen($sRutBase);
for ($i = 0;$i>$nuevoStilo;$i++) {


Espero y se componga el error. Saludos
__________________
Hospedaje Web al mejor costo!
  #5 (permalink)  
Antiguo 13/08/2009, 15:27
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Respuesta: Codigo Para Validar RUT Chileno!

edit!

dale, ahora no da error
pero no funciona, le meti rut incorrectos y no pasa nada
de hecho puse esto como rut asdf987 y paso en banda!!
lo chequie en la BD y ahi estaba XD

el codigo que usaba antes era este
http://juque.cl/weblog/2004/06/16/va...ut-en-php.html

pero me dice que esto (ereg_replace) esta deprecated
osea... obsoleto!

Última edición por Twonex; 13/08/2009 a las 15:33
  #6 (permalink)  
Antiguo 14/08/2009, 13:40
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: Codigo Para Validar RUT Chileno!

te dejo algo mas completo ;)

http://www.andrade.cl/labs/rut.php

Lo vamos a dejar aquí por si se cae la web uno nunca sabe, y despues alguien busca ;)

Código php:
Ver original
  1. <?php
  2. function validaRut($rut){
  3.     if(strpos($rut,"-")==false){
  4.         $RUT[0] = substr($rut, 0, -1);
  5.         $RUT[1] = substr($rut, -1);
  6.     }else{
  7.         $RUT = explode("-", trim($rut));
  8.     }
  9.     $elRut = str_replace(".", "", trim($RUT[0]));
  10.     $factor = 2;
  11.     for($i = strlen($elRut)-1; $i >= 0; $i--):
  12.         $factor = $factor > 7 ? 2 : $factor;
  13.         $suma += $elRut{$i}*$factor++;
  14.     endfor;
  15.     $resto = $suma &#37; 11;
  16.    $dv = 11 - $resto;
  17.     if($dv == 11){
  18.         $dv=0;
  19.     }else if($dv == 10){
  20.         $dv="k";
  21.     }else{
  22.         $dv=$dv;
  23.     }
  24.    if($dv == trim(strtolower($RUT[1]))){
  25.        return true;
  26.    }else{
  27.        return false;
  28.    }
  29. }
  30.  
  31. ?>
  32. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  33. <html xmlns="http://www.w3.org/1999/xhtml">
  34.     <head>
  35.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  36.         <title></title>
  37.     </head>
  38.     <body>
  39.        <form method="post" action="">
  40. <label for="rut">Ingresa tu RUT para validar</label>
  41. <input name="rut" value="" type="text" />
  42. <input type="submit" value="probar" />
  43. </form>
  44. <div>
  45. <?php
  46. if($_POST['rut']){
  47.     if(validaRut($_POST['rut'])==true){
  48.         echo "El rut ".$_POST['rut']." es v&aacute;lido";
  49.     }else{
  50.          echo "El rut ".$_POST['rut']." no es incorrecto";
  51.     }
  52. }
  53. ?>
  54. </div>
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #7 (permalink)  
Antiguo 17/08/2009, 11:21
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Respuesta: Codigo Para Validar RUT Chileno!

muchisimas gracias! está buena la página...

el problema es que implemente ese codigo tal cual está, pero no me funciona
me dice que todos los rut ingresados son incorrectos!

cuak...
  #8 (permalink)  
Antiguo 17/08/2009, 13:34
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: Codigo Para Validar RUT Chileno!

algo debes estar haciendo mal por que en la misma pagina de pruebas, te puedes dar cuenta que el código funciona bien....
peganos tu código a lo mejor repites algún nombre de variable o quizás que haces :P

saludos...
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #9 (permalink)  
Antiguo 18/08/2009, 13:13
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Codigo Para Validar RUT Chileno!

Esto tambien podria servirte, lo encontre por ahi cuando lo necesite.
Código PHP:
$rut="12345678-9"//aca pone un rut o tu variable en este formato
$arrRut explode("-",$rut);
if(
dv($arrRut[0]) == strtoupper($arrRut[1])){
    echo 
"correcto";
}else{
    echo 
"incorrecto";
}
function 
dv($r){
    
$s=1;for($m=0;$r!=0;$r/=10)$s=($s+$r&#37;10*(9-$m++%6))%11;
    
return chr($s?$s+47:75);

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!

Última edición por Marvin; 18/08/2009 a las 13:15 Razón: Agregue el strtoupper() para las letras
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 14:36.