Como verificó esto en php?

Iniciado por jdc, 20 Enero 2010, 16:59 PM

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

Castg!

Código (php) [Seleccionar]
<?php
verifica
('test1');
verifica('test1.test2');
verifica('test1.test2.test3');
verifica('test1.test2.test3.test4');
 
function 
verifica($str){
 if(
count(explode('.'$str)) = 3)
  echo 
'Valido<br />';
 else
  echo 
'Invalido<br />';
}
?>


no es tan dificil creop,
te tendria que responder asi, NO PROBE EL CODIGO!!!!
CitarInvalido
Invalido
Valido
Invalido

jdc

Nop, ya dije que ya había pensado en ver sí era igual a 3, lo de las expresiones regulares lo estoy leyendo pero creo que lo haré mejor en la noche.

Por lo que alcance a leer está vigente preg_ y ereg_ es obsoleto desde la versión lanzada en marzo 2009 por lo tanto intentaré hacerlo con la expresión regular preg apenas entienda como diablos se ponen las condiciones de la expresión a comparar xD todo a la noche, no te pierdas el próximo capítulo xD

luiggy2

Te lo voy a poner a lo basto.

1º=> explotas la cadena por los puntos.
2º=> Si explosion 1, explosion 2, explosion tres !="" ; y explosion 4=="";

Entonces es correcta.

Código (php) [Seleccionar]

<?php
 $explosion
=explode('.'$str);
 
if (
$explosion[0]!="" && $explosion[1]!="" && $explosion[2]!="" $$ $explosion[4]=="")
{
echo 
"valido";
}
else
{
echo 
"no valido";
};

?>



POSDATA: NO LO HE PROBADO
" Las grandes ideas suelen salir la mayoría de veces de grandes estupideces "

Castg!

#13
habia un error, este codigo SI LO PROBE! y me funciona perfecto,:
Código (php) [Seleccionar]
<?php 
function verifica($str){
 if(
count(explode('.'$str)) == 3)
  echo 
'Valido<br />';
 else
  echo 
'Invalido<br />';
}
verifica('test1');
verifica('test1.test2');
verifica('test1.test2.test3');
verifica('test1.test2.test3.test4');
?>


ejemplo: http://ilovepc.comuf.com/fle.php
codigo tal cual la pagina: http://ilovepc.comuf.com/fle.phps

jdc

Pero mira en tu función sí pones

Hola.. También lo arrojará como válido :s

A la noche lo veo muchas gracias a todos.

Un saludo!

raul338

Cita de: el-pollo en 20 Enero 2010, 21:17 PM
Pero mira en tu función sí pones

Hola.. También lo arrojará como válido :s

A la noche lo veo muchas gracias a todos.

Un saludo!

En este codigo "Hola.." no es valido, y esta en un hosting para que pruebes cualquier cosa que se te ocurra ;) (valida linea por linea)
http://raul338.iespana.es/regExpTest.php
Esta hecho con la expresion regular que te puse arriba (una modificacion, porque antes Hola.. si funcionaba xD)
Código (PHP) [Seleccionar]

<html>
<head><title>Prueba de expreiones regulares</title></head>
<body>
<form method="POST">
<?php
if (isset($_POST["pruebas"])) {
  
$cadenas explode("\n"$_POST["pruebas"]);
  
$patron "^.+\..*\..+$";

  foreach(
$cadenas as $prueba) {
    if (
ereg($patron$prueba)) {
        echo 
"$prueba: <b>Valido<b/><br/ >\n";
    } else {
        echo 
"$prueba: Invalido<br />\n";
    }
  }
}
?>

<textarea name="pruebas" cols="50" rows="7">
<?php if (!isset($_POST["pruebas"])) { ?>
hola.chao.12a
walala
wa.la
wa.la.la
cualquier.cosa.escritaasi
test1
test1.test2
test1.test2.test3
test1.test2.test3.test4
<?php } else
   echo 
$_POST["pruebas"]; ?>

</textarea>
<br />
<input type="submit" value="probar" />
</form>
</body>
</html>

Castg!

no funciona :S
Citarhola.chao.12a : Valido
walala : Invalido
wa.la : Invalido
wa.la.la : Valido
cualquier.cosa.escritaasi : Valido
test1 : Invalido
test1.test2 : Invalido
test1.test2.test3 : Valido
test1.test2.test3.test4 : Valido
hola.. : Valido
: Invalido

a ver con:

Código (php) [Seleccionar]
<?php 
function verifica($str){
$str2 explode('.'$str);
$coun count($str2);
 if(
$coun == && $str2[0]!="" && $str2[1]!="" && $str2[2]!="")
  echo 
'Valido<br />';
 else
  echo 
'Invalido<br />';
}
verifica('test1');
verifica('test1.test2');
verifica('test1.test2.test3');
verifica('test1.test2.test3.test4');
?>

luiggy2

Cita de: cɐstg en 20 Enero 2010, 21:31 PM
no funciona :S
Citarhola.chao.12a : Valido
walala : Invalido
wa.la : Invalido
wa.la.la : Valido
cualquier.cosa.escritaasi : Valido
test1 : Invalido
test1.test2 : Invalido
test1.test2.test3 : Valido
test1.test2.test3.test4 : Valido
hola.. : Valido
: Invalido

a ver con:

Código (php) [Seleccionar]
<?php 
function verifica($str){
$str2 explode('.'$str);
$coun count($str2);
 if(
$coun == && $str2[0]!="" && $str2[1]!="" && $str2[2]!="")
  echo 
'Valido<br />';
 else
  echo 
'Invalido<br />';
}
verifica('test1');
verifica('test1.test2');
verifica('test1.test2.test3');
verifica('test1.test2.test3.test4');
?>


Mucho mejor este que el mio, que te aseguras que solo tiene tres partes.

@el-pollo: Pero si en tu código pones hola... te aparece copmo válido

Saludos!
" Las grandes ideas suelen salir la mayoría de veces de grandes estupideces "


raul338

#19
Cita de: cɐstg en 20 Enero 2010, 21:31 PM
no funciona :S
Citarhola.chao.12a : Valido
walala : Invalido
wa.la : Invalido
wa.la.la : Valido
cualquier.cosa.escritaasi : Valido
test1 : Invalido
test1.test2 : Invalido
test1.test2.test3 : Valido
test1.test2.test3.test4 : Valido
hola.. : Valido
: Invalido

No se porque pero como que se atraza una linea, osea, intenta "Hola.." solo y te tira invalido, intenta "Hola.. (linea en blanco)" y te tira valido :-/ .... pero al menos funciona :xD

EDIT: Problema del cache del hosting  :silbar:
y cambie la expresion regular, ahora si funciona (antes si ponias 4 puntos funcionaba igual xD)

Código (php) [Seleccionar]

function Validar($prueba) {
  if (ereg("^[^\.]+\.[^\.]*\.[^\.]+$", $prueba)) {
    //echo "<b>$prueba: Valido</b><br/ >\n";
    return true;
  } else {
    //echo "$prueba: Invalido<br />\n";
    return false;
  }
}