+ Rispondi alla Discussione
Risultati da 1 a 5 di 5

[Stringhe] htmlentities();

Ultimo Messaggio di Samyorn il:
  1. #1
    Consiglio Direttivo L'avatar di Samyorn
    Data Registrazione
    Dec 2007
    Località
    Catania
    Messaggi
    6,000
    Segui Samyorn su Twitter Aggiungi Samyorn su Google+ Aggiungi Samyorn su Facebook Aggiungi Samyorn su Linkedin

    [Stringhe] htmlentities();

    PHP 4, 5
    Sintassi: string htmlentities ( string $string [, int $quote [, string $charset ]] )

    htmlentities è una funzione di PHP che, come avviene con la funzione htmlspecialchars();, converte i caratteri sensibili in entità HTML, con l'unica differenza che la presente funzione converte tutti quei caratteri che hanno una corrispondente entità HTML.
    Il browser leggerà il nostro script è visualizzerà il valore originario delle nuove entita' HTML, cosa che invece non accadrà per il nostro codice, invece, dato che per lui non rappresenteranno più caratteri marcatori.

    Come è facile immaginare la presente funzione torna molto utile ogniqualvolta si ricevono dati dall'esterno e quindi bisogna assicurarsi che nessuno posti del codice dannoso.

    Il parametro $quote (inserito dal modulo PHP 4.0.3) indica alla funzione cosa deve fare quando la nostra stringa contiene degli apici (singoli o doppi), e puo' assumere i seguenti valori:
    • ENT_COMPAT - valore di default se non specificato, non effettua la conversione degli apici singoli
    • ENT_QUOTES - effettua la conversione sia degli apici singoli che dei doppi apici
    • ENT_NOQUOTES - non effettua la conversione degli apici

    Pertanto, portando un breve esempio di quanto appena detto, avremo:

    <?
    $string = "Ciao <a href=\"bububu.sito.ext/boh.php\">GT's</a>";

    // vediamo un po' di esempi variando qualche impostazione
    $string = htmlentities ( $string ); // HTML: Ciao &lt;a href=&quot;bububu.sito.ext/boh.php&quot;&gt;GT's&lt;/a&gt;

    $string = htmlentities ( $string, ENT_QUOTES); // HTML: Ciao &lt;a href=&quot;bububu.sito.ext/boh.php&quot;&gt;GT&# 039;s&lt;/a&gt;

    $string = htmlentities( $string, ENT_NOQUOTES); // HTML: Ciao &lt;a href="bububu.sito.ext/boh.php"&gt;GT's&lt;/a&gt;
    ?>
    Il terzo parametro opzionale $charset (inserito dal modulo PHP 4.1.0) indica alla nostra funzione quale set di caratteri utilizzare durante la conversione, per default la funzione converte la stringa utilizzando il set di caratteri ISO-8859-1.
    I set di caratteri supportati dalla funzione sono i seguenti:



    Altri set di caratteri verranno sostituiti con quello di default.
    La funzione inversa alla presente è html_entity_decode();
    Ultima modifica di Samyorn; 02-09-08 alle 20:01
    MODFunzioni di PHP Qui, Quo, Qua
    Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?

  2. #2
    Banned L'avatar di Portaile84
    Data Registrazione
    Dec 2007
    Messaggi
    374
    Non so se sia possibile commentare.
    Io lo faccio, al massimo poi cancellate questo mio intervento.

    Non mi piace usare questa funzione.
    Spiego perchè:

    Ok se il controllo si limita allo studio del contenut odi una variabile magari acquisita con un _GET o _POST, ma se dobbiamo poi inserire tale contenuto in un database le cose diventano un pò complicate.

    Pensiamo ad esempio ad una cella di una tabella che può contenere una stringa di 10 caratteri al massimo.

    Io in una form inserisco la stringa 'Portaile84'

    che a seguito dello studio utilizzando la funzione oggetto di questo thread risulterà &#039;Portaile84&#039;

    Ora, la prima può "andare bene", escludendo che se aggiungiamo qualcosa potrebbe essere usata per un SQL injection o altro che non sto qui ad indicare :P, visto che rientra nel limite massimo dei caratteri.
    Peccato che non sarà la prima ad essere usata, ma la seconda dopo essere stata convertita.
    Da 12 caratteri siamo passati a 22 caratteri.
    E se non erro, qualora volessimo memorizzare questa stringa nel nostro database, la stringa memorizzata risulterebbe &#039;Portaile8 che se stampata poi in una pagina html tornerebbe 'Portaile8

    Oserei dire: risultato davvero pessimo.

    :P

  3. #3
    Consiglio Direttivo L'avatar di Samyorn
    Data Registrazione
    Dec 2007
    Località
    Catania
    Messaggi
    6,000
    Segui Samyorn su Twitter Aggiungi Samyorn su Google+ Aggiungi Samyorn su Facebook Aggiungi Samyorn su Linkedin
    Ciao Portaile84 e grazie del tuo intervento
    Così come riportato nel thread aperto da Giorgio per la presentazione della sezione:
    Citazione Originariamente Scritto da Giorgiotave
    La sezione nasce con lo scopo di descrivere tutte le funzioni di php, portare esempi e permettere agli utenti di richiedere domande specifiche.
    ogni intervento è benvenuto, anche per spiegare lati positivi e negativi sull'uso di ogni funzione presente

    Per tornare in tema....credo che la problematica relativa ai campi a caratteri "limitati" sia comune a qualunque tipo di funzione che agisca sulle stringhe che tu possa utilizzare. Magari affiancando altri accorgimenti all'uso di funzioni come la presente il problema si risolve o lo si aggira.

    Vediamo che ne pensano gli altri
    MODFunzioni di PHP Qui, Quo, Qua
    Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?

  4. #4
    Banned L'avatar di Portaile84
    Data Registrazione
    Dec 2007
    Messaggi
    374
    Citazione Originariamente Scritto da Samyorn Visualizza Messaggio
    [...]
    ogni intervento è benvenuto, anche per spiegare lati positivi e negativi sull'uso di ogni funzione presente
    [...]
    Meglio allora

    Se posso dare la mia soluzione, quando effettuo uno studio sui contenuti di una variabile, personalmente quando posso evito l'uso di questa funzione.

    Preferisco invece far lavorare un pò di più il server e magari richiamare una funzione che svolge questo compito.

    Ad esempio una che ricevendo una variabile come argomento (quella sulla quale voglio studiare il contenuto) e un'altra che contiene un array di caratteri diciamo Hot.
    La funzione analizza tutti i caratteri e in base ad altre direttive se viene riscontrata la presenza di un carattere Hot o lo elimina (bloccando la procedura e restituendo un messaggio di errore) oppure cerca di annullare eventuali effetti collaterali mantenendo il suo contenuto.

  5. #5
    Consiglio Direttivo L'avatar di Samyorn
    Data Registrazione
    Dec 2007
    Località
    Catania
    Messaggi
    6,000
    Segui Samyorn su Twitter Aggiungi Samyorn su Google+ Aggiungi Samyorn su Facebook Aggiungi Samyorn su Linkedin
    beh, ottima cosa direi
    le funzioni "fai da te" solitamente possono dare quel punto in più di sicurezza essendo, appunto, imprevedibili
    Vediamo se c'è qualcuno che invece si trova bene con l'uso di questa funzione...forza fatevi avanti, siamo ingordi di sapere
    MODFunzioni di PHP Qui, Quo, Qua
    Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?

+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.