Cajas y areas de texto con comillas (PHP/HTML)

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: pepe “el guay
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 &quot;).

Ahora nuestro código HTML resultante quedaría así: … value=”pepe &quot;el guay&quot;” …, 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)

10 Respuestas a “Cajas y areas de texto con comillas (PHP/HTML)”


  1. 1 Victor Villagran

    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

  2. 2 ale

    Hola deseo guardar los campos q se escriben en un formulario para cuando lo abra despues aparezcan los campos q se llenaron

  3. 3 diego

    por favor poner mas textos co comillas y mas presisos
    y tambien poner le mas comillas

  4. 4 joakin

    estan muy mal ps ya ke no se enkuentra nada de lo ke piden los buskadores

  5. 5 CHYNUXXP

    Como es la ignoracia de joakin claro que se encuentra!!!!! entonces no seguira pogramando php

  6. 6 Chanito

    esta chido todod esto, graias por su ayuda

  7. 7 chanito

    Chanito esto esta de verdad de poca madre

  8. 8 susy

    loser

  9. 9 hjtj

    puto

  10. 10 KICHA

    ESTO NO TIENE NADADE COMILLLA POR FA SAQUEN COCAS BUENAS QUE NOS AYUDEN EN LO QUE BUSCAMOS

Añade un Comentario