<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHPBlog.it &#187; classi</title>
	<atom:link href="http://phpblog.it/category/classi/feed/" rel="self" type="application/rss+xml" />
	<link>http://phpblog.it</link>
	<description>Solo un altro blog targato WordPress</description>
	<lastBuildDate>Mon, 21 May 2012 21:45:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>PHP logging class v.1.2: una classe per il log degli eventi</title>
		<link>http://phpblog.it/2008/03/25/dalla-rete-una-classe-per-il-log-degli-eventi/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dalla-rete-una-classe-per-il-log-degli-eventi</link>
		<comments>http://phpblog.it/2008/03/25/dalla-rete-una-classe-per-il-log-degli-eventi/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 06:00:26 +0000</pubDate>
		<dc:creator>Davide Borsatto</dc:creator>
				<category><![CDATA[classi]]></category>
		<category><![CDATA[dalla rete]]></category>
		<category><![CDATA[gratis]]></category>
		<category><![CDATA[PHP Logging Class]]></category>

		<guid isPermaLink="false">http://php5blog.it/2008/03/25/dalla-rete-una-classe-per-il-log-degli-eventi/</guid>
		<description><![CDATA[Riprendendo l&#8217;argomento delle risorse gratis trattato qualche giorno fa, segnalo una classe per i log degli avvenimenti del proprio sito. Si tratta di PHP Logging Class v.1.2 di cui vediamo le features principali: Offre diversi livelli di sicurezza (Low, Medium, and High) Registrazione dell&#8217;IP per ogni entry nel log Selezione di parametri opzionali: messaggi, priorità, [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://phpblog.it/2008/03/25/dalla-rete-una-classe-per-il-log-degli-eventi/' addthis:title='PHP logging class v.1.2: una classe per il log degli eventi '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>Riprendendo l&#8217;argomento delle risorse gratis <a href="http://php5blog.it/2008/03/20/classi-e-script-php-gratis-per-tutti/">trattato</a> qualche giorno fa, segnalo <a href="http://urbanoalvarez.es/blog/2008/03/21/php-logging-class/">una classe</a> per i log degli avvenimenti del proprio sito. Si tratta di <strong>PHP Logging Class v.1.2</strong> di cui vediamo le features principali:</p>
<ul>
<li>Offre diversi livelli di sicurezza (Low, Medium, and High)</li>
<li>Registrazione dell&#8217;IP per ogni entry nel log</li>
<li>Selezione di parametri opzionali: messaggi, priorità, pagine&#8230;</li>
<li>Facilmente traducibile</li>
</ul>
<p>Semplice e immediata, una buona opzione nel caso serva un logger senza dover scrivere la classe necessaria.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://phpblog.it/2008/03/25/dalla-rete-una-classe-per-il-log-degli-eventi/' addthis:title='PHP logging class v.1.2: una classe per il log degli eventi '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2008/03/25/dalla-rete-una-classe-per-il-log-degli-eventi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Akismet: combattere lo spam con PHP</title>
		<link>http://phpblog.it/2008/03/04/service-akismet-combattere-lo-spam-con-php-5/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=service-akismet-combattere-lo-spam-con-php-5</link>
		<comments>http://phpblog.it/2008/03/04/service-akismet-combattere-lo-spam-con-php-5/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 06:00:13 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[classi]]></category>
		<category><![CDATA[dalla rete]]></category>
		<category><![CDATA[akismet]]></category>
		<category><![CDATA[filtri]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://php5blog.it/2008/03/04/service-akismet-combattere-lo-spam-con-php-5/</guid>
		<description><![CDATA[Stufi dello spam nei commenti e nei trackback dei vostri blog e dei vostri siti? Akismet è una soluzione. Per noi seguaci di PHP è arrivato Services_Akismet: un client PHP per le REST API di Akismet. Le statistiche parlano chiaro: nella giornata in cui scrivo questo post (sono le 19.30 e mancano ancora 6 ore [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://phpblog.it/2008/03/04/service-akismet-combattere-lo-spam-con-php-5/' addthis:title='Akismet: combattere lo spam con PHP '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>Stufi dello spam nei commenti e nei trackback dei vostri blog e dei vostri siti? Akismet è una soluzione. Per noi seguaci di PHP è arrivato Services_Akismet: un client PHP per le REST API di Akismet.</p>
<p><span id="more-50"></span><strong>Le statistiche parlano chiaro</strong>: nella giornata in cui scrivo questo post (sono le 19.30 e mancano ancora 6 ore alla fine del giorno UCT) sono stati individuati e bloccati oltre 10 milioni di messaggi di spam, quasi 5 miliardi di  messaggi bloccati dall&#8217;inizio delle stats (credo) con <strong>una percentuale del 91% sul totale di messaggi identificati come spam</strong>. Questo significa che praticamente 9 messaggi su 10 che arrivano sul vostro blog o sito sono spam.</p>
<p>Di sicuro mettersi a controllarli manualmente uno ad uno non è la strada giusta, la tecnologia deve venire in nostro soccorso evitandoci lavori che possono essere fatti in modo automatico. <strong>Akismet è un servizio web che prende in esame ogni messaggio che gli viene passato, esegue tutta una serie di controlli e ritorna un esito</strong>: positivo o negativo in base al contenuto.</p>
<p><a href="http://pear.php.net/package/Services_Akismet" title="Service_Akismet è un client PHP per le REST API di Akismet che trovate su PEAR"><strong>Service_Akismet è un client PHP (attualmente in beta) per le REST API di Akismet</strong> che trovate su PEAR</a> realizzato in PHP5 sfruttando la OOP. Per il suo utilizzo avete bisogno di una <a href="http://wordpress.com/api-keys/" title="chiave WordPress API">chiave WordPress API</a> nonostante il fatto che il servizio non è vincolato a WordPress, potete quindi implementare i vostri filtri privati per applicarli dove lo ritenete più utile.</p>
<p>Esistono due tipi di licenze per l&#8217;utilizzo: una free per uso personale ed <a href="http://akismet.com/commercial/" title="una a pagamento per uso commerciale o per grossi volumi di traffico">una a pagamento per uso commerciale o per grossi volumi di traffico</a>.</p>
<p>Buona lettura e buon lavoro per la realizzazione del vostro filtro!</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://phpblog.it/2008/03/04/service-akismet-combattere-lo-spam-con-php-5/' addthis:title='Akismet: combattere lo spam con PHP '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2008/03/04/service-akismet-combattere-lo-spam-con-php-5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP Mailer: inviare email facilmente</title>
		<link>http://phpblog.it/2008/02/20/phpmailer-inviare-facilmente-email-con-php/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=phpmailer-inviare-facilmente-email-con-php</link>
		<comments>http://phpblog.it/2008/02/20/phpmailer-inviare-facilmente-email-con-php/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 06:00:53 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[classi]]></category>
		<category><![CDATA[dalla rete]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[gpl]]></category>
		<category><![CDATA[newsletter]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[phpmailer]]></category>

		<guid isPermaLink="false">http://php5blog.it/2008/02/20/phpmailer-inviare-facilmente-email-con-php/</guid>
		<description><![CDATA[Nello sviluppo di applicazioni web di tipo custom il fatto di poter sfruttare uno strumento tanto semplice quanto potente come l&#8217;email è una cosa davvero importante. Pensate solo agli alert che l&#8217;applicazione può inviare allo sviluppatore, alle email per la verifica di una registrazione, alla conferma di prenotazione per un servizio&#8230;tutte cose che possono sembrare [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://phpblog.it/2008/02/20/phpmailer-inviare-facilmente-email-con-php/' addthis:title='PHP Mailer: inviare email facilmente '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p><img src="http://172.18.0.13/wordpress/wp-content/uploads/2008/02/mail.jpg" alt="Mail" />Nello sviluppo di applicazioni web di tipo custom <strong>il fatto di poter sfruttare uno strumento tanto semplice quanto potente come l&#8217;email è una cosa davvero importante</strong>. Pensate solo agli alert che l&#8217;applicazione può inviare allo sviluppatore, alle email per la verifica di una registrazione, alla conferma di prenotazione per un servizio&#8230;tutte cose che possono sembrare scontate all&#8217;utente ma che ricoprono funzioni fondamentali. Il core di PHP mette a disposizione la funzione mail() che però non è comoda e facile da usare quanto la classe, forse più celebre in campo PHP per quanto riguarda le email, <a href="http://phpmailer.codeworxtech.com/" title="PHPMailer"><strong>PHPMailer</strong></a>.</p>
<p><span id="more-26"></span> <strong>PHPMailer è una classe opensource rilasciata sotto licenza GPL</strong> che ha saputo guadagnarsi nel tempo e direttamente sul campo il rispetto di molti sviluppatori (il sottoscritto compreso) dando a tutti la possibilità di gestire l&#8217;utilizzo delle email in modo semplice e curato. Tra i vari aspetti che contraddistinguono la classe dal resto della categoria riportiamo:</p>
<ul>
<li> invio a multipli TO, CC, BCC e REPLY-TO</li>
<li>HTML email</li>
<li>supporto nativo per le immagini</li>
<li> Multipart/alternative email per eventuali client che non supportano html</li>
<li>gestione allegati</li>
<li>autenticazione SMTP</li>
</ul>
<p>Dopo un periodo di apparente stallo nello sviluppo, più che altro la classe era stabile e funzionale così com&#8217;era, il progetto è arrivato alla versione 2.0 del codice proponene anche una <strong>nuova versione per PHP5</strong> che attualmente è alla beta 2 (2.1.0 beta 2).</p>
<p>A questo punto vi chiederete come utilizzare PHPMailer e come sfruttare pienamente le sue funzioni, non lo faremo qui ma vi basterà seguire le istruzioni riportate nell&#8217;<a href="http://phpmailer.codeworxtech.com/tutorial.html" title="ottimo tutorial messo a disposizione sul sito ufficiale della classe">ottimo tutorial messo a disposizione sul sito ufficiale della classe</a>. Verrete guidati dal semplice primo utilizzo fino all&#8217;esauriente spiegazione di come utilizzare gli allegati e l&#8217;html nel corpo dei messaggi.</p>
<p>Oltre alla guida vi segnalo anche <a href="http://phpmailer.codeworxtech.com/examples.html" title="la sezione degli esempi">la sezione degli esempi</a> dove potete vedere in azione degli esempi avanzati.</p>
<p>Per esperienza personale vi posso assicurare che <strong>PHPMailer si presta benissimo anche per l&#8217;utilizzo in ambito di mass mailing (newsletter) riuscendo a gestire parecchie centinaia di migliaia di email al giorno</strong> se integrato in una struttura creata ad hoc che magari sfrutti le potenzialità di un database relazionale.</p>
<p>Ora tocca a voi sfruttare le informazioni messe a disposizione in questo post nelle vostre applicazioni. Come sempre utilizzate i commenti qui sotto per esprimere i vostri pareri, critiche, suggerimenti.</p>
<p><strong>CREDITS</strong><br />
L’immagine utilizzata nell’articolo proviene da <a href="http://www.flickr.com/">Flickr</a>, dove è stata <a href="http://www.flickr.com/photos/alykat/102176802/" title="Mailbox">pubblicata da alykat</a> con <a href="http://creativecommons.org/licenses/by-nc/2.0/deed.it" title="Attribuzione-Non commerciale 2.0 Generico">licenza Creative Commons</a>.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://phpblog.it/2008/02/20/phpmailer-inviare-facilmente-email-con-php/' addthis:title='PHP Mailer: inviare email facilmente '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2008/02/20/phpmailer-inviare-facilmente-email-con-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Generare password casuali</title>
		<link>http://phpblog.it/2008/02/18/classe-php5-generazione-password-casuali/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=classe-php5-generazione-password-casuali</link>
		<comments>http://phpblog.it/2008/02/18/classe-php5-generazione-password-casuali/#comments</comments>
		<pubDate>Mon, 18 Feb 2008 06:00:47 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[classi]]></category>
		<category><![CDATA[phpblog]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[generatore]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[shuffle]]></category>
		<category><![CDATA[tipi]]></category>

		<guid isPermaLink="false">http://php5blog.it/2008/02/18/classe-php5-generazione-password-casuali/</guid>
		<description><![CDATA[In tutte le applicazioni che richiedono l&#8217;autenticazione da parte degli utenti un ruolo fondamentale per quanto riguarda la sicurezza dell&#8217;intero sistema è rappresentato dalla password inserita. Molte volte (se non nella totalità dei casi) lasciare all&#8217;utente la gestione completa della propria password è fonte di rischio visto che per semplice pigrizia l&#8217;utente medio utilizza spesso [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://phpblog.it/2008/02/18/classe-php5-generazione-password-casuali/' addthis:title='Generare password casuali '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p><img src="http://172.18.0.13/wordpress/wp-content/uploads/2008/02/padlock.jpg" alt="Padlock" />In tutte le applicazioni che richiedono l&#8217;autenticazione da parte degli utenti <strong>un ruolo fondamentale per quanto riguarda la sicurezza dell&#8217;intero sistema è rappresentato dalla password inserita</strong>. Molte volte (se non nella totalità dei casi) lasciare all&#8217;utente la gestione completa della propria password è fonte di rischio visto che per semplice pigrizia l&#8217;utente medio utilizza spesso la stessa parola chiave sicuramente appartenente alla tipologia che possiamo definire debole: il proprio nome, date di nascita, parole estremamente corte. <strong>Oggi quindi presento una semplice classe per la generazione di password casuali scritta in PHP5.</strong></p>
<p><span id="more-34"></span>Una strada per innalzare la sicurezza della propria applicazione e dell&#8217;intero sistema è quella di <strong>fornire all&#8217;utente una password creata dal sistema seguendo un determinato criterio</strong> con l&#8217;intento di rispettare quelli che sono i requisiti minimi per una password sicura. Vogliamo quindi utilizzare:</p>
<ul>
<li>un insieme di caratteri alfabetici maiuscoli e minuscoli</li>
<li>un insieme di numeri</li>
</ul>
<p>La classe che vediamo di seguito è molto semplice prende <strong>2 valori in input <em>length</em> e <em>numbers</em></strong> che indicano rispettivamente la lunghezza totale della password ed il numero di cifre intendiamo inserire nella stringa che andiamo a generare. E&#8217; costituita dal <strong><em>costruttore</em> che si occupa di creare l&#8217;oggetto</strong> al momento dell&#8217;istanziazione della classe e dal <strong>metodo <em>getPassword() </em></strong>che si occupa dell&#8217;elaborazione vera e propria dell&#8217;input per la generazione dell&#8217;output: la password.</p>
<p><strong>Il costruttore si occupa appunto di costruire l&#8217;oggetto facendo le dovute <a href="http://php5blog.it/2008/02/12/php-non-e-fortemente-tipizzato/" title="verifiche sui tipi, di cui abbiamo parlato in un post precedente">verifiche sui tipi</a></strong><a href="http://php5blog.it/2008/02/12/php-non-e-fortemente-tipizzato/" title="verifiche sui tipi, di cui abbiamo parlato in un post precedente">, di cui abbiamo parlato in un post precedente</a>, ed agendo in base alla situazione che si verifica.<br />
<code></code></p>
<p><code>public function __construct($length, $numbers) {<br />
if (!is_int($length) || !is_int($numbers)) {<br />
die("randoPassword() richiede argomenti di tipo intero\n");<br />
}<br />
if ($length &lt; $numbers) {<br />
die("length deve essere maggiore di numbers\n");<br />
}<br />
$this-&gt;length = $length;<br />
$this-&gt;numbers = $numbers;<br />
}<br />
</code></p>
<p>Come anticipato <strong>il metodo <em>getPassword() </em>si occupa del lavoro vero e proprio</strong>, vediamo quindi come si comporta. Innanzitutto <strong>andiamo ad inserire nell&#8217;array <em>random_char</em> un numero di caratteri alfabetici presi da <em>$alphabet</em> pari al valore di <em>$length</em> meno il valore di <em>$numbers</em>.</strong> In secondo luogo <strong>aggiungiamo dei caratteri numerici</strong> presi casualmente tra 0 e 9 fino a raggiungere una numerosità dell&#8217;array <em>random_char</em> pari a <em>$length. </em>A questo punto avremmo già una password composta da lettere (maiuscole e minuscole) con n=$numbers caratteri numerici in coda. <strong>Per rendere le password meno ripetitive ho deciso di rimischiare i valori interni all&#8217;array con la comoda funzione <a href="http://it.php.net/manual/it/function.shuffle.php" title="shuffle">shuffle</a></strong> prima di eseguire il return del metodo.<br />
<code><br />
public function getPassword() {<br />
$a = 0;<br />
while ($a &lt; ($this-&gt;length - $this-&gt;numbers)) {<br />
$random_char[$a] = $this-&gt;alphabet[rand(0,51)];<br />
$a++;<br />
}</code><br />
<code><br />
while ($a &lt; $this-&gt;length) {<br />
$random_char[$a] = rand(0,9);<br />
$a++;<br />
}<br />
</code><code><br />
shuffle($random_char);<br />
</code><code><br />
$a = 0;<br />
while ($a &lt; ($this-&gt;length + $this-&gt;numbers)) {<br />
$password .= $random_char[$a];<br />
$a++;<br />
}<br />
return $password;<br />
}<br />
</code></p>
<p>Come sempre potete <a href="http://php5blog.it/downloads/phpblog/randomPassword.class.php.txt" title="randomPassword.class.php">scaricare <strong>il codice completo della classe randomPassword.class.php</strong></a> in modo da studiarlo attentamente (l&#8217;indentazione lì è corretta) e provarlo ma soprattutto modificarlo e perfezionarlo in base a quello che vi ha insegnato la vostra esperienza.</p>
<p>Usate i commenti qui sotto per esprimere il vostro parere, i vostri dubbi, le vostre critiche e i suggerimenti che riteniate possano essere utili a me ed ai lettori.</p>
<p><strong>CREDITS<br />
</strong>L’immagine utilizzata nell’articolo proviene da <a href="http://www.flickr.com/">Flickr</a>, dove è stata <a href="http://www.flickr.com/photos/imaginedreality/399334773/" title="Padlock and Key">pubblicata da Imagined Reality</a> con <a href="http://creativecommons.org/licenses/by-sa/2.0/deed.it" title="Attribuzione-Condividi allo stesso modo 2.0 Generico">licenza Creative Commons</a>.<a href="http://www.flickr.com/photos/imaginedreality/399334773/" title="http://www.flickr.com/photos/imaginedreality/399334773/"><br />
</a></p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://phpblog.it/2008/02/18/classe-php5-generazione-password-casuali/' addthis:title='Generare password casuali '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2008/02/18/classe-php5-generazione-password-casuali/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

