Seguro que muchos de vosotros os habéis encontrado más de una vez en la siguiente situación:
Tenemos un bonito formulario, con sus campos de texto, cuya información queremos almacenar en una base de datos. Incluimos comprobaciones a nivel de servidor o con javascript para obligar a rellenar todos los campos que consideramos obligatorios, etc.
Y entonces es cuando el usuario va e introduce unas comillas (“) en la caja de texto.
Si no tenemos contemplado esto, lo más probable es que se produzca un error, debido a que el servidor interpreta las comillas del campo de texto como fin del valor del campo en la base de datos.
He aquà la primera parte del problema.
El usuario en cuestión introduce su nombre en el campo del formulario (input o textarea) de la siguiente manera:
Al ejecutar las sentencias de inserción en la base de datos, quedarÃa la siguiente asignación: … nombre=”pepe “el guay” “…, lo cuál producirÃa un error, al interpretar el nombre como “pepe ” y el resto como un error de sintaxis en la sentencia.
Para evitar esto (en PHP), disponemos de las funciones addslashes y stripslashes las cuales añaden y quitan el carácter de escape (\) respectivamente, salvando la situación.
Al ejecutarse la sentencia, quedarÃa asÃ: … nombre=”pepe \”el guay\”” …
Y ahora viene la segunda parte del problema.
Si el usuario introdujo algo mal en el formulario, o falta algún dato, de manera que queremos mostrar de nuevo el formulario, pero con los campos que ya sabemos rellenados automáticamente, nos encontraremos en una situación parecida. Esta vez le toca a las cajas de texto (input o textarea) .
Al rellenar los valores automáticamente con el atributo value=”<valor>“ (en caso de un input), si el valor contiene comillas, sólo se mostrará la parte hasta las primeras comillas, entendiendo éstas como fin del atributo.
Veamos como se interpretarÃa: … value=”pepe “el guay” “…
Al ser HTML/XHTML no verÃamos ningún error, pero tan sólo se mostrarÃa pepe dentro de la caja de texto en cuestión.
Pero esto tiene fácil solución.
Esta vez entra en juego la función htmlentities, que automáticamente convertirá cada caracter especial en su entidad HTML correspondiente (por ejemplo, “ pasaria a ser ").
Ahora nuestro código HTML resultante quedarÃa asÃ: … value=”pepe "el guay"” …, funcionando de maravilla.
NOTA: Si queréis volver a convertir las entidades HTML a sus caracteres originales (por ejemplo para guardar los valores en una base de datos), tenéis la función opuesta: html_entity_decode (no olvidéis combinarla con addslashes para evitar el problema inicial)
Hola a todos
Tengo el siguinete problema, lo q’ pasa es q’ tengo el formulario html, y la aplicacion PHP, pero no puedo conectar las cajas de texto, a la aplicacion PHP desde una aplicacion en html. Por ejemplo ingreso a la cajas de texto contenidas en html, los valores de la suma, para que en PHP me lo resuelva, por ejemplo en la priumera caja de texto digito 1 y en la otra digito 2, en la aplicacion php deberia aparecerme 3, pero no suma el proceso, y me aparece 0. La programacion no esta mal, puesto q’ probe el msmo progama, pero con valores aginados en la aplicacion por ej (1 2) da 3, y mi idea es resolver la conexion de php con cajas de texto, gracias
Hola deseo guardar los campos q se escriben en un formulario para cuando lo abra despues aparezcan los campos q se llenaron
por favor poner mas textos co comillas y mas presisos
y tambien poner le mas comillas
estan muy mal ps ya ke no se enkuentra nada de lo ke piden los buskadores
Como es la ignoracia de joakin claro que se encuentra!!!!! entonces no seguira pogramando php
esta chido todod esto, graias por su ayuda
Chanito esto esta de verdad de poca madre
loser
puto
ESTO NO TIENE NADADE COMILLLA POR FA SAQUEN COCAS BUENAS QUE NOS AYUDEN EN LO QUE BUSCAMOS