Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    textarea, access e codifica HTML

    Cari colleghi scienziati...
    Uso FCKEditor (www.fckeditor.net) per inserire notizie nel mio database access utilizzando un form con textarea.
    Il sistema funziona perchè se scrivo il mio testo, formattandolo a dovere, posso richiamarlo successivamente per le modifiche, e la mia textarea si ripresenta bella bella come l'ho fatta.
    Se però vado a leggere il campo relativo nel database ecco che i caratteri di controollo per l'HTML sono sostituiti dalla codifica "&..;" (tipo che al posto di "<" c'è "&lt;")
    So che questa trasformazione è per la sicurezza del codice, ma quando richiamo la pagina delle news nello spazio dedicato al testo della notizia leggo il codice (tipo: "&lt;img height=&quot;576&quot;")
    Credo di non poter cambiare il metodo di scrittura sul database, altrimenti perderei la possibilità di modificare i dati con lo stesso strumento.
    Chiedo quindi un aiutino ... per risolvere la cosa nel passaggio dal database alla pagina htm di pubblicazione.
    Grazie mille
    (p.s: giuro che prima di scrivere disperato ho provato a cercare nel forum ma non sono riuscito a trovare la risposta)

  2. #2
    Per un campo testo usa questa funzione:

    codice:
    Function HTMLDecode(encodedstring)
    	Dim tmp, i
    	tmp = encodedstring
    	tmp = Replace( tmp, "&quot;", chr(34) )
    	tmp = Replace( tmp, "&lt;"  , chr(60) )
    	tmp = Replace( tmp, "&gt;"  , chr(62) )
    	tmp = Replace( tmp, "&amp;" , chr(38) )
    	tmp = Replace( tmp, "", chr(32) )
    	
            HTMLDecode = tmp
    End Function
    Se, poi, oltre a decodificare i tag HTML, li vuoi anche eliminare, puoi usare:

    codice:
    function RemoveTags(txt)
      dim tmptxt
      tmptxt = txt
    
       if IsNull(tmptxt) then
        exit function
      end if
    
      dim i, pos1, pos2
       do
        pos1 = Instr(tmptxt, "<")
       if pos1=0 then
          exit do
        else
           pos2 = Instr(pos1, tmptxt, ">")
           if pos2=0 then
            exit do
          else
            tmptxt = Left(tmptxt, pos1-1)&Mid(tmptxt, pos2+1)
          end if
        end if
      loop
      RemoveTags = tmptxt
    end function
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  3. #3
    Grazie per l'aiuto: la funzione "funziona" !
    Ho solo dovuto modificare la riga 4 aggiungendo un doppio apice:
    tmp = Replace( tmp, """", chr(34) )
    perchè dava errore asp (stringa non conclusa)
    e ho aggiunto anche la riga:
    tmp = Replace( tmp, "&quot;", chr(34) )
    perchè non vedevo le immagini
    Adesso sembra che tutto giri bene.

    Grazie ancora e a buon rendere

  4. #4
    Darei una lettura diversa delle correzioni che hai dovuto apportare: infatti, se la riga 4 dava errore (ma io ne dubito) perchè poi l'hai aggiunta identica un'altra volta?

    Il problema era, probabilmente, che in sede di inserimento dati avevi già fatto un replace di questo tipo:

    campo = replace(campo, """, """")

    ma non per tutti i campi. Di conseguenza la tua funzione deve lavorare su entrambe le condizioni.

    Comunque sono contento che abbia risolto, ciao.

    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

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.