Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] error al pasa carácter tilde en un formulario

Estas en el tema de error al pasa carácter tilde en un formulario en el foro de PHP en Foros del Web. Hola, buenas noches. Tengo un formulario de contacto que funciona correctamente , añade todos los campos del usuario a una BD Mysql (en los campos ...
  #1 (permalink)  
Antiguo 03/01/2018, 20:37
 
Fecha de Ingreso: julio-2010
Ubicación: Cerca Sitges (Barcelona)
Mensajes: 96
Antigüedad: 8 años, 5 meses
Puntos: 4
error al pasa carácter tilde en un formulario

Hola, buenas noches.

Tengo un formulario de contacto que funciona correctamente, añade todos los campos del usuario a una BD Mysql (en los campos se pueden añadir todo tipo de palabras y carácteres como ñ, ç, é, ù, ¿, ?...

El único error que me da, es cuando el usuario añade (tilde) ' en el campo: ej. l'universitat.
no es capaz de guardar nada en la BD.

Tengo probadas todas las variantes posibles, alternandolas con los cotejamientos en Mysql

Código HTML:
Ver original
  1. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


conexión a BD:
finalmente añadí las filas 6 y 7, pero sigue sin funcionar.

Código PHP:
Ver original
  1. mysql_select_db($database, $contactos);
  2. $query_Recordset1 = "SELECT * FROM contactos";
  3. $Recordset1 = mysql_query($query_Recordset1, $contactos) or die(mysql_error());
  4. $row_Recordset1 = mysql_fetch_assoc($Recordset1);
  5. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  6. $cadena_acentuada = htmlentities($cadena_extraña, ENT_QUOTES, "UTF-8");
  7. mysql_query ("SET NAMES 'utf8'");

Código PHP:
Ver original
  1. $nombre=$_POST[nombre];
  2. $apellido=$_POST[apellido];
  3. $ciudad=$_POST[ciudad];
  4. $comunidad=$_POST[comunidad];
  5. $tituloanuncio=$_POST[tituloanuncio];

¿alguna solución?

Muchas gracias
  #2 (permalink)  
Antiguo 03/01/2018, 21:01
Avatar de alvaro_trewhela  
Fecha de Ingreso: octubre-2012
Ubicación: localhost
Mensajes: 933
Antigüedad: 6 años, 1 mes
Puntos: 106
Respuesta: error al pasa carácter tilde en un formulario

Te recomiendo que cambies el cotejamiento de la tabla.
  #3 (permalink)  
Antiguo 03/01/2018, 21:09
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.418
Antigüedad: 3 años, 5 meses
Puntos: 256
Respuesta: error al pasa carácter tilde en un formulario

Utiliza htmlsntities

Código PHP:
Ver original
  1. $nombre=htmlentities($_POST[nombre],, ENT_QUOTES);
  2. $apellido=htmlentities($_POST[apellido],, ENT_QUOTES);
  3. $ciudad=htmlentities($_POST[ciudad],, ENT_QUOTES);
  4. $comunidad=htmlentities($_POST[comunidad],, ENT_QUOTES);
  5. $tituloanuncio=htmlentities($_POST[tituloanuncio],, ENT_QUOTES);

de esa manera vuelves a formato html los caracteres especiales como las tildes por ejemplo
__________________
[email protected]
HITCEL
  #4 (permalink)  
Antiguo 03/01/2018, 21:42
 
Fecha de Ingreso: julio-2010
Ubicación: Cerca Sitges (Barcelona)
Mensajes: 96
Antigüedad: 8 años, 5 meses
Puntos: 4
Respuesta: error al pasa carácter tilde en un formulario

me arroja error:

Código HTML:
Ver original
  1. Parse error: syntax error, unexpected ',' in /homepages/31/d376280903/htdocs/contactar/personal/announced_sf_ref_ok.php on line 185
  #5 (permalink)  
Antiguo 03/01/2018, 21:53
 
Fecha de Ingreso: febrero-2015
Ubicación: venezuela
Mensajes: 50
Antigüedad: 3 años, 9 meses
Puntos: 0
Respuesta: error al pasa carácter tilde en un formulario

Cita:
Iniciado por rafaxusirati Ver Mensaje
me arroja error:

Código HTML:
Ver original
  1. Parse error: syntax error, unexpected ',' in /homepages/31/d376280903/htdocs/contactar/personal/announced_sf_ref_ok.php on line 185
puede que tenga que escapar los caracteres especiales ? aunque no aconsejaria usar comillas simple puede dar error en la consulta sql ya que sql la puede llegar a reconocer como parte de la consulta ejemplo asi se hace la inyeccion sqlsql
  #6 (permalink)  
Antiguo 03/01/2018, 22:32
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.418
Antigüedad: 3 años, 5 meses
Puntos: 256
Respuesta: error al pasa carácter tilde en un formulario

Cita:
Iniciado por rafaxusirati Ver Mensaje
me arroja error:

Código HTML:
Ver original
  1. Parse error: syntax error, unexpected ',' in /homepages/31/d376280903/htdocs/contactar/personal/announced_sf_ref_ok.php on line 185
en el codigo que te pasé se fueron unas comas de mas como puedes ver alli de alli viene el asunto de no copiar y pegar sin analizar lo copiado, pues se fue mi error y te arrojo a ti el error luego de no analizarlo. Saludos
__________________
[email protected]
HITCEL
  #7 (permalink)  
Antiguo 05/01/2018, 05:10
 
Fecha de Ingreso: julio-2010
Ubicación: Cerca Sitges (Barcelona)
Mensajes: 96
Antigüedad: 8 años, 5 meses
Puntos: 4
Respuesta: error al pasa carácter tilde en un formulario

hola, quitando las comillas:

Código PHP:
Ver original
  1. $nombre=htmlentities($_POST[nombre]ENT_QUOTES);
  2. $apellido=htmlentities($_POST[apellido]ENT_QUOTES);
  3. $ciudad=htmlentities($_POST[ciudad]ENT_QUOTES);
  4. $comunidad=htmlentities($_POST[comunidad]ENT_QUOTES);
  5. $tituloanuncio=htmlentities($_POST[tituloanuncio]ENT_QUOTES);

me da error

Código PHP:
Ver original
  1. Parse error: syntax error, unexpected 'ENT_QUOTES' (T_STRING) in /homepages/31/d376280903/htdocs/contactar/personal/announced_sf_ref_ok.php on line 185

gracias
  #8 (permalink)  
Antiguo 05/01/2018, 05:26
 
Fecha de Ingreso: julio-2010
Ubicación: Cerca Sitges (Barcelona)
Mensajes: 96
Antigüedad: 8 años, 5 meses
Puntos: 4
Respuesta: error al pasa carácter tilde en un formulario

y si añado una coma

Código PHP:
Ver original
  1. $nombre=htmlentities($_POST[nombre],ENT_QUOTES);
  2. $apellido=htmlentities($_POST[apellido],ENT_QUOTES);
  3. $ciudad=htmlentities($_POST[ciudad],ENT_QUOTES);
  4. $comunidad=htmlentities($_POST[comunidad],ENT_QUOTES);
  5. $tituloanuncio=htmlentities($_POST[tituloanuncio],ENT_QUOTES);

perfecto, ahora pasa los datos a la BD aunque tengan apóstrofes '
PERO, si añado acentos á è ^ se envía la orden a la BD, pero no rellena el campo

Alguna aclaración.

Muchas gracias
  #9 (permalink)  
Antiguo 06/01/2018, 19:53
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.876
Antigüedad: 10 años, 4 meses
Puntos: 2152
Respuesta: error al pasa carácter tilde en un formulario

Primero, estás usando una librería obsoleta (mysql), considera cambiar a mysqli o, mejor aún, a PDO.

Por otra parte, tienes que preparar los datos antes de incluirlos en una consulta, con lo que evitarás esos errores y, además, aplicas un poco de seguridad, ejemplo:

Código PHP:
Ver original
  1. $apellido = mysql_real_escape_string($_POST['apellido']);

Un aporte antiguo, pero todavía útil, sobre tu problema: http://www.forosdelweb.com/f18/aport...8/#post4265377

Por cierto, no olvides encerrar entre comillas (simples o dobles) los índices no numéricos, probablemente te está funcionando ahora, pero en servidores con configuraciones más estrictas vas a recibir mensajes de error o advertencia.
__________________
- León, Guanajuato
- GV-Foto
  #10 (permalink)  
Antiguo 09/01/2018, 15:19
 
Fecha de Ingreso: julio-2010
Ubicación: Cerca Sitges (Barcelona)
Mensajes: 96
Antigüedad: 8 años, 5 meses
Puntos: 4
Respuesta: error al pasa carácter tilde en un formulario

Muchas gracias a todos.

Lo he conseguido solucionar con vuestra ayuda.

Etiquetas: cadena, formulario, html, mysql, nombre, select, sql, tilde
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:02.