Archivio tag per 'php'

Set
14

Come ottimizzare e pulire il codice HTML dai tag inutili con HTML Purifier

HTML PurifierChiunque abbia utilizzato un editor HTML visuale (come ad esempio Adobe Dreamweaver, Microsoft FrontPage o, i più recenti, Microsoft Expression Web e Sharepoint Designer), ma anche un qualsiasi CMS, si sarà  sicuramente reso conto di quanto codice superfluo viene generato da questi programmi.

Sebbene possa sembrare una sciocchezza, questo comporta una maggiore dimensione della pagina (e/o dell’intero sito), una minore ottimizzazione e, verosimilmente, problemi di sicurezza.

HTML Purifier è una libreria in PHP che assicura: sicurezza (rimuove il codice maligno, conosciuto come XSS), pulizia del codice (analizza il codice al fine di renderlo pulito, conforme agli standard e alle specifiche W3C) e apertura alle modifiche (è open source e, di conseguenza, altamente personalizzabile).

Installazione

L’installazione è facile: dopo aver il pacchetto di installazione dal sito, decomprimetelo sul vostro PC locale e poi trasferite la cartella library, sullo spazio web.

Ora impostate come scrivibile (chmod 755 o 777) la cartella:

/path/to/library/HTMLPurifier/DefinitionCache/Serializer

dove /path/to/library/, è il percorso sul server fino alla cartella indicata.

Configurazione

Anzitutto è necessaria l’inclusione della libreria:

require_once '/path/to/library/HTMLPurifier.auto.php';

In moltissimi casi, questo già  basta per permettere ad HTML Purifier di funzionare correttamente, ma, se il vostro Doctype fosse diverso da XHTML Transitional e il vostro set di caratteri diverso da UTF-8, sono necessarie delle ulteriori e semplici modifiche:

require_once '/path/to/library/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'ISO-8859-1');
$config->set('HTML.Doctype', 'XHTML 1.0 Strict');

In questo caso, abbiamo modificato il Doctype in XHTML 1.0 Strict e il set di caratteri in ISO-8859-1.

Esempio di utilizzo

Infine, vediamo un esempio pratico di funzionamento di HTML Purifier:

<?php
$dirty_html = "... codice HTML non ripulito ...";
$purifier = new HTMLPurifier();
$clean_html = $purifier->purify( $dirty_html );
echo $clean_html
?>

Nella variabile $dirty_html è contenuto il codice iniziale, mentre, in $clean_html, il codice ripulito ed ottimizzato!

Plugin

I meno esperti o i pigroni (!), possono semplicemente integrare HTML Purifier, tramite plugin, ai più noti CMS, come WordPress, Drupal e Joomla!

Gen
21

TorrentFlux: un client BitTorrent scritto in PHP ed utilizzabile via web

Qualche giorno fa, il mio collega Vittorio, mi aveva chiesto se conoscessi un client BitTorrent per sistemi *unix che si potesse amministrare via web.

A dir la verità , io avevo sempre utilizzato client BitTorrent testuali o, a limite, Azureus, quindi non ho saputo dargli una risposta, ma ho subito interrogato Google per capire se esistesse un software del genere. Ed ecco che è venuto fuori TorrentFlux: un client Bittorrent completamente open source (rilasciato sotto licenza GPL), multipiattaforma e sviluppato in PHP.

TorrentFlux, quindi, si distingue dagli altri client per queste caratteristiche:

  • è progettato in PHP e quindi gira su un webserver e non in locale come gli atri client;
  • si utilizza tramite browser (può essere quindi raggiunto e gestito da qualsiasi postazione remota tramite una interfaccia web abbastanza user friendly);
  • i torrent ed i files scaricati non vengono memorizzati in locale, ma sul server in cui è installato.

Cosa è richiesto per utilizzare TorrentFlux:

  • un sistema *unix like (Linux, BSD, Solaris, etc.);
  • un web server che supporti PHP (ad esempio Apache o Lighttpd);
  • un database SQL (MySQL, Postgres o Sqlite);
  • PHP 4.3.x o superiore;
  • Python 2.2 o superiore.

Incuriosito dalle potenzialità  di questo programma, ho deciso di installarlo sul mio server casalingo (utilizzando i comodissimi ports di FreeBSD), utilizzando Lighttpd come webserver e Sqlite come database, al fine di renderlo in più leggerlo possibile. Il risultato è stato davvero sorprendente: gestire un client BitTorrent via web è davvero comodissimo, l’interfaccia di TorrentFlux è essenziale, ma funziona bene. Ho rilevato velocità  di download mai viste prima con un minimissimo impatto sulle prestazioni del sistema.

