2013-05-12 18 views
5

Sto lavorando su un CMS con codeigniter. Gli utenti dovrebbero conoscere l'HTML e costruire la pagina da soli. Ora, sto avendo problemi con la memorizzazione di alcuni tag nel database (database mysql).Codeigniter che memorizza il codice html nel database non funziona

Gli utenti possono caricare immagini sul server e quindi utilizzare il percorso dell'immagine nel codice. Il codice è modificato in a. Quando provo ad aggiornare il codice di una determinata pagina:

<img src="assets/fileserver/versje2.jpg" alt="" /> 

tutto funziona. Ma quando applico stile in linea ad esso

<img style="width: 200px;" src="assets/fileserver/versje2.jpg" alt="" /> 

non funzionerà. Si ignora semplicemente lo stile e il seguente è memorizzato nel database:

<img src="assets/fileserver/versje2.jpg" alt="" /> 

semplicemente rimuove lo stile. Com'è possibile?

ho provato:
-htmlspecialchars
-htmlentities

$config['global_xss_filtering'] = FALSE; 
$config['global_xss_filtering'] = TRUE; 

Dei suggerimenti su che cosa il problema potrebbe essere?

risposta

2

Sembra che l'abbia già trovato! In primo luogo, ho avuto

$config['global_xss_filtering'] = TRUE; 

Poi, mi sono messo a

$config['global_xss_filtering'] = FALSE; 

Ma ho ancora avuto XSS | pulita sulla validazione dei form!

$this->form_validation->set_rules('inhoud', 'inhoud', 'xss|clean'); 

Ecco perché non ha funzionato, ora lo stile è stato scritto nel database bene!

+1

nel mio caso ho set $ config ['global_xss_filtering'] = FALSE e io non uso la validazione del modulo. Ho usato ajax per inviare tag html e css inline style e ho ricevuto i dati usando $ _POST [''] e infine chiamato la funzione da inserire in MODELLO. e ancora non è possibile salvare lo stile css in linea. –

3

Forse avete bisogno di salvarlo con htmlspecialchars($saveToDB) funzione,
modificare in ingresso tale genere: <input name="someHtmlCode" value="<?=$saveToDB;?>" />
e di eco con htmlspecialchars_decode funzione nel file html sul posto:
$html = htmlspecialchars_decode($dataFromDB)

+0

grazie a questo funziona anche se '$ config ['global_xss_filtering']' è impostato su 'TRUE' –

Problemi correlati