Foros del Web » Programando para Internet » PHP »

No encuentro el error... validador digito verificador php

Estas en el tema de No encuentro el error... validador digito verificador php en el foro de PHP en Foros del Web. Hola.... tengo un problema con un código para mostrar el dígito verificador de un rut ... la verdad es que copie el código de otra ...
  #1 (permalink)  
Antiguo 06/12/2009, 21:00
 
Fecha de Ingreso: diciembre-2009
Mensajes: 4
Antigüedad: 14 años, 4 meses
Puntos: 0
No encuentro el error... validador digito verificador php

Hola.... tengo un problema con un código para mostrar el dígito verificador de un rut ... la verdad es que copie el código de otra pagina y lo adapte a mi formulario .... El caso es que me da el siguiente error:
Parse error: syntax error, unexpected $end in C:\AppServ\www\php_ejercicio\ejercicio_veinticinco .php on line 49..
He revisado muchas veces el código con detalle y no logro encontrar donde esta el error. ... he perdido mucho tiempo en eso .... envío mi código a ver si me pueden ayudar ... se los agradecerla mucho.

Código:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejercicios Propuestos XXV</title>
</head>

<body>
<?php if(!isset($_GET['enviar'])){?>
<form method="GET" action="<?= $_SERVER['PHP_SELF'] ?>" >
<p>Escriba el rut a verificar: </p>
	<input name="rut" type = "text" maxlength = "8"/>
	<input name = "enviar" type="submit" value = "Verificar"/>
</form>
<?php
}else{
if(isset($_GET['enviar'])){
$rut = $_GET['rut'];
function valida_rut($rut){
	$rut = strtoupper(ereg_replace('\.|,|-','',$rut));
	$sub_rut = substr($rut,0,strlen($rut));
	$sub_dv = substr($rut,-1);
	$x=2;
	$s=0;
	for($i=strlen($sub_rut)-1; $i>=0; $i--){
		if($x >7){
			$x=2;
		}
		$s += $sub_rut[$i] * $x;
		$x++;
	}
	$dv = 11-($s % 11);
	if($dv == 10){
		$dv = 'K';
	}
	if($dv == 11){
		$dv = '0';
	}
	return $dv;
}
echo valida_rut($rut);
?>  
<form method="GET" action="<?= $_SERVER['PHP_SELF'] ?>" > <!--se crea un boton volver para ingresar datos nuevamente-->
<td width="51"><input name = "volver" type="submit" id ="volver" value = "Volver"/></td>
</form>
<?php
} ?>
</body>
</html>
  #2 (permalink)  
Antiguo 06/12/2009, 21:11
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: No encuentro el error... validador digito verificador php

que error te sale? que linea es la 49?
__________________
Hospedaje Web al mejor costo!
  #3 (permalink)  
Antiguo 06/12/2009, 21:27
 
Fecha de Ingreso: diciembre-2009
Mensajes: 4
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: No encuentro el error... validador digito verificador php

el error es: Parse error: syntax error, unexpected $end in C:\AppServ\www\php_ejercicio\ejercicio_veinticinco .php on line 49
y la linea 49 es la ultima del codigo </html>
  #4 (permalink)  
Antiguo 06/12/2009, 21:34
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: No encuentro el error... validador digito verificador php

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  4. <title>Ejercicios Propuestos XXV</title>
  5. </head>
  6.  
  7. <body>
  8. <?php if(!isset($_GET['enviar'])){?>
  9. <form method="GET" action="<?= $_SERVER['PHP_SELF']; ?>" >
  10. <p>Escriba el rut a verificar: </p>
  11.     <input name="rut" type = "text" maxlength = "8"/>
  12.     <input name = "enviar" type="submit" value = "Verificar"/>
  13. </form>
  14. <?php
  15. }else{
  16. if(isset($_GET['enviar'])){
  17. $rut = $_GET['rut'];
  18. function valida_rut($rut){
  19.     $rut = strtoupper(ereg_replace('\.|,|-','',$rut));
  20.     $sub_rut = substr($rut,0,strlen($rut));
  21.     $sub_dv = substr($rut,-1);
  22.     $x=2;
  23.     $s=0;
  24.     for($i=strlen($sub_rut)-1; $i>=0; $i--){
  25.         if($x >7){
  26.             $x=2;
  27.         }
  28.         $s += $sub_rut[$i] * $x;
  29.         $x++;
  30.     }
  31.     $dv = 11-($s &#37; 11);
  32.     if($dv == 10){
  33.         $dv = 'K';
  34.     }
  35.     if($dv == 11){
  36.         $dv = '0';
  37.     }
  38.     return $dv;
  39. }
  40. }
  41. echo valida_rut($rut);
  42. ?>  
  43. <form method="GET" action="<?= $_SERVER['PHP_SELF']; ?>" > <!--se crea un boton volver para ingresar datos nuevamente-->
  44. <td width="51"><input name = "volver" type="submit" id ="volver" value = "Volver"/></td>
  45. </form>
  46. <?php
  47. } ?>
  48. </body>
  49. </html>


Saludos
__________________
Hospedaje Web al mejor costo!
  #5 (permalink)  
Antiguo 06/12/2009, 22:21
 
Fecha de Ingreso: diciembre-2009
Mensajes: 4
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: No encuentro el error... validador digito verificador php

muxas gracias por la respuesta.... pero sabes ahora me da otro error .... :S
Parse error: syntax error, unexpected T_IF in C:\AppServ\www\AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA .php on line 33
en esa linea esta (if($dv == 10){);
  #6 (permalink)  
Antiguo 06/12/2009, 22:24
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: No encuentro el error... validador digito verificador php

dejame checar :/
__________________
Hospedaje Web al mejor costo!
  #7 (permalink)  
Antiguo 06/12/2009, 22:26
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: No encuentro el error... validador digito verificador php

ya vi seguramente cuando copiaste el code tienes algo como esto:

Cita:
$dv = 11-($s & # 37; 11);
ahi esta el error, cambialo por

$dv = 11-($s % 11);


Saludos
__________________
Hospedaje Web al mejor costo!
  #8 (permalink)  
Antiguo 06/12/2009, 23:17
 
Fecha de Ingreso: diciembre-2009
Mensajes: 4
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: No encuentro el error... validador digito verificador php

muxas gracias ... te pasaste ahora pude ejercutarlo sin ningun problema .... =)
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 06:17.