Visualizzazione dei risultati da 1 a 10 su 16

Discussione: info su htmlentities()

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    .kurt, spiegazione impeccabile

    ok ho capito e vi ringrazio..però..io faccio tutta una serie di controlli (filtri ecc) sui dati che vengono inseriti nel database..mi aspetterei che i dati che effettivamente riescono ad essere inseriti nel db siano già puliti (tipo che non siano script)..e una volta che sono nel db è difficile modificarli..cioè che senso avrebbe, come dice chumkiu
    E' al momento dell'output che bisogna filtrarli in modo adeguato, e non al momento del salvataggio.
    ? vuol dire che metto nel db praticamente qualsiasi cosa e solo quando li estraggo li filtro?
    ciao,
    L.

  2. #2
    Quote Originariamente inviata da leaf Visualizza il messaggio
    ? vuol dire che metto nel db praticamente qualsiasi cosa e solo quando li estraggo li filtro?
    ciao,
    L.
    Si.
    Per X motivi:

    - oggi i dati ti servono per il web e magari credi possa avere senso encodarli in entità html. Ma se domani li esporti e li metti su un altro supporto non web che non capisce le entità html?
    - Se per un periodo limitato, vi è un errore nel codice per cui non li encodi al salvataggio o lo fai in modo parziale o ti accorgi dopo un anno che i flags che usi non sono sufficienti, avrai filtri promiscui. Come fai a sistemare?
    - motivo logico: un database è un posto dove metti i dati. I dati sono quelli che vuoi mettere non quelli che vorresti vedere sul browser. Se metti <bla>, il tuo dato è <bla> e non &lt;bla&rt;. Una "è" è una "è" e non un "&egrave;". Quest'ultima è una rappresentazione del dato, non il dato stesso.
    - motivo pratico: devi stare a ricordarti di decodificarli quando ti servono decodificati, e reincodarli al salvataggio. E' una cosa più propensa agli errori rispetto al fatto di ricordarti "solo" di filtrarli quando fai un echo (cosa che puoi quasi automatizzare in certi contesti e alcuni template engine fanno in automatico)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.