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.
if (ereg("[^A-Za-z0-9]+",$_POST['usss'])) {
$error12 = base64_encode("Esos caracteres no sirven");
echo "<script>location.href='/index.php?ffx=$error12'</script>";
}
_________________________________________________________________
if (preg_match("[^A-Za-z0-9]+",$_POST['usss'])) {
$error12 = base64_encode("Esos caracteres no sirven");
echo "<script>location.href='/index.php?fxx=$error12'</script>";
}
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
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).
<?php
$validateUsss = array('options'=>array('regexp'=>'[^A-Za-z0-9]+'));
if(!filter_var($_POST['usss'], $validateUsss)){
header('Location: index.php?fxx='.base64_encode('Esos caracteres no sirven'));
}
?>
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
Cita de: 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
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.
Cita de: #!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).
<?php
$validateUsss = array('options'=>array('regexp'=>'[^A-Za-z0-9]+'));
if(!filter_var($_POST['usss'], $validateUsss)){
header('Location: index.php?fxx='.base64_encode('Esos caracteres no sirven'));
}
?>
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.
prueba tus regex con estas paginas
https://regexr.com/ (https://regexr.com/)
https://regex101.com/ (https://regex101.com/)
recuerda que preg es PCRE