Concludo l’articolo indicandovi un paio di links dove è descritto come installare TorrentFlux su Ubuntu e come farlo funzionare in accoppiata con Lighttpd e Sqlite.

Fonte immagine e di ispirazione: Wiki.Ubuntu-It.org.

Ago
20

Come eliminare l’errore ‘Invalid Token’ in Joomla 1.5

Ho aggiornato un sito che amministro per lavoro a Joomla 1.5.5 e, provando a fare login e/o esprimendo un voto nel sondaggio, ottenevo un fastidioso quanto criptico errore: Invalid Token.

Cercando un po’ in rete ho capito qual era il problema: l’errore può derivare da riga sbagliata nel template del mod_login dove, solitamente in un file chiamato default.php, potreste/dovreste trovare questa riga:

[quickcode]<input type=”hidden” name=”<?php echo JUtility::getToken(); ?>” value=”1″ />[/quickcode]

che dovete sostituire con quest’altra:

[quickcode]<?php echo JHTML::_( ‘form.token’ ); ?>[/quickcode]

Nel mio caso ha funzionato alla perfezione, spero che questo hint sia utile anche a voi ;-)

Ago
14

Come aumentare il memory limit di PHP

Chiunque abbia smanettato un po’ con PHP, almeno una volta nella vita si sarà  trovato davanti odiosissimo questo errore:

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 1234 bytes) in /web/htdocs/www.sito.it/file.php on line 123

.. scaturito dal superamento dai limiti imposti nel file di configurazione di php (ovvero php.ini) dall’amministratore di sitema (il quale, nell’esempio preso in considerazione, ha dichiarato che, ogni pagina dello script php, non può allocare più di 8 Mb di memoria).

Ecco 3 modi possibili per risolvere il problema, lascio a voi la scelta sul quale si adatta meglio alle vostre esigenze:

  1. il caso più semplice è se siete voi gli amministratori del vostro server: in tal caso, nel file php.ini, impostate la variabile memory_limit ad un valore più alto di 8 Mb (io vi consiglio 16 o 32), poi riavviate il web server
  2. se, invece, avete un hosting e il vostro fornitore di servizi supporta il file .htaccess, potete aumentare la quantità  di memoria direttamente in questo file (createlo se non esiste e piazzatelo nella radice del vostro spazio web) con la direttiva php_value memory_limit 16M (o 32M). Piccola nota dolente: purtroppo questo metodo non funziona con tutti gli hosting (ad esempio, per esperienza personale, posso dirvi con certezza che con Aruba non va), però, data la semplicità  della procedura, un tentativo vale la pena di farlo lo stesso.
  3. se non siete riusciti a risolvere il problema con nessuna delle soluzioni precedenti, rimboccatevi le maniche e mettete mano al codice impostando, nella pagina php che provoca l’errore, l’istruzione ini_set(“memory_limit”,”16M”); (si, è necessario anche il ;) subito dopo il tag <? e prima di tutto il resto.
Ott
12

Come installare apache + php 5 + mysql + phpMyAdmin + bluefish su FreeBSD

Ciao, sono (finalmente!) tornato dall’università  (dove sono stato BEN 3 giorni senza internet!!) e mi sono messo subito al lavoro per installare apache, php 5, mysql, phpMyAdmin e bluefish (un editor web) su FreeBSD per svolgere il progetto di Tecnologie del Web e ho colto l’occasione per scrivere questo mini-howto sperando che possa tornare utile a qualcuno.

Iniziate con l’installazione di php5 (in modo che vi verrà  installato automaticamente anche apache 1.3.34 e tutte le relative dipendenze) con i comandi (grazie a Daniele per la segnalazione di questo port che evita l’editing manuale del file php.ini :-) ):

# cd /usr/ports/lang/php5-extensions (nelle opzioni selezionate per lo meno MYSQL, PCRE e SESSION oltre a quelle già  selezionate)
# make install clean

.. ed attendete che la compilazione termini.

Ora è necessario editare il file di conf di apache..:

# cd /usr/local/etc/apache
# ee httpd.conf
(riga 850 circa)

.. e aggiungere le seguenti righe:

Continua la lettura di ‘Come installare apache + php 5 + mysql + phpMyAdmin + bluefish su FreeBSD’




Hai bisogno di un sito web?

Web&Dintorni

Vuoi collaborare a questo blog?

Ogni tipo di collaborazione è benvenuta!


Scrivimi all'indirizzo paolo.gatti@gmail.com o invia un messaggio sulla pagina Facebook!