Foros del Web » Programando para Internet » PHP »

Formulario destroza datos que recoge.

Estas en el tema de Formulario destroza datos que recoge. en el foro de PHP en Foros del Web. Llevo todo el día tratando de solucionar este problema y ya estoy más que desesperado porque no encuentro nada. He probado todo lo que se ...
  #1 (permalink)  
Antiguo 12/05/2016, 18:11
 
Fecha de Ingreso: julio-2009
Mensajes: 75
Antigüedad: 14 años, 9 meses
Puntos: 2
Formulario destroza datos que recoge.

Llevo todo el día tratando de solucionar este problema y ya estoy más que desesperado porque no encuentro nada. He probado todo lo que se puede probar y no sé qué más me falta.

- Tengo un formulario que recoge datos, lógicamente. Está codificado en utf-8. Toda la página se lee perfectamente.
- El servidor tiene la version 5.6.21 - Pues bien, cuando recoge datos los destroza literalmente.
- Al leer los datos con Thunderbird están destrozados. Si le pongo a Thunderbird la configuración de utf-8 se lee bien pero me distorsiona mensajes que antes había leído bien en iso 8859-1. He probado con Outlook y ocurre lo mismo. He cambiado de servidor y hace lo mismo.

- En la webmail se leen perfectamente los mensajes que me autoenvío.
- He probado casi todo lo probable y no resuelvo el problema. Me llegan sin acentos y otros signos.

¿Alguien tiene idea de qué puede ser?


Saludos.



Código HTML:
<?php
// Creo los 2 numeros aleatorios 
$num1 = rand(1,30); 
$num2 = rand(1,30); 
// Guardo los numero en una session para evitar se borren y luego sumarlos 
// y compararlos con la respuesta en contactar.php 
session_start(); 
$_SESSION['numero1'] = $num1; 
$_SESSION['numero2'] = $num2; 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Carta</title>

<script language="javascript" type="text/javascript" src="valida.js"></script>
</head>
<body onload="limpiar()">

<div id="wrapper">

<nav><?php include ('menu61.php');?>
</nav>		


<main>
<h1>Formulario de contacto</h1>
<p class="limpiar"> </p>



<div id="formulario">


<form name="fibrart" action="contactar_es.php" method="post" accept-charset="utf-8">
<div id="columna1">

<label for="nombre"><strong>* Nombre:</strong> </label><input class="resp" name="nombre" type="text" class="form" id="nombre" size="46" onDblClick="borrartext(this)" /><br/>

<label for="localidad"><strong>* Localidad:</strong> </label><input class="resp" name="localidad" type="text" class="form" id="localidad" size="46" onDblClick="borrartext(this)" /><br/>
<label for="correo"><strong>* Correo:</strong> </label><input class="resp" name="correo" type="text" class="form" id="correo" size="46" onDblClick="borrartext(this)" /><br/>

 <label for="comentarios"><strong>* Comentarios:</strong></label>

<textarea cols="60" rows="9" class="resp" name="comentarios" onDblClick="borrartext(this)">&nbsp;&nbsp;&nbsp;</textarea>

<span >-&nbsp;Ayúdanos a evitar el spam. Para enviar, por favor, responde. </span></b>
<button class="reset" type="reset">Borrar</button>
<br/>
<strong>Pregunta: ¿Cuánto suman <?php echo ($num1);?></strong> más <strong><?php echo ($num2);?> ? </strong><strong>Respuesta: &nbsp;</strong><input class="seg" name="respuesta" type="text" id="respuesta" value="" size="4" maxlength="2" />

<button class="respenviar_es" type="submit" name="formulario"  onClick="return total()">&nbsp;Enviar&nbsp;&nbsp; <img src="flena3.gif" alt="Enviar Formulario"> </button>

&nbsp;
</div>
</form>

</div>   
  
</main>

</div>
</body>
</html> 
__________________
Gracias de antemano por la ayuda.
Saludos.
Caminantejm.
  #2 (permalink)  
Antiguo 12/05/2016, 18:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Formulario destroza datos que recoge.

El formulario no tiene la culpa.

En todo caso será cómo es que haces dicho envío y cómo es que procesas dichos datos, no seas ridículo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/05/2016, 12:34
Avatar de Alejandra_Sand  
Fecha de Ingreso: marzo-2016
Mensajes: 22
Antigüedad: 8 años, 1 mes
Puntos: 1
Respuesta: Formulario destroza datos que recoge.

Los problemas no estan en el formulario (aunque no hace falta ser grosero para decirtelo), sino en la codificación, y para que acepte tildes y acentos debería funcionar iso 8859-1

¿Cuál es el cotejamiento de tu BD?
  #4 (permalink)  
Antiguo 13/05/2016, 13:26
 
Fecha de Ingreso: febrero-2011
Mensajes: 13
Antigüedad: 13 años, 2 meses
Puntos: 0
Información Respuesta: Formulario destroza datos que recoge.

Si ya checaste el cotejamiento de tu página y del servidor, checa la configuración de cotejamiento de tu phpmyadmin o donde esté tu base de datos..
- Abre la página principal de phpmyadmin
- Presiona en el menú superior "Operaciones"
- Abajo en "Opciones de Tabla" revisa el campo "Cotejamiento"
- Ahí deberás jugar con los valores

Yo tuve problemas similares al manejar datos desde una página y se almacenaban en la base de datos con signos raros y sin acentos, al final me quedé con utf8_spanish_ci y ya no tuve problema, espero te ayude.

P.D. Tal como lo dice Alejandra, no falta ser grosero ;)
  #5 (permalink)  
Antiguo 13/05/2016, 14:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Formulario destroza datos que recoge.

Bueno, yo sólo dije que no sea ridículo: no es una ofensa ni grosería.

Todo a raíz del título del tema "Formulario destroza datos que recoge." que prácticamente es ridículo.

Que cómodo y fácil es culpar a cualquier cosa, suena a una conclusión, como si ya hubiere hecho el 100% de investigación y pruebas como para nombrar el tema con tal seguridad.

Eso es lo ridículo, pero no por si mismo, porque los títulos no se escriben solos.

Por eso se establece en las normas del foro que se debe escribir un título adecuado, y éste es un ejemplo claro de como no se deben nombrar los temas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 14/05/2016, 11:44
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Respuesta: Formulario destroza datos que recoge.

La realidad es que tienes que revisar toooodo el proceso. Por ejemplo ¿porqué estás poniendo utf-8 cuando tu formulario está en xhtml, y sobre todo... transitional!!?

¿Tu archivo está en el formato correcto?

¿El Php que captura? ¿El script que procesa? ¿La Bdd que guarda? ¿El Script que vuelve a leer?
  #7 (permalink)  
Antiguo 16/05/2016, 03:07
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Formulario destroza datos que recoge.

Obviamente tu problema es de codificación, para que todo funcione adecuadamente, todo debe de estar al unísono, es decir en la misma codificación, recomendablemente utf8. Nunca está demás establecer las cabeceras de codificación en php y en concreto en el Email.

Lo que a mi me despista es esto:
Cita:
- Al leer los datos con Thunderbird están destrozados. Si le pongo a Thunderbird la configuración de utf-8 se lee bien pero me distorsiona mensajes que antes había leído bien en iso 8859-1. He probado con Outlook y ocurre lo mismo. He cambiado de servidor y hace lo mismo.
El problemas es que si estableces la codificación en tu gestor de correo el que sea, para que intérprete todos los mensajes como utf8, sólo te va a interpretar correctamente los mensajes que realmente sean utf8.

Por ese motivo es importante establecer las cabeceras y en concreto las referentes a codificación, ya que de no ser así utilizará la codificación por defecto, pudiendo no ser la codificación correcta.

Por hacer un símil.
Supón que te envío una carta escrita en algún dialecto y yo desconozco si es tu lengua, si no te indico el idioma y el dialecto concreto, no puedo garantizar que seas capaz de interpretarlo al 100% o de que seas capaz de traducirlo correctamente.
__________________
Unset($vida['malRollo']);

Etiquetas: formulario, html
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 16:27.