Autor Tema: [resuelto]funciones iguales que no funcionan igual [ayuda]  (Leído 2132 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado 0rion

  • MiembrosReales
  • *
  • Mensajes: 46
Buenas mis queridos communiters, espero puedan ayudarme, porque realmente no me lo explico, en un codigo encontre una funcion para restringir los datos que pueden ser ingresados en un input de tipo text de html, la quise copiar para un codigo mio, y el problema es que a mi no me funciona y lo que hice fue solo copy-paste, estoy muy confundido :huh: , ya ni siquiera puedo copiar correctamente, espero que me puedan ayudar, lo que cada programa hace no es lo relevante, si no la funcion que no me funciona  :phew:
aqui el primer codigo:
Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//WC3//DTD XHTML 1.0 Strict//EN" "http://www.3w.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Pr&aacute;ctica 4 - Ejercicio 5</title>
<script>
function permite(elEvento, permitidos) {
// Variables que definen los caracteres permitidos
var numeros = "-,0123456789";
permitidos = numeros;
var evento = elEvento || window.event;
var codigoCaracter = evento.charCode || evento.keyCode;
var caracter = String.fromCharCode(codigoCaracter);
return permitidos.indexOf(caracter) != -1;
}
</script>
</head>
<body>
<form method="post" action="Ejercicio5.php">
<fieldset style="color:red;border:3px solid">
<font color="green" >Dig&iacute;te sus n&uacute;meros separados por comas ",": </font><br/>
<input type="text" name="caja" id="texto" onkeypress="return permite(event, 'num')"/><br />
<input type="submit" name="Submit" value="Generar"  /><br />
<?php
include_once("provar.php");
@
$valor $_POST["caja"];
provar($valor)
?>

</fieldset>
</form>
</body>
</html>
y aqui el mio:
Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title>P5P2 [Escriba su nombre completo]</title>
  <script>
  function permite(elEvento, permitidos)
  {
  var numeros = ".0123456789";
  permitidos = numeros;
  var evento = elEvento || window.event;
  var codigoCaracter = evento.charCode || evento.keyCode;
  var caracter = String.fromCharCode(codigoCaracter);
  return permitidos.indexOf(caracter) != -1;
  }
</script>
</head>

<?php
$codigo
="";
if(
$_POST)
{
$mask=$_POST["mascara"];
function 
evalmask($mask)
{
  
$octetos explode(".",$mask);
  
$counter 0;
  foreach(
$octetos as $a)
  {
    
$counter+=1;
  }
  if (
$counter==4)
  {
    foreach(
$octetos as $a => $b)
    {
      if((
$b<0||$b>255)||($b>=0&&$b<10&&strlen($b)>1)||($b>=10&&$b<100&&strlen($b)>2)||($b>=100&&$b<256&&strlen($b)>3))
      {
        
$a+=1;
        
$error[]="Valor erroneo en el octeto $a";
      }
      else
      {
        
$binoct[]=str_pad(decbin($b),8,"0",STR_PAD_LEFT);
      }
    }
    
//print_r($binoct);
    
foreach($binoct as $a => $b)
    {
      if(
$b=="00000000"||$b=="10000000"||$b=="11000000"||$b=="11100000"||$b=="11110000"||$b=="11111000"||$b=="11111100"||$b=="11111110"||$b=="11111111")
      {

      }else
      {
        
$a+=1;
        
$error[]="Valor erroneo en el octeto $a";
      }
    }
    if(
$binoct[0]=="00000000")
    {
      
$error[]="El primer octeto debe ser diferente de 0";
    }
    foreach(
$binoct as $a => $b)
    {
      if(
$a>0)
      {
        if(
$b!="00000000"&&$binoct[($a-1)]!="11111111")
        {
          
$error[]="Mascara no valida";
        }
      }
    }
    if(@
$error)
    {
      return 
$error;
    }
    elseif(
$binoct)
    {
      
$binoct implode(".",$binoct);
      return 
$binoct;
    }
  }
  else
  {
    return 
"Mascara no valida";
  }
}

$resultado evalmask($mask);
if(
is_string($resultado))
{
  
$codigo $resultado;
}
else
{
  foreach(
$resultado as $a)
  {
    
$codigo "$a <br />";
  }
}

}

echo
"
<body>
<form method="
POST" action="".$_SERVER["PHP_SELF"]."">
    <fieldset>
        <legend>Ingrese una mascara de subred</legend>
        Mascara: <input type="
text" name="mascara" value="".@$mask.""/>
        <input type="
submit" value="PROBAR" onkeypress="return permite(event'num')" />
    </fieldset>
    <fieldset>
    
$codigo
    </fieldset>
</form>
</body>

</html>
"
;
?>

De antemano gracias a los que se tomen la molestia de contestar :)
« Última Modificación: abril 14, 2010, 11:45:26 pm por vlad »


Desconectado vlad

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 6351
    • Qualium.net
Re:funciones iguales que no funcionan igual [ayuda]
« Respuesta #1 : abril 14, 2010, 07:53:57 am »
Te recomiendo que primero que saques el html del bloque <?php ?> y estando fuera podes cambiar esto <form method=\"POST\" action=\"".$_SERVER["PHP_SELF"]."\"> por <form method="POST" action="<?php echo $_SERVER["PHP_SELF"]; ?>">


En ese relajo de \""\" podes cometer muchos errores.

Total, el error es elemental mi querido Watson, y debo tomarte la palabra con lo de "ya ni siquiera puedo copiar correctamente", porque el onkeypress se lo pusiste al boton de submit y no al input[type=text].

Desconectado 0rion

  • MiembrosReales
  • *
  • Mensajes: 46
Re:funciones iguales que no funcionan igual [ayuda]
« Respuesta #2 : abril 14, 2010, 11:32:42 pm »
MUCHAS GRACIAS VLAD POR TU APORTE EN ADELANTE TRATARE DE COPIAR MEJOR  :phew: