Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql > Funzioni di PHP
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 13-03-08, 00:24   #1 (permalink)
Consiglio Direttivo
 
L'avatar di Samyorn
 
Data di registrazione: Dec 2007
Ubicazione: Catania
Messaggi: 5,845
Invia un messaggio tramite ICQ a Samyorn Invia un messaggio tramite Skype a Samyorn
[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:

Quote:
<?
$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();
__________________
Qui, Quo, Qua
Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?
Conosci GTLab? Devi scegliere un CMS per Forum e non sai quale? Guarda quì!!

Ultima modifica di Samyorn : 02-09-08 21:01.
Samyorn non in linea   Rispondi citando
Vecchio 13-03-08, 19:32   #2 (permalink)
Banned
 
L'avatar di Portaile84
 
Data di registrazione: Dec 2007
Messaggi: 368
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à 'Portaile84'

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 'Portaile8 che se stampata poi in una pagina html tornerebbe 'Portaile8

Oserei dire: risultato davvero pessimo.

:P
Portaile84 non in linea   Rispondi citando
Vecchio 13-03-08, 20:30   #3 (permalink)
Consiglio Direttivo
 
L'avatar di Samyorn
 
Data di registrazione: Dec 2007
Ubicazione: Catania
Messaggi: 5,845
Invia un messaggio tramite ICQ a Samyorn Invia un messaggio tramite Skype a Samyorn
Ciao Portaile84 e grazie del tuo intervento
Così come riportato nel thread aperto da Giorgio per la presentazione della sezione:
Quote:
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
__________________
Qui, Quo, Qua
Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?
Conosci GTLab? Devi scegliere un CMS per Forum e non sai quale? Guarda quì!!
Samyorn non in linea   Rispondi citando
Vecchio 13-03-08, 20:54   #4 (permalink)
Banned
 
L'avatar di Portaile84
 
Data di registrazione: Dec 2007
Messaggi: 368
Quote:
Samyorn Visualizza il 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.
Portaile84 non in linea   Rispondi citando
Vecchio 14-03-08, 16:35   #5 (permalink)
Consiglio Direttivo
 
L'avatar di Samyorn
 
Data di registrazione: Dec 2007
Ubicazione: Catania
Messaggi: 5,845
Invia un messaggio tramite ICQ a Samyorn Invia un messaggio tramite Skype a Samyorn
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
__________________
Qui, Quo, Qua
Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?
Conosci GTLab? Devi scegliere un CMS per Forum e non sai quale? Guarda quì!!
Samyorn non in linea   Rispondi citando
Rispondi
Tags: , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 10:15.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.