Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: jdc en 20 Enero 2010, 16:59 pm



Título: Como verificó esto en php?
Publicado por: jdc en 20 Enero 2010, 16:59 pm
Necesito saber sí una variable es "algo.otracosa.otramas". A alguien se le ocurre? He pensado harto pero no me resulta :s


Título: Re: Como verificó esto en php?
Publicado por: Shell Root en 20 Enero 2010, 17:04 pm
WTF!


Título: Re: Como verificó esto en php?
Publicado por: jdc en 20 Enero 2010, 17:08 pm
No está mal escrita la pregunta... Es problema de lectura, lee otra vez y me dices que no entiendes xD yo te lo dibujo con manzanas


Título: Re: Como verificó esto en php?
Publicado por: Novlucker en 20 Enero 2010, 17:20 pm
Las manzanas por favor  :-*

Saludos


Título: Re: Como verificó esto en php?
Publicado por: Shell Root en 20 Enero 2010, 17:21 pm
... sí una variable es "algo.otracosa.otramas"...
Ok. ¬¬

Código
  1. if ($strVariable == "algo.otracosa.otramas")

¬¬


Título: Re: Como verificó esto en php?
Publicado por: jdc en 20 Enero 2010, 17:31 pm
Ja ja ja maldición... Yo me entiendo la pregunta pero no se responderme :xD
Ingreso una variable cualquiera, pero necesito que tenga 2 puntos y un texto cualquiera entre ellos, por ejemplo:
 
hola.chao.12a = válido
walala = inválido
wa.la = inválido
wa.la.la = válido
cualquier.cosa.escritaasi = válido
 
Ahora sí? xD upS olvide las manzanas
 
manzanaverde.manzanaroja.manzanamadura = válido
manza.na = inválido
 
:xD


Título: Re: Como verificó esto en php?
Publicado por: WHK en 20 Enero 2010, 17:51 pm
Código
  1. <?php
  2. verifica('test1');
  3. verifica('test1.test2');
  4. verifica('test1.test2.test3');
  5. verifica('test1.test2.test3.test4');
  6.  
  7. function verifica($str){
  8. if(count(explode('.', $str)) > 2)
  9.  echo 'Valido<br />';
  10. else
  11.  echo 'Invalido<br />';
  12. }
  13. ?>

Citar
Invalido
Invalido
Valido
Valido


Título: Re: Como verificó esto en php?
Publicado por: jdc en 20 Enero 2010, 18:01 pm
Necesito sólo 2 puntos, ya había pensado algo asi pero en vez de > 2 con == 2 pero por ejemplo ahí sería válido también
 
..hola
Hola..
H..ola
 
Lo que necesito es que siempre haya escrito algo mas
 
Por ejemplo la función sólo válida que haya mas de 2 puntos pero en teoría debería comprobar que haya textopuntotextopuntotexto :( eso no se decirlo en php


Título: Re: Como verificó esto en php?
Publicado por: Jubjub en 20 Enero 2010, 18:08 pm
Expresiones regulares, investiga


Título: Re: Como verificó esto en php?
Publicado por: raul338 en 20 Enero 2010, 19:09 pm
Código:
^.+\..*\..*$

(Es una expresion regular)Creo que esa funciona, al menos la probe con los ejemplos que pusiste. Lo hice al toque, espero que de algo sirva ;)


Título: Re: Como verificó esto en php?
Publicado por: Castg! en 20 Enero 2010, 20:16 pm
Código
  1. <?php
  2. verifica('test1');
  3. verifica('test1.test2');
  4. verifica('test1.test2.test3');
  5. verifica('test1.test2.test3.test4');
  6.  
  7. function verifica($str){
  8. if(count(explode('.', $str)) = 3)
  9.  echo 'Valido<br />';
  10. else
  11.  echo 'Invalido<br />';
  12. }
  13. ?>

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


Título: Re: Como verificó esto en php?
Publicado por: jdc en 20 Enero 2010, 20:23 pm
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


Título: Re: Como verificó esto en php?
Publicado por: luiggy2 en 20 Enero 2010, 20:38 pm
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
  1. <?php
  2. $explosion=explode('.', $str);
  3.  
  4. if ($explosion[0]!="" && $explosion[1]!="" && $explosion[2]!="" $$ $explosion[4]=="")
  5. {
  6. echo "valido";
  7. }
  8. else
  9. {
  10. echo "no valido";
  11. };
  12.  
  13. ?>
  14.  

POSDATA: NO LO HE PROBADO


Título: Re: Como verificó esto en php?
Publicado por: Castg! en 20 Enero 2010, 20:46 pm
habia un error, este codigo SI LO PROBE! y me funciona perfecto,:
Código
  1. <?php
  2. function verifica($str){
  3. if(count(explode('.', $str)) == 3)
  4.  echo 'Valido<br />';
  5. else
  6.  echo 'Invalido<br />';
  7. }
  8. verifica('test1');
  9. verifica('test1.test2');
  10. verifica('test1.test2.test3');
  11. verifica('test1.test2.test3.test4');
  12. ?>

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


Título: Re: Como verificó esto en php?
Publicado por: jdc 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!


Título: Re: Como verificó esto en php?
Publicado por: raul338 en 20 Enero 2010, 21:25 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 (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
  1. <html>
  2. <head><title>Prueba de expreiones regulares</title></head>
  3. <body>
  4. <form method="POST">
  5. <?php
  6. if (isset($_POST["pruebas"])) {
  7.  $cadenas = explode("\n", $_POST["pruebas"]);
  8.  $patron = "^.+\..*\..+$";
  9.  
  10.  foreach($cadenas as $prueba) {
  11.    if (ereg($patron, $prueba)) {
  12.        echo "$prueba: <b>Valido<b/><br/ >\n";
  13.    } else {
  14.        echo "$prueba: Invalido<br />\n";
  15.    }
  16.  }
  17. }
  18. ?>
  19. <textarea name="pruebas" cols="50" rows="7">
  20. <?php if (!isset($_POST["pruebas"])) { ?>
  21. hola.chao.12a
  22. walala
  23. wa.la
  24. wa.la.la
  25. cualquier.cosa.escritaasi
  26. test1
  27. test1.test2
  28. test1.test2.test3
  29. test1.test2.test3.test4
  30. <?php } else
  31.   echo $_POST["pruebas"]; ?>
  32. </textarea>
  33. <br />
  34. <input type="submit" value="probar" />
  35. </form>
  36. </body>
  37. </html>
  38.  


Título: Re: Como verificó esto en php?
Publicado por: Castg! en 20 Enero 2010, 21:31 pm
no funciona :S
Citar
hola.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
  1. <?php
  2. function verifica($str){
  3. $str2 = explode('.', $str);
  4. $coun = count($str2);
  5. if($coun == 3 && $str2[0]!="" && $str2[1]!="" && $str2[2]!="")
  6.  echo 'Valido<br />';
  7. else
  8.  echo 'Invalido<br />';
  9. }
  10. verifica('test1');
  11. verifica('test1.test2');
  12. verifica('test1.test2.test3');
  13. verifica('test1.test2.test3.test4');
  14. ?>


Título: Re: Como verificó esto en php?
Publicado por: luiggy2 en 20 Enero 2010, 21:34 pm
no funciona :S
Citar
hola.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
  1. <?php
  2. function verifica($str){
  3. $str2 = explode('.', $str);
  4. $coun = count($str2);
  5. if($coun == 3 && $str2[0]!="" && $str2[1]!="" && $str2[2]!="")
  6.  echo 'Valido<br />';
  7. else
  8.  echo 'Invalido<br />';
  9. }
  10. verifica('test1');
  11. verifica('test1.test2');
  12. verifica('test1.test2.test3');
  13. verifica('test1.test2.test3.test4');
  14. ?>

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!


Título: Re: Como verificó esto en php?
Publicado por: Castg! en 20 Enero 2010, 21:36 pm
funciona perfecto :D
mismos links de prueba:

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


Título: Re: Como verificó esto en php?
Publicado por: raul338 en 20 Enero 2010, 21:45 pm
no funciona :S
Citar
hola.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
  1. function Validar($prueba) {
  2.  if (ereg("^[^\.]+\.[^\.]*\.[^\.]+$", $prueba)) {
  3.    //echo "<b>$prueba: Valido</b><br/ >\n";
  4.    return true;
  5.  } else {
  6.    //echo "$prueba: Invalido<br />\n";
  7.    return false;
  8.  }
  9. }
  10.  


Título: Re: Como verificó esto en php?
Publicado por: jdc en 20 Enero 2010, 21:50 pm
@Raul está muy bueno gracias... También como está en tu página el test te aviso que tienes XSS xD ja ja
 
@luiggy2 :s yo todavía no posteo ningún código.
 
@cast gracias también... Como agradecimiento ingresé mi contraseña en la imagen que me mandaste al correo, aunque igual es extraño que gmail me pida mi contraseña de hotmail para abrir un enlace xD


Título: Re: Como verificó esto en php?
Publicado por: Castg! en 20 Enero 2010, 21:52 pm
porq! justo que borre el archivo! jaja, te tengo que hablar de esa imngaen. dejo el tema aca. denada, un gusto ayudarte.


Título: Re: Como verificó esto en php?
Publicado por: raul338 en 20 Enero 2010, 21:53 pm
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

@Raul está muy bueno gracias... También como está en tu página el test te aviso que tienes XSS xD ja ja

XSS?? donde  :o :o lo hackeo ya mismo jajaja XD


Ahi te modifique la expresion regular, ahi queda más "pro" :xD


Título: Re: Como verificó esto en php?
Publicado por: luiggy2 en 20 Enero 2010, 22:40 pm
@Raul está muy bueno gracias... También como está en tu página el test te aviso que tienes XSS xD ja ja
 
@luiggy2 :s yo todavía no posteo ningún código.
 
@cast gracias también... Como agradecimiento ingresé mi contraseña en la imagen que me mandaste al correo, aunque igual es extraño que gmail me pida mi contraseña de hotmail para abrir un enlace xD

Perdón, iba pro Raul.

Saludos!


Título: Re: Como verificó esto en php?
Publicado por: raul338 en 20 Enero 2010, 23:29 pm
@Raul está muy bueno gracias... También como está en tu página el test te aviso que tienes XSS xD ja ja
 
@luiggy2 :s yo todavía no posteo ningún código.
 
@cast gracias también... Como agradecimiento ingresé mi contraseña en la imagen que me mandaste al correo, aunque igual es extraño que gmail me pida mi contraseña de hotmail para abrir un enlace xD

Perdón, iba pro Raul.

Saludos!

jeje...no se imaginan el poder de las expresiones regulares  >:D
[Source][VB] Calculadora de operaciones combinadas (http://foro.elhacker.net/net/calculadora_por_jerarquia_c-t262744.0.html;msg1282433#msg1282433) (con expresiones regulares, ultima revision (?))
Re: calculadora por jerarquia ()*/+- ...C#... (http://foro.elhacker.net/net/calculadora_por_jerarquia_c-t262744.0.html;msg1282433#msg1282433) (version anterior :P)


Título: Re: Como verificó esto en php?
Publicado por: ~ Yoya ~ en 21 Enero 2010, 00:22 am
A mi me gustan muchos las expreciones regulares, aparte de que son muy buenas, no varian muchos en los diferentes lenguajes de programacion y resuelten muchos problemas en pocas lineas xDD.

Si no sabes aprende xDDD.


Título: Re: Como verificó esto en php?
Publicado por: KrossPock en 8 Febrero 2010, 05:08 am
Me parece que se puede hacer mas corto con preg_match:

Código:
<?php
$a="hola.ggg.s";
If (preg_match('/(.+)\.(.+)\.(.+)/',$a,$res)){
  echo "bien";
  }else{
  echo "mal";
  }
?>


Título: Re: Como verificó esto en php?
Publicado por: raul338 en 8 Febrero 2010, 14:22 pm
No se aplica a todos los casos, ademas si recuerdo bien....eso funcionaria con "a.a.a.a.a" (porque el "\." tambien es parte de . entonces lo toma igual)

Y ademas, el dijo que tambien se puede poner "aa..a" por lo que tu expresion regular obliga a poner al menos un caracter entre los puntos


Título: Re: Como verificó esto en php?
Publicado por: Castg! en 8 Febrero 2010, 18:11 pm
tal ves si:
Código
  1. <?php
  2. $a="hola.ggg.s";
  3. if (preg_match('/^(\w|\d)+\.(\w|\d)+\.(\w|\d)+$/',$a,$res)){
  4.  echo "bien";
  5.  }else{
  6.  echo "mal";
  7.  }
  8. ?>


Título: Re: Como verificó esto en php?
Publicado por: KrossPock en 8 Febrero 2010, 18:47 pm
No se aplica a todos los casos, ademas si recuerdo bien....eso funcionaria con "a.a.a.a.a" (porque el "\." tambien es parte de . entonces lo toma igual)

Y ademas, el dijo que tambien se puede poner "aa..a" por lo que tu expresion regular obliga a poner al menos un caracter entre los puntos

Tenes razon... no me fije en eso...

Y ademas, el dijo que tambien se puede poner "aa..a" por lo que tu expresion regular obliga a poner al menos un caracter entre los puntos

En ese caso se pone (.*)


Título: Re: Como verificó esto en php?
Publicado por: raul338 en 8 Febrero 2010, 23:26 pm
pero ya fue resuelto y de mas de una forma :xD

cast, tu metodo tiene el mismo "defecto" que el de KrossPock


Título: Re: Como verificó esto en php?
Publicado por: Castg! en 9 Febrero 2010, 00:05 am
entonces:
Código
  1. <?php
  2. $a="hola.ggg.s";
  3. if (preg_match('/^(\w|\d)*\.(\w|\d)*\.(\w|\d)*$/',$a,$res)){
  4.  echo "bien";
  5.  }else{
  6.  echo "mal";
  7.  }
  8. ?>
??


Título: Re: Como verificó esto en php?
Publicado por: raul338 en 9 Febrero 2010, 00:22 am
no, porque eso valida "..." perfectamente, tu ya habias participado en esto y creo que tu respuesta de antes estaba bien (creo)


Título: Re: Como verificó esto en php?
Publicado por: Castg! en 9 Febrero 2010, 01:03 am
pero entoncesd porq acepta aa.. y no ... xD! jajaj bueno, dejemoslo ahi total el ya soluciono su problema :p


Título: Re: Como verificó esto en php?
Publicado por: KrossPock en 9 Febrero 2010, 03:50 am
Edit: Perdon, me confundi de post, que algun mod lo borre