Foros del Web » Programando para Internet » PHP »

NO TIENE EXPLICACION [post + preg_match]

Estas en el tema de NO TIENE EXPLICACION [post + preg_match] en el foro de PHP en Foros del Web. hola foro: Estoy peleando hace rato con esto... esta es la pagina llamada "problema.php" y es que en la caja de texto coloco la letra ...
  #1 (permalink)  
Antiguo 26/08/2010, 18:42
Avatar de killerangel  
Fecha de Ingreso: septiembre-2007
Ubicación: Un punto en el espacio
Mensajes: 592
Antigüedad: 16 años, 7 meses
Puntos: 10
Exclamación NO TIENE EXPLICACION [post + preg_match]

hola foro:

Estoy peleando hace rato con esto... esta es la pagina llamada "problema.php" y es que en la caja de texto coloco la letra a con tilde 'á' y me sale un CONFLICTO.

Quiero saber si en la caja de texto hay letras tildadas, con dierisis o eñes (ñ) mayusculas y minusculas. Cuando hago la prueba enviando la 'á' me dice en el preg_match que no está, sin embargo, al validarla sólo a la letra me sale que si está... acaso es algo del enctype? codificacion de envio por post? QUEEE???

Código PHP:
<pre>
<?php 
print_r
$_POST );
echo 
'<br>';
if(isset(
$_POST['txt_val'])){
    
$_POST['txt_val']=trim($_POST['txt_val']);
    
$v $_POST['txt_val'];
    echo 
'<br>';
    echo (
preg_match('/[áéíóúÁÉÍÓÚñÑüÜ]/',$_POST['txt_val']))?'si':'no';
    echo 
'<br>';
    echo (
preg_match('/[áéíóúÁÉÍÓÚñÑüÜ]/',$v))?'si':'no';
    echo 
'<br>';
    echo (
preg_match('/[áéíóúÁÉÍÓÚñÑüÜ]/','á'))?'si':'no';
}
?>
</pre>
<form id="form1" name="form1" method="post" action="problema.php">
valor 
<input type="text" name="txt_val" id="txt_val" />
<input type="submit" name="button" id="button" value="Enviar" />
</form>

el codigo esta listo para pegar en una pagina y verificar... no se q hacer... AYUYAAAAAAA !!!!! (LOS EMOTICONOS CON LA CARA DEL MODERADOR... jajaja aver si despues van poniendo la de los demás... )
__________________
Sueñen... y trabajen por hacer esos sueños realidad... de eso se construye el futuro!!
Me siento entre la ASP-ada y la PHP-red
  #2 (permalink)  
Antiguo 26/08/2010, 19:52
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
Respuesta: NO TIENE EXPLICACION [post + preg_match]

Creo que utf8_encode o utf8_decode quizá te ha de servir. También decirte que cuando trabajo con acentos propios del castellano, al iniciar sino trabajo con HTML utilizo
Código PHP:
Ver original
  1. header('Content-Type: text/html; charset=iso-8859-1');
y cuando utilizo el html, el tag
Código HTML:
Ver original
  1. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

Tienes varias opciones, ojalá alguna te funcione.

Saludos.
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #3 (permalink)  
Antiguo 26/08/2010, 20:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: NO TIENE EXPLICACION [post + preg_match]

este tema ya ha sido tratado, el problema radica en que no es requerido que listes los acentos y tildes en la expresión...

su equivalente es \pL y aquí un enlace relacionado:
http://www.php.net/manual/es/regexp....ce.unicode.php

al igual como te comentan, la codificación de caracteres recomendada en todo caso debería ser UTF-8 y no ISO...

ya que esta codificación es mas flexible, universal y altamente compatible... también existe un modificador para que las expresiones regulares reaccionen a UTF, el modificador: u
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 08/03/2011, 12:39
 
Fecha de Ingreso: abril-2009
Mensajes: 15
Antigüedad: 15 años
Puntos: 0
Respuesta: NO TIENE EXPLICACION [post + preg_match]

Perdon se qeu es un poco tarde pero a lo mejor a alguien mas le sirve

no lo he usado, lo lei en un post pero creo que en los formularios hay que indicarles para que te acepten los caracteres.


Cita:
<form name="formulario_usuario" method="post" accept-charset="UTF-8">
como lo dice aqui:

[URL="http://www.cristalab.com/tutoriales/configurar-tu-web-para-usar-utf-8-c42532l/"]http://www.cristalab.com/tutoriales/configurar-tu-web-para-usar-utf-8-c42532l/[/URL]
con anexion a el uso correcto de preg_match como ya lo indicaron anteriormente

Cita:
if(!preg_match("/[\pL\d,$-:._']+$/" ...
espero les sirva suerte!

Última edición por carlosalvet; 08/03/2011 a las 12:44

Etiquetas: post
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 01:13.