Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376

    Inserire codice HTML nel database

    ciao!!
    dal mio form inserisco il contenuto di un campo di testo nel db:
    codice:
    $contenuto = htmlspecialchars(trim($_POST['contentuto']) , ENT_QUOTES);
    Se la frase da inserire contiente " oppure ' oppure < > ecc. ecco che vengono inserite le rispettive entità html: &quot ; &lt ; e così via.
    Avendo il campo della tabella una certa lunghezza se ci sono quei caratteri ecco che la frase può risultare troncata in quanto un solo carattere (esempio ") può occupare 6 posti!
    Come posso ovviare?

  2. #2
    Guarda...io in + di un sito uso solo la funzione addslashes() per aggiungere gli slash in caso di apici...per quanto riguarda i tag non ho mai avuto problemi...poi non so se è proprio un'esigenza codificare i tag html...nel db non danno problemi...

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376
    per quanto riguarda gli apici, uso mysql_real_escape_string e sto a posto.

    Per i tags html lo so che nel db non danno problemi, ma poi quando vai a stamparli a video, ecco che vengono interpretati come codice, giustamente, e sballano tutto.

  4. #4
    oddio...a me questo non mi è mai capitato....cioè ho + di un sito in corso d'opera in cui salvo commenti e parti di testo contenenti tag html e quando li carico nella pagina che mi serve faccio semplicemente una echo $row["testo"] e funziona...non saprei sai...

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376
    scusa ma quando stampi i tags html che hai salvato prima, questi poi non vengono interpretati come codice effettivo?

  6. #6
    a me no...a norma dovrebbe interpretarli come tag e non come codice....xò prova....se te li interpreta come codice l'unica cosa ke mi viene in mente sarebbe quella di provare ad inserire qst meta tag nell'<head></head> della pagina:
    codice:
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    Il charset può anke essere un altro tipo utf-8.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376
    è già iso-8859-1

    In pratica avviene questo:

    1 form name contenuto: scrivo </td> "ciao"
    2 $contenuto = htmlspecialchars(trim($_POST['contentuto']) , ENT_QUOTES);
    3 INSERT into db.... $contenuto
    4 Visualizza: il tag di fine cella viene interpretato e sballa il layout: e anche i doppi apici influiscono sull'html.

  8. #8
    scusa una cosa...quando lo visualizzi lo prendi così come è oppure lo decodifichi?
    cioè fai echo $row["contenuto"]; oppure fai echo htmlspecialchars_decode($row["contenuto"]);???

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376
    in entrambi i casi, i tags vengono interpretati dal browser come html

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 © 2025 vBulletin Solutions, Inc. All rights reserved.