Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: SrTrp en 19 Diciembre 2017, 20:16 pm



Título: preg_match es lo mismo que ereg?
Publicado por: SrTrp en 19 Diciembre 2017, 20:16 pm
Quería saber eso si es lo mismo ereg que preg_match o si sirve para lo mismo o cual es la direfencia :/ porque ereg lo uso en mi hosting, y me acabo de percatar que en mi localhost(xampp) no sirve esa función de ereg.
Código
  1. if (ereg("[^A-Za-z0-9]+",$_POST['usss'])) {
  2.      $error12 = base64_encode("Esos caracteres no sirven");
  3. echo "<script>location.href='/index.php?ffx=$error12'</script>";
  4. }
  5.  
  6.  
  7. _________________________________________________________________
  8.  
  9. if (preg_match("[^A-Za-z0-9]+",$_POST['usss'])) {
  10.      $error12 = base64_encode("Esos caracteres no sirven");
  11. echo "<script>location.href='/index.php?fxx=$error12'</script>";
  12. }
  13.  
  14.  


Título: Re: preg_match es lo mismo que ereg?
Publicado por: engel lex en 20 Diciembre 2017, 01:50 am
ereg es super viejo, fue marcado como obsoleto en 5.3, por allá hace como 4 años (o 5 años?)

estas funciones eran mucho más lentas y tenían problemas como que causaban overflows y otros detalles...  y si, ereg y preg son casi identicos, usualmente la mayor diferencia es que preg es más estricto con el regex


Título: Re: preg_match es lo mismo que ereg?
Publicado por: #!drvy en 20 Diciembre 2017, 07:30 am
ereg fue marcado como obsoleto en la versión 5.3 y fue eliminado de la versión >7.0. Su objetivo es el mismo (ejecutar sentencias regex) pero lo hacen de forma diferente.

De todos modos, si solo lo usas para validar, te recomiendo que uses la funcion nativa de PHP (filter_var (http://php.net/manual/es/function.filter-var.php)) con su correspondiente filtro (FILTER_VALIDATE_REGEXP).

Código
  1. <?php
  2.  
  3. $validateUsss = array('options'=>array('regexp'=>'[^A-Za-z0-9]+'));
  4.  
  5. if(!filter_var($_POST['usss'], $validateUsss)){
  6.    header('Location: index.php?fxx='.base64_encode('Esos caracteres no sirven'));
  7. }
  8.  
  9. ?>

Hay algunos filtros que ya los incluye PHP por defecto, como correos, url o IP.
http://php.net/manual/es/filter.filters.validate.php

Saludos


Título: Re: preg_match es lo mismo que ereg?
Publicado por: SrTrp en 20 Diciembre 2017, 20:50 pm
ereg es super viejo, fue marcado como obsoleto en 5.3, por allá hace como 4 años (o 5 años?)

estas funciones eran mucho más lentas y tenían problemas como que causaban overflows y otros detalles...  y si, ereg y preg son casi identicos, usualmente la mayor diferencia es que preg es más estricto con el regex
Gracias ya decia, pero porque no me vale con el preg solo aceptar numeros y letras me acepta todo signos y con ereg no me aceptaba signos.

ereg fue marcado como obsoleto en la versión 5.3 y fue eliminado de la versión >7.0. Su objetivo es el mismo (ejecutar sentencias regex) pero lo hacen de forma diferente.

De todos modos, si solo lo usas para validar, te recomiendo que uses la funcion nativa de PHP (filter_var (http://php.net/manual/es/function.filter-var.php)) con su correspondiente filtro (FILTER_VALIDATE_REGEXP).

Código
  1. <?php
  2.  
  3. $validateUsss = array('options'=>array('regexp'=>'[^A-Za-z0-9]+'));
  4.  
  5. if(!filter_var($_POST['usss'], $validateUsss)){
  6.    header('Location: index.php?fxx='.base64_encode('Esos caracteres no sirven'));
  7. }
  8.  
  9. ?>

Hay algunos filtros que ya los incluye PHP por defecto, como correos, url o IP.
http://php.net/manual/es/filter.filters.validate.php

Saludos
Gracias por tu respuesta, intente usar la función que me reconmendaste ya que solo lo uso para validar pero no me funciono.


Título: Re: preg_match es lo mismo que ereg?
Publicado por: engel lex en 21 Diciembre 2017, 02:01 am
prueba tus regex con estas paginas

https://regexr.com/ (https://regexr.com/)
https://regex101.com/ (https://regex101.com/)

recuerda que preg es PCRE