<?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>ilPestifero &#187; php</title>
	<atom:link href="http://www.ilpestifero.net/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ilpestifero.net</link>
	<description>uno sguardo critico al mondo che ci circonda</description>
	<lastBuildDate>Fri, 03 Feb 2012 14:08:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Blog, treehouse magazine e link sul web design</title>
		<link>http://www.ilpestifero.net/2005/10/18/blog-treehouse-link-web-design/</link>
		<comments>http://www.ilpestifero.net/2005/10/18/blog-treehouse-link-web-design/#comments</comments>
		<pubDate>Tue, 18 Oct 2005 11:17:15 +0000</pubDate>
		<dc:creator>ilpestifero</dc:creator>
				<category><![CDATA[Web design]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[ebook gratis]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[magazine]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[user inexperience]]></category>

		<guid isPermaLink="false">http://www.ilpestifero.net/2005/10/18/blog-treehouse-link-web-design/</guid>
		<description><![CDATA[Link e risorse (ebook in pdf) relativi al web development in particolare riguardo gli aspetti da considerare all'interno di un sito e di un blog.]]></description>
			<content:encoded><![CDATA[<p><a href="http://store.particletree.com/">Treehouse Magazine, primo numero</a><br />
Un nuovo magazine (in inglese ovviamente&#8230;) sul web-development. Javascript, php, ajax, dom, interviste e riflessioni sui vari aspetti dello sviluppo web. Davvero ben curata (anche graficamente) e realizzata.</p>
<p><a href="http://sethgodin.typepad.com/">Seth Godin</a> invece mette a disposizione altri due interessantissimi ebook relativi ai siti web ed ai blog (entrambi gratuiti e scaricabili in formato pdf).<br />
1. <a href="http://sethgodin.typepad.com/seths_blog/2005/09/free_ebook_1_no.html">ebook &#8211; knock knock</a>, come fare che i siti web facciano meglio il loro lavoro&#8230;<br />
2. <a href="http://sethgodin.typepad.com/seths_blog/2005/09/whos_there_the_.html">ebook -who&#8217;s there</a>, il seguito, rivolto ai blog.
</p>
<p>L&#8217;ultimo link è invece dedicato ad un blog (sempre in lingua inglese) rivolto a tutte le problematiche della <a href="http://www.userinexperience.com/">user (in)experience</a>, dall&#8217;usabilità web, alle interfaccie grafiche, all&#8217;architettura dell&#8217;informazione etc.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ilpestifero.net/2005/10/18/blog-treehouse-link-web-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>301: Redirect Permanente</title>
		<link>http://www.ilpestifero.net/2005/06/06/301-redirect-permanente/</link>
		<comments>http://www.ilpestifero.net/2005/06/06/301-redirect-permanente/#comments</comments>
		<pubDate>Mon, 06 Jun 2005 18:44:21 +0000</pubDate>
		<dc:creator>ilpestifero</dc:creator>
				<category><![CDATA[Web development]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[altervista]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[asp]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[permanent redirect]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.ilpestifero.net/?p=39</guid>
		<description><![CDATA[Trasferendo il sito da un dominio ad un altro dovevo fare in modo che gli utenti che accedessero al vecchio sito venissero dirottati su quello nuovo. Ecco come ho fatto, usando php...]]></description>
			<content:encoded><![CDATA[<p>Avendo <strong>trasferito</strong> il blog dal <a href="http://ma2k1.altervista.org/ilpestifero/">vecchio dominio</a> a quello <a href="http://www.ilpestifero.net">nuovo su tophost</a>, necessitavo di comunicare in maniera trasparente sia agli utenti che ai motori di ricerca il cambio di casa&#8230;<br />
La soluzione migliore fin da subito mi è sembrata quella fornita dal <strong>codice 301</strong>, un codice che indica che la vecchia risorsa è stata spostata definitivamente in un nuovo luogo.<br />
Essendo il vecchio sito ospitato su <strong>altervista</strong>, non ho potuto utilizzare i file htaccess di apache per indicare il cambio di residenza, ho quindi optato per la soluzione offerta da php&#8230;<br />
<span id="more-39"></span><br />
Il <strong>codice php</strong> che ho utilzzato è semplicemente quello che vedete qui sotto.<br />
<viewcode src="index.txt" link="no" /><br />
Tale istruzione non fa nient&#8217;altro che comunicare al browser dell&#8217;utente o allo spider del motore di ricerca che la pagina che si sta cercando è stata trasferita in maniera permanente ad un nuovo indirizzo. Mi è stato quindi sufficiente creare una pagina di nome index.php contenente il codice sopraesposto e metterla nel vecchio spazio di hosting affinchè tutte le richieste venissero reindirizzate verso il nuovo dominio.<br />
Eccovi un link interessante che riassume le varie <a href="http://www.webconfs.com/how-to-redirect-a-webpage.php">tecniche di redirect search engine friendly</a>, fornite da php, asp, apache, iss, etc.</p>
<p>Purtroppo la soluzione da me adottata non è la migliore possibile, in quanto tutte le pagine che si cerca di accedere sul vecchio dominio vengono reindirizzate ad un&#8217;unica su quello nuovo, la <a href="http://www.ilpestifero.net">homepage</a>&#8230;<br />
La soluzione migliore nel mio caso sarebbe quella fornita dall&#8217;accoppiata <a href="http://www.gnc-web-creations.com/301-redirect.htm">mod_rewrite e codice 301</a>, il tutto cablato all&#8217;interno di un file <strong>htaccess</strong>, in modo da trasferire in maniera trasparente un sito da uno spazio all&#8217;altro, in quanto tutte le vecchie pagine vengono reindirizzate sulle relative pagine contenute nel nuovo dominio!<br />
Come detto sopra però altervista non permette l&#8217;utilizzo dei file htaccess, quindi ho dovuto scartare questa soluzione e ripiegare su quella offerta dal php.<br />
Sto però pensando se non si riesca a fare qualcosa di simile anche tramite php&#8230; per ora ho solo qualche idea, vedrò di lavorarci sopra!</p>
<p>Cito solamente per evitare che qualcuno lo utilizzi il redirect tramite html: <strong>meta http-equiv=&#8221;refresh&#8221;</strong>.<br />
Tale metodo è vivamente sconsigliato in quanto non è visto di buon occhio dai motori di ricerca, dato l&#8217;uso poco ortodosso che ne hanno fatto (e ne fanno) spammer e webmaster. Inoltre è una soluzione poco elegante e limitata ad una sola singola pagina, oltre a creare disorientamento negli utenti.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ilpestifero.net/2005/06/06/301-redirect-permanente/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Riviste Php</title>
		<link>http://www.ilpestifero.net/2005/05/14/giornali-php/</link>
		<comments>http://www.ilpestifero.net/2005/05/14/giornali-php/#comments</comments>
		<pubDate>Sat, 14 May 2005 18:36:41 +0000</pubDate>
		<dc:creator>ilpestifero</dc:creator>
				<category><![CDATA[gratis]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php journal]]></category>
		<category><![CDATA[php solutions]]></category>
		<category><![CDATA[riviste]]></category>

		<guid isPermaLink="false">http://www.ilpestifero.net/index.php/2005/05/14/giornali-php/</guid>
		<description><![CDATA[Due riviste dedicate a Php: una elettronica gratuita e l'altra cartacea e disponibile nelle edicole.]]></description>
			<content:encoded><![CDATA[<p>Volevo segnalarvi due &#8220;nuove&#8221; riviste relative a <a href="http://www.php.net/">PHP</a>.</p>
<p>La prima è un&#8217;edizione esclusivamente digitale, <strong>gratuitamente</strong> scaricabile dal sito della <a href="http://www.duke.it/">Duke Italia</a>, iscrivendosi all&#8217;apposita newsletter. Ogni qualvolta uscirà un nuovo numero riceverete in email il link alla rivista (formato .pdf).</p>
<p><a href="http://www.phpsolmag.org/it/">PHP Solutions</a> invece è una rivista cartacea interamente dedicata alla programmazione con PHP. Attualmente è in edicola il secondo numero (che non riesco a trovare&#8230;); sul sito invece è possibile scaricare qualche articolo dimostrativo o valutare la possibilità di sottoscrivere l&#8217;interessante proposta di abbonamento, comprensiva di due libri sul <em>PHP</em>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ilpestifero.net/2005/05/14/giornali-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Controllo input utente [server-side]</title>
		<link>http://www.ilpestifero.net/2005/04/27/controllo-input-utente-server-side/</link>
		<comments>http://www.ilpestifero.net/2005/04/27/controllo-input-utente-server-side/#comments</comments>
		<pubDate>Wed, 27 Apr 2005 21:14:04 +0000</pubDate>
		<dc:creator>ilpestifero</dc:creator>
				<category><![CDATA[Web development]]></category>
		<category><![CDATA[applicazioni web]]></category>
		<category><![CDATA[controlli]]></category>
		<category><![CDATA[input utente]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[server side]]></category>
		<category><![CDATA[sql injection]]></category>

		<guid isPermaLink="false">http://www.ilpestifero.net/index.php/2005/04/27/controllo-input-utente-server-side/</guid>
		<description><![CDATA[Scopo di quest'articolo è di esaminare le tecniche per controllare i dati che un utente fornisce in input a particolari applicazioni web al fine di migliorarne la sua sicurezza e garantirne  un corretto funzionamento.]]></description>
			<content:encoded><![CDATA[<p><img src="/img/input_1.jpg" alt="cattivo input?" title="cattivo input?" class="float" />Scopo di quest&#8217;articolo è di esaminare le tecniche messe a disposizione da <strong>PHP</strong> per controllare i dati che un utente fornisce in input a particolari applicazioni web, al fine di migliorarne la sua sicurezza e garantirne  un corretto funzionamento.<br /><span id="more-9"></span></p>
<p>Partendo dal presupposto che non possiamo essere certi che uno script da noi creato venga richiamato o dal form ad esso associato o, nel caso di variabili di tipo GET passate tramite uri, dalluri correttamente costruito, è fondamentale controllare sempre i dati che si ricevono, in modo da prevenire sia errati inserimenti sia inserimenti creati appositamente per eseguire delle operazioni non consentite.</p>
<p>Ogni dato ricevuto in input, da qualsiasi fonte, va sempre controllato e ricondotto alla <strong>logica della applicazione</strong> per quanto possibile; in alternativa si può segnalare l<strong>errore</strong> allutente tramite dei messaggi creati ad hoc.<br /> Va ricordato che lutente da una parte potrebbe necessitare di capire laddove ha sbagliato nellutilizzare la nostra applicazione e dallaltra potrebbe invece essere intenzionato a scoprire informazioni sensibili.</p>
<p>Tutti i controlli che vedremo sono applicati <strong>server-side</strong>, tramite php.<br />
<img src="/img/input_2.jpg" alt="Prevenire la rottura degli ingranaggi..."class="float" title="Prevenire la rottura degli ingranaggi..." />Esistono anche dei controlli <strong>client-side</strong>, implementati ad esempio attraverso javascript; questi controlli possono aiutare un utente a non commettere errori, migliorando lusabilità dellapplicazione e riducendo il carico di lavoro del server.<br />
Dal punto di vista della <strong>sicurezza</strong> però non sono assolutamente adatti in quanto possono essere facilmente bypassati da utenti malintenzionati; inoltre spesso controlli più accurati possono essere svolti solo lato server, richiedendo informazioni non disponibili lato client.<br /><span class="es"><em>es.</em> Controllo che la tipologia di operazione ricevuta sia presente nel database, eseguendo una query con la clausola where uguale al valore di input (opportunamente filtrato).</span>
</p>
<h3>Principali filtri da applicare:</h3>
<ul>
<li>numero dei dati di input<br />
<span class="es"><br />
<em>es.</em> count($_GET)==3<br />
</span>
</li>
<li>presenza dei dati che ci aspettiamo. In primis che siano definiti e quindi presenti ed in secondo luogo che non siano, tranne se lo consentiamo, vuoti, magari definendone anche un valore alternativo di default.<br />
<span class="es"><br />
<em>1.</em> if ( isset($_POST[data]) )  {procedura} else {messaggio, esci}<br />
<em>2.</em> if ( trim($_POST[causale])==&quot;&quot; ) $causale=&quot;Nessuna causale&quot;<br />
</span>
</li>
<li>controllo del tipo per ogni dato. Si può controllare il tipo e agire di conseguenza:<br />
<span class="es"><br />
<em>es.</em> is_int(), is_numeric(), is_string() etc.<br />
</span><br />
Oppure effettuare il casting in modo da forzare una variabile ad essere considerata di un certo tipo.<br />
<span class="es"><br />
<em>es.</em> (int) ($_POST[peso]) oppure attraverso settype.<br />
</span><br />
<em>Nota</em>: tutte le variabili provenienti da form sono considerate stringhe.
</li>
<li>controllo della forma per ogni dato che ne prevede una fissata. Utilizzare eregi() o preg_match().<br />
<span class="es"><br />
<em>es.</em> per le date, controllare che siano nella forma gg-mm-aaaa, anche tramite checkdate().<br />
</span>
</li>
<li>Range di valori accettabili.<br />
<span class="es"><br />
<em>es.</em> controllare che $_POST[peso] sia maggiore di 0 e minore di X.<br />
</span>
</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.ilpestifero.net/2005/04/27/controllo-input-utente-server-side/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

