Place htmlspecialchars dans un script PHP

Hola,

Acabo de colocar mis scripts en otro servidor (infinityfree), pero estos no muestran los caracteres especiales.

He visto que se usa la función:

function htmlspecialchars(
     $string,
     $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
     $encoding = ,
     $double_encode =
):

Mais où la placer ? Uniquement dans le index.php ou dans tous les scripts ? Et à quel endroit ?

Merci

3 respuestas

  1. Hola,

    Sería mejor continuar la discusión anterior, porque el contexto y el historial tienen su importancia.

    Respecto a htmlspecialchars, su función es limpiar/asegurar un texto antes de registrarlo en una BBDD; esta función no solucionará el problema de acentos tras una migración de hosting.

    Así que, para entenderlo mejor, ya sería útil saber si el problema afecta al texto que está en la BDD, o si se trata de todo el texto de la página.


    0
    1. Hola,

      Mira los ejemplos:

      Lo vas a necesitar para todo lo que corresponde a mostrar contenido que ha sido introducido por un usuario (quieres dominar lo que se muestra y evitar inyecciones)

      (la respuesta de Feldrip también es válida)


      0
      1. Hola,

        Las funciones htmlspecialchars o htmlentities, como sus nombres indican, deben usarse al mostrar datos en un documento HTML.

        A diferencia de una mala práctica lamentablemente común, no se debe usar htmlspecialchars antes de guardar en la base de datos (BDD) porque esto generará otros problemas en el procesamiento de los datos en la BDD.
        Más información: zestedesavoir.com/articles/2489/ne-pas-confondre-faille-par-injection-sql-et-faille-xss/

        Si el problema de visualización de caracteres especiales proviene de los datos presentes en la BDD, el problema suele deberse al charset de la conexión a la BDD.
        Simplemente hay que definir el charset después de la conexión, mediante set_charset con mysqli o en el DNS con PDO (cf. primer comentario en la doc) :

        www.php.net/manual/fr/mysqli.set-charset.php
        www.php.net/manual/fr/pdo.construct.php
         

        0