Cita:
Iniciado por juaniquillo
Código PHP:
//caracteres latinos alfanumricos
$permitido = "a-zA-ZÁÉÍÓÚáéíóú";
y luego hago un
ereg para ver si el usuario ha escrito algo no adecuado:
Código PHP:
if (!ereg("^[ $permitido]{3,}$",$valor_a_validar)) $mensajes .= $error[1];
.
Cita:
Iniciado por mass
Gracias juan pero eso es algo que quiero evitar porque... buff, sería bastante chapucero el tema......
Dudo que sea tan
chapucero Si Define reglas de validación y un comportamiento en tus modelos/controladores. (supongo que el Symfony te lo permite),al cargar i18n & l10n.
Ahora el
ereg funciona pero NO es recomendable, mayor información:
http://php.net/manual/en/function.ereg.php#refsect1-function.ereg-description
Creo lo mejor es definir reglas de validación en expresiones para cada idioma, te dejo un codigo donde agrego otros caracteres que no contempla el \w como la ñ,ü(--si no como escribo pingüino--),comas,puntos, y paréntesis.
Código PHP:
<ul>
<?php
$text ='/^[a-z0-9 .,()üÜáéíóúÁÉÍÓÚñÑ]{5,100}$/i';
$test = array( 'Holá (muÑdo).',
'MundIrijIlLO 01234, av. 2',
'<h1>hola mundo</h1>',
'Guíllerño Ángel',
'Sr. Madriguera','01 999 888 11 22',
'(01)953-111 2233',
'123456',
'<script>someJAvascriptCode</script>'
);
foreach ($test as $cadena):
if(preg_match($text,$cadena))
echo "<li><b>cadena valida</b>{$cadena}</li>\n";
else
echo '<li><b>cadena invalidad</b>'.htmlspecialchars($cadena)."</li>\n";
endforeach;
?>
</ul>
Salida:
Código HTML:
<ul>
<li><b>cadena valida</b>Holá (muÑdo).</li>
<li><b>cadena valida</b>MundIrijIlLO 01234, av. 2</li>
<li><b>cadena invalidad</b><h1>hola mundo</h1></li>
<li><b>cadena valida</b>Guíllerño Ángel</li>
<li><b>cadena valida</b>Sr. Madriguera</li>
<li><b>cadena valida</b>01 999 888 11 22</li>
<li><b>cadena invalidad</b>(01)953-111 2233</li>
<li><b>cadena valida</b>123456</li>
<li><b>cadena invalidad</b><script>someJAvascriptCode</script></li>
</ul>