  <?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>sviluppo web &#8211; paologironi blog</title>
	<atom:link href="https://www.gironi.it/blog/category/sviluppo-web-it/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.gironi.it/blog</link>
	<description>Appunti sparsi di (retro) informatica, analisi dei dati, statistica, seo, e cose che cambiano</description>
	<lastBuildDate>Thu, 11 Jun 2026 07:26:55 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Html5 e Blueprintcss</title>
		<link>https://www.gironi.it/blog/html5-e-blueprintcss/</link>
					<comments>https://www.gironi.it/blog/html5-e-blueprintcss/#respond</comments>
		
		<dc:creator><![CDATA[paolo]]></dc:creator>
		<pubDate>Mon, 20 Feb 2012 15:15:03 +0000</pubDate>
				<category><![CDATA[sviluppo web]]></category>
		<guid isPermaLink="false">http://gironi.it/blog/?p=212</guid>

					<description><![CDATA[Il desiderio di iniziare a marcare i propri siti in html5 è sempre più urgente per tanti di noi, anche se la &#8220;vecchia&#8221; marcatura sarà tra noi ancora per molti anni. Gli innumerevoli problemi di (retro)compatibilità &#8211; specialmente per quanto riguarda il browser dalla e azzurra &#8211; possono essere in parte tamponati adottando le numerose &#8230; <a href="https://www.gironi.it/blog/html5-e-blueprintcss/" class="more-link">Leggi tutto<span class="screen-reader-text"> "Html5 e Blueprintcss"</span></a>]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="alignleft size-full wp-image-434" src="http://www.gironi.it/blog/wp-content/uploads/2012/02/logo-html.png" alt="logo-html" width="128" height="128" />Il desiderio di iniziare a marcare i propri siti in html5 è sempre più urgente per tanti di noi, anche se la &#8220;vecchia&#8221; marcatura sarà tra noi ancora per molti anni.<br />
Gli innumerevoli problemi di (retro)compatibilità &#8211; specialmente per quanto riguarda il browser dalla e azzurra &#8211; possono essere in parte tamponati adottando le numerose soluzioni note a tutti gli sviluppatori.<br />
La mia esigenza è quella di sfruttare la completezza semantica dell&#8217;html5, ma senza rinunciare alle mie amate griglie.<span id="more-212"></span></p>
<p>Ho usato e uso molti framework differenti: <a title="960 Framework" href="http://960.gs/" target="_blank" rel="noopener">960</a>, <a title="BluePrintCss" href="http://blueprintcss.org/" target="_blank" rel="noopener">BlueprintCss</a>, <a title="Less" href="http://lessframework.com/" target="_blank" rel="noopener">Less</a>. Sono conscio del fatto che classi con nome quali <em>span</em> oppure <em>column</em> non siano il massimo sotto il profilo della semantica, tuttavia il rigore delle griglie e la conseguente pulizia dei layout (oltre alla velocità di sviluppo che consentono) le rende una scelta per me quasi obbligata.<br />
Per unire le due cose (marcatura html5 e grglia) ho deciso di utilizzare, in prima battuta, <a title="HTML5 Boilerplate" href="http://html5boilerplate.com/" target="_blank" rel="noopener">HTML5Boilerplate</a> e BluePrintCss. Il risultato? Funziona, e in pochi passi molto semplici.<br />
Scarico la versione &#8220;minima&#8221; (stripped) di HTML5Boilerplate e l&#8217;ultima versione di BluePrintCss.<br />
Posso tranquillamente usare la pagina demo di html5boilerplate come modello di pagina di base.<br />
Unica accortezza, il collegamento al foglio di stile style.css di HTML5Boilerplate deve venire <strong>dopo quelli di BluePrintCss</strong>.<br />
Per il resto, marco tutto in HTML5 e per le griglie come al solito, usando i consueti div.<br />
Funziona tutto senza problemi, anche con Internet Explorer.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gironi.it/blog/html5-e-blueprintcss/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Modelli di interfaccia utente: Mark Boulton</title>
		<link>https://www.gironi.it/blog/modelli-di-interfaccia-utente-mark-boulton/</link>
					<comments>https://www.gironi.it/blog/modelli-di-interfaccia-utente-mark-boulton/#respond</comments>
		
		<dc:creator><![CDATA[paolo]]></dc:creator>
		<pubDate>Wed, 18 Jan 2012 14:47:39 +0000</pubDate>
				<category><![CDATA[sviluppo web]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[usability]]></category>
		<guid isPermaLink="false">http://gironi.it/blog/?p=185</guid>

					<description><![CDATA[Un amico e cliente, qualche giorno fa, mi ha chiesto di valutare la curiosa implementazione dell&#8217;hover sui link in sidebar del sito di Mark Boulton. Questo, al fine di considerarne la possibile implementazione sul suo nuovo sito. In pratica, l&#8217;effetto consiste in questo: quando l&#8217;utente sposta il puntatore nella sidebar di destra del sito, tutti &#8230; <a href="https://www.gironi.it/blog/modelli-di-interfaccia-utente-mark-boulton/" class="more-link">Leggi tutto<span class="screen-reader-text"> "Modelli di interfaccia utente: Mark Boulton"</span></a>]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="alignleft size-full wp-image-313" alt="handy-icon_06" src="http://gironi.it/blog/wp-content/uploads/2012/01/handy-icon_06.png" width="129" height="127">Un amico e cliente, qualche giorno fa, mi ha chiesto di valutare la curiosa implementazione dell&#8217;hover sui link in sidebar del <a href="http://www.markboulton.co.uk/" target="_blank" rel="noopener">sito di Mark Boulton</a>. Questo, al fine di considerarne la possibile implementazione sul <a href="http://www.davidnicholson.it/" target="_blank" rel="noopener">suo nuovo sito</a>.<br />
In pratica, l&#8217;effetto consiste in questo: quando l&#8217;utente sposta il puntatore nella sidebar di destra del sito, tutti i link presenti nell&#8217;area in questione, fino a quel momento indistinguibili dal normale testo, &#8220;acquistano&#8221; il colore verde. Se passo sopra ogni singolo link, il mouseover è evidenziato dalla sottolineatura.<br />
Personalmente, non ricordo di aver visto in altri siti una soluzione di questo tipo. Per riprodurla al volo ho usato jquery, controllando l&#8217;evento hover dell&#8217;area compresa in un dato div e cambiando il colore del link di conseguenza. (4 righe di css e 6 righe di jquery in tutto, almeno nella mia versione di test). Problemi con i dispositivi mobili, aggravio di peso: ne vale la pena? L&#8217;impatto sulla chiarezza della fruizione è realmente positivo? Ci penso su.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gironi.it/blog/modelli-di-interfaccia-utente-mark-boulton/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Spedire email da Xampp</title>
		<link>https://www.gironi.it/blog/spedire-email-da-xampp/</link>
					<comments>https://www.gironi.it/blog/spedire-email-da-xampp/#comments</comments>
		
		<dc:creator><![CDATA[paolo]]></dc:creator>
		<pubDate>Thu, 05 Jan 2012 22:21:53 +0000</pubDate>
				<category><![CDATA[sviluppo web]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[localhost]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[Xampp]]></category>
		<guid isPermaLink="false">http://gironi.it/blog/sviluppo-web/spedire-email-da-xampp/</guid>

					<description><![CDATA[Quante volte ci è capitato di sviluppare in locale, usando Xampp e di non riuscire a testare i vari contact form? La soluzione è molto semplice. Si edita il file php.ini (nella mia installazione di Xampp è in xampp/php, ma in altre installazioni potrebbe essere in un&#8217;altra directory) e si cerca la riga contenente &#8220;SMTP&#8221;. &#8230; <a href="https://www.gironi.it/blog/spedire-email-da-xampp/" class="more-link">Leggi tutto<span class="screen-reader-text"> "Spedire email da Xampp"</span></a>]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="alignleft size-full wp-image-311" alt="handy-icon_11" src="http://gironi.it/blog/wp-content/uploads/2012/01/handy-icon_11.png" width="127" height="129" />Quante volte ci è capitato di sviluppare in locale, usando Xampp e di non riuscire a testare i vari contact form?</p>
<p>La soluzione è molto semplice. Si edita il file php.ini (nella mia installazione di Xampp è in xampp/php, ma in altre installazioni potrebbe essere in un&#8217;altra directory) e si cerca la riga contenente &#8220;SMTP&#8221;. Dovreste trovare qualcosa tipo:</p>
<p><code>SMTP = localhost<br />
smtp_port = 25</code></p>
<p><span id="more-177"></span></p>
<p>cambiate localhost con il server SMTP del vostro provider e riavviate Xampp</p>
<p>Ora fate una prova semplicissima. Preparate un file che potreste chiamare mailer.php:</p>
<pre>$headers = 'MIME-Version: 1.0′ . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1′ . "\r\n";
$headers .= 'From: vostronome@vostrodominio.com' . "\r\n";
mail("tu@tuodominio.com","test soggetto","test body",$headers);</pre>
<p>ovviamente sostituite gli indirizzi email con quelli reali e caricate la pagina. La mail dovrebbe essere stata spedita!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gironi.it/blog/spedire-email-da-xampp/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>virtual host con xampp e windows in 5 minuti</title>
		<link>https://www.gironi.it/blog/virtual-host-con-xampp-e-windows-in-5-minuti/</link>
					<comments>https://www.gironi.it/blog/virtual-host-con-xampp-e-windows-in-5-minuti/#comments</comments>
		
		<dc:creator><![CDATA[paolo]]></dc:creator>
		<pubDate>Fri, 14 Oct 2011 07:54:54 +0000</pubDate>
				<category><![CDATA[server]]></category>
		<category><![CDATA[sviluppo web]]></category>
		<category><![CDATA[windows]]></category>
		<guid isPermaLink="false">http://gironi.it/blog/?p=158</guid>

					<description><![CDATA[La configurazione necessaria per settare virtual hosts con xampp sotto windows è veramente minima: basteranno 5 minuti perchè tutto &#8220;giri&#8221; alla perfezione. Non mi dilungo sugli aspetti generali e riporto solo i passi necessari per ottenere al volo il risultato. Ad esempio, voglio configurare il virtual host pippo.com, che deve puntare alla cartella c:\xampp\htdocs\pippo.com. Presumo &#8230; <a href="https://www.gironi.it/blog/virtual-host-con-xampp-e-windows-in-5-minuti/" class="more-link">Leggi tutto<span class="screen-reader-text"> "virtual host con xampp e windows in 5 minuti"</span></a>]]></description>
										<content:encoded><![CDATA[<p>La configurazione necessaria per settare virtual hosts con xampp sotto windows è veramente minima: basteranno 5 minuti perchè tutto &#8220;giri&#8221; alla perfezione. Non mi dilungo sugli aspetti generali e riporto solo i passi necessari per ottenere al volo il risultato. Ad esempio, voglio configurare il virtual host pippo.com, che deve puntare alla cartella c:\xampp\htdocs\pippo.com. Presumo che xampp sia installato nella directory c:\xampp :</p>
<p>1) Devo configurare Windows perchè riconosca l&#8217;host. Edito, come amministratore (ad es. in Vista) il file c:\windows\system32\drivers\etc\hosts</p>
<p><span id="more-158"></span>e aggiungo la riga che mi serve. Il file, tolta la parte di commento, avrà un aspetto tipo questo:</p>
<pre>127.0.0.1       localhost
127.0.0.1       pippo.com
</pre>
<p>salvo ed esco</p>
<p>2) vado in c:\xampp\apache\conf\extra</p>
<p>trovo ed edito il file httpd-vhosts.conf, aggiungendo queste righe:</p>
<pre>NameVirtualHost *:80

&lt;VirtualHost *:80&gt;
ServerAdmin webmaster@localhost
DocumentRoot C:/xampp/htdocs/pippo.com/
ServerName pippo.com

&lt;Directory "C:/xampp/htdocs/pippo.com/"&gt;
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
&lt;/Directory&gt;
&lt;/VirtualHost&gt;</pre>
<p>3) Ora posso avviare (oppure riavviare) Xampp (o il solo Apache)</p>
<p>Fatto!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gironi.it/blog/virtual-host-con-xampp-e-windows-in-5-minuti/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>un po&#8217; di redirect 301</title>
		<link>https://www.gironi.it/blog/un-po-di-redirect-301/</link>
					<comments>https://www.gironi.it/blog/un-po-di-redirect-301/#respond</comments>
		
		<dc:creator><![CDATA[paolo]]></dc:creator>
		<pubDate>Mon, 05 Sep 2011 09:16:24 +0000</pubDate>
				<category><![CDATA[sviluppo web]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[asp]]></category>
		<category><![CDATA[cold fusion]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[redirect 301]]></category>
		<guid isPermaLink="false">http://gironi.it/blog/2011/09/un-po-di-redirect-301/</guid>

					<description><![CDATA[questo più che un post è un memo. Invece di cercare tra i fogli il cheatsheet con i redirect 301 (e magari non trovarlo), oppure per risparmiarmi i 5 secondi della ricerca google, aggiungo questo post. Allora: con php &#60;? Header( "HTTP/1.1 301 Moved Permanently" ); Header( "Location: http://www.gironi.it/" ); ?&#62; con cold fusion &#60;cfheader &#8230; <a href="https://www.gironi.it/blog/un-po-di-redirect-301/" class="more-link">Leggi tutto<span class="screen-reader-text"> "un po&#8217; di redirect 301"</span></a>]]></description>
										<content:encoded><![CDATA[<p>questo più che un post è un memo. Invece di cercare tra i fogli il cheatsheet con i redirect 301 (e magari non trovarlo), oppure per risparmiarmi i 5 secondi della ricerca google, aggiungo questo post. Allora:</p>
<h2>con <strong>php</strong></h2>
<pre class="brush: xml; ruler: true;">&lt;?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.gironi.it/" );
?&gt;</pre>
<p><span id="more-134"></span></p>
<h2>con <strong>cold fusion</strong></h2>
<p><span style="color: #222222; font-family: arial, sans-serif; font-size: 13px; line-height: 16px; background-color: #ffffff;"> </span></p>
<pre class="brush: xml; ruler: true;">&lt;cfheader statuscode="301" statustext="Moved Permanently"&gt;
&lt;cfheader name="Location" value="http://www.gironi.it"&gt;
&lt;cfabort&gt;</pre>
<h2>con <strong>asp</strong></h2>
<pre class="brush: xml; ruler: true;">&lt;%@ Language=VBScript %&gt;
&lt;%
response.status="301 moved permanently"
Response.AddHeader "Location", "http://www.gironi.it"
%&gt;</pre>
<h2><strong>Meta http-equiv</strong></h2>
<pre class="brush: xml; ruler: true;">&lt;meta http-equiv="refresh" content="0;url=http://www.gironi.it" /&gt;</pre>
<h2>In <strong>Perl</strong></h2>
<pre class="brush: xml; ruler: true;">#!/usr/bin/perl      -w
use strict;
print "Status: 301 Moved Permanently\n";
print "Location: http://mia/pagina.htm\n\n";
exit;</pre>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gironi.it/blog/un-po-di-redirect-301/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>le thumbnails youtube</title>
		<link>https://www.gironi.it/blog/le-thumbnails-youtube/</link>
					<comments>https://www.gironi.it/blog/le-thumbnails-youtube/#respond</comments>
		
		<dc:creator><![CDATA[paolo]]></dc:creator>
		<pubDate>Thu, 01 Sep 2011 08:55:35 +0000</pubDate>
				<category><![CDATA[sviluppo web]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[embed]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[thumbnails]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[youtube]]></category>
		<guid isPermaLink="false">http://gironi.it/blog/?p=130</guid>

					<description><![CDATA[Esistono un&#8217;infinità di generatori di thumbnails per i video youtube. Moltissimi sono i plugins per wordpress, utili per generare le thumb da far comparire, ad esempio, al posto del video embedded in un lancio home di un post, oppure nella sidebar. Quello che forse non tutti sanno è che in effetti youtube genera automaticamente delle &#8230; <a href="https://www.gironi.it/blog/le-thumbnails-youtube/" class="more-link">Leggi tutto<span class="screen-reader-text"> "le thumbnails youtube"</span></a>]]></description>
										<content:encoded><![CDATA[<p>Esistono un&#8217;infinità di generatori di thumbnails per i video youtube. Moltissimi sono i plugins per wordpress, utili per generare le thumb da far comparire, ad esempio, al posto del video embedded in un lancio home di un post, oppure nella sidebar.</p>
<p>Quello che forse non tutti sanno è che in effetti youtube genera automaticamente delle thumbnails. Tutto quello che serve è il link del video! In pratica. Prendiamo ad esempio un video qualunque. La URL è tipo questa:</p>
<p><span id="more-130"></span>http://www.youtube.com/watch?v=5YXVMCHG-Nk</p>
<p>ok, la parte che ci interessa è quella dopo watch?v=</p>
<p>Basta quel codice per costruire le URL che puntano alle thumbnails. Nel nostro caso, eccole:</p>
<p>http://img.youtube.com/vi/5YXVMCHG-Nk/0.jpg<br />
http://img.youtube.com/vi/5YXVMCHG-Nk/1.jpg<br />
http://img.youtube.com/vi/5YXVMCHG-Nk/2.jpg<br />
http://img.youtube.com/vi/5YXVMCHG-Nk/3.jpg</p>
<p>Ricapitolando:</p>
<ol>
<li>si ricava il codice dalla URL del video Youtube</li>
<li>si costruisce la nuova URL con il codice copiato, aggiungendo il numero di thumb (da 0 a 3) seguito dal suffisso .jpg.</li>
</ol>
<p>Facilissimo!</p>
<p>Ovviamente non è detto che il formato e il contenuto delle thumbnails siano adatti ai vostri scopi, però questo trick può rotnare utile in molte situazioni.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gironi.it/blog/le-thumbnails-youtube/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Attivare cURL in XAMPP</title>
		<link>https://www.gironi.it/blog/attivare-curl-in-xampp/</link>
					<comments>https://www.gironi.it/blog/attivare-curl-in-xampp/#respond</comments>
		
		<dc:creator><![CDATA[paolo]]></dc:creator>
		<pubDate>Thu, 01 Sep 2011 08:35:10 +0000</pubDate>
				<category><![CDATA[sviluppo web]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cURL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Xampp]]></category>
		<guid isPermaLink="false">http://gironi.it/blog/?p=127</guid>

					<description><![CDATA[In Xampp non è attivato di default il supporto per cURL. cURL è un tool utilissimo da riga di comando per trasferire file con la sintassi URL. cURL ha una libreria per php, la cui presenza è richiesta, ad esempio, da molti ottimi plugin per wordpress. Attivare cURL in Xampp è questione di pochi istanti. &#8230; <a href="https://www.gironi.it/blog/attivare-curl-in-xampp/" class="more-link">Leggi tutto<span class="screen-reader-text"> "Attivare cURL in XAMPP"</span></a>]]></description>
										<content:encoded><![CDATA[<p>In Xampp non è attivato di default il supporto per cURL. cURL è un tool utilissimo da riga di comando per trasferire file con la sintassi URL. cURL ha una libreria per php, la cui presenza è richiesta, ad esempio, da molti ottimi plugin per wordpress.</p>
<p><strong>Attivare cURL in Xampp è questione di pochi istanti</strong>. Ecco la procedura da seguire:</p>
<ol>
<li>Ci si porta nella directory <em><strong>xampp</strong></em> sul proprio pc</li>
<li>Si va nella cartella <strong><em>php</em></strong></li>
<li>Si edita il file <strong>php.ini</strong> con un editor di testo</li>
<li>Si cerca la riga <strong>extension=php_curl.dll </strong>e si cancella il punto e virgola<strong> ;</strong> davanti alla riga stessa<strong></strong></li>
<li>Si riavvia il server Apache</li>
</ol>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gironi.it/blog/attivare-curl-in-xampp/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Reset manuale della password prestashop</title>
		<link>https://www.gironi.it/blog/reset-manuale-della-password-prestashop/</link>
					<comments>https://www.gironi.it/blog/reset-manuale-della-password-prestashop/#respond</comments>
		
		<dc:creator><![CDATA[paolo]]></dc:creator>
		<pubDate>Wed, 08 Jun 2011 08:03:04 +0000</pubDate>
				<category><![CDATA[sviluppo web]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[prestashop]]></category>
		<category><![CDATA[reset]]></category>
		<guid isPermaLink="false">http://gironi.it/blog/2011/06/reset-manuale-della-password-prestashop/</guid>

					<description><![CDATA[Come (quasi) tutti mi capita di perdere le password. Ok, un metodo semplice semplice per resettare la password prestashop via phpmyadmin è quella di impartire questo comando SQL: UPDATE `ps_employee` SET `passwd` = MD5(&#8216;&#60;_COOKIE_&#62;password&#8217;) WHERE `ps_employee`.`id_employee` = 1; Il valore di COOKIE lo si ricava dal file settings.inc all&#8217;interno della directory config di prestashop e al posto &#8230; <a href="https://www.gironi.it/blog/reset-manuale-della-password-prestashop/" class="more-link">Leggi tutto<span class="screen-reader-text"> "Reset manuale della password prestashop"</span></a>]]></description>
										<content:encoded><![CDATA[<p>Come (quasi) tutti mi capita di perdere le password. Ok, un metodo semplice semplice per resettare la password prestashop via phpmyadmin è quella di impartire questo comando SQL:</p>
<p><span style="font-family: monospace; font-size: 12px; color: #293d44;"><span style="white-space: pre-wrap; color: #0000bb;">UPDATE </span><span style="white-space: pre-wrap; color: #007700;">`</span><span style="white-space: pre-wrap; color: #0000bb;">ps_employee</span><span style="white-space: pre-wrap; color: #007700;">` </span><span style="white-space: pre-wrap; color: #0000bb;">SET </span><span style="white-space: pre-wrap; color: #007700;">`</span><span style="white-space: pre-wrap; color: #0000bb;">passwd</span><span style="white-space: pre-wrap; color: #007700;">` = </span><span style="white-space: pre-wrap; color: #0000bb;">MD5</span><span style="white-space: pre-wrap; color: #007700;">(</span><span style="white-space: pre-wrap; color: #dd0000;">&#8216;&lt;_COOKIE_&gt;password&#8217;</span><span style="white-space: pre-wrap; color: #007700;">) </span><span style="white-space: pre-wrap; color: #0000bb;">WHERE </span><span style="white-space: pre-wrap; color: #007700;">`</span><span style="white-space: pre-wrap; color: #0000bb;">ps_employee</span><span style="white-space: pre-wrap; color: #007700;">`.`</span><span style="white-space: pre-wrap; color: #0000bb;">id_employee</span><span style="white-space: pre-wrap; color: #007700;">` = </span><span style="white-space: pre-wrap; color: #0000bb;">1</span><span style="white-space: pre-wrap; color: #007700;">;</span></span></p>
<p>Il valore di COOKIE lo si ricava dal file <code>settings.inc</code> all&#8217;interno della directory <code>config</code> di prestashop e al posto di <code>password</code> si inserisce la nuova password&#8230; augurandosi di non dimenticarla un&#8217;altra volta!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gironi.it/blog/reset-manuale-della-password-prestashop/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>logo trasparente in prestashop</title>
		<link>https://www.gironi.it/blog/logo-trasparente-in-prestashop/</link>
					<comments>https://www.gironi.it/blog/logo-trasparente-in-prestashop/#comments</comments>
		
		<dc:creator><![CDATA[paolo]]></dc:creator>
		<pubDate>Fri, 27 May 2011 08:09:27 +0000</pubDate>
				<category><![CDATA[sviluppo web]]></category>
		<category><![CDATA[gif]]></category>
		<category><![CDATA[logo]]></category>
		<category><![CDATA[prestashop]]></category>
		<category><![CDATA[trasparenza]]></category>
		<guid isPermaLink="false">http://gironi.it/blog/2011/05/logo-trasparente-in-prestashop/</guid>

					<description><![CDATA[Ecco un esempio di un piccolo ma fastidioso problema, dalla soluzione semplice (ma non immediata). Usando il sistema di ecommerce prestashop, il logo che viene caricato in admin viene trasformato dall&#8217;uploader in un file jpg. Se si usa uno sfondo colorato, ecco che la trasparenza va a farsi friggere&#8230; Per ovviare all&#8217;inconveniente, basta caricare il &#8230; <a href="https://www.gironi.it/blog/logo-trasparente-in-prestashop/" class="more-link">Leggi tutto<span class="screen-reader-text"> "logo trasparente in prestashop"</span></a>]]></description>
										<content:encoded><![CDATA[<p>Ecco un esempio di un piccolo ma fastidioso problema, dalla soluzione semplice (ma non immediata).</p>
<p>Usando il sistema di ecommerce prestashop, il logo che viene caricato in admin viene trasformato dall&#8217;uploader in un file jpg. Se si usa uno sfondo colorato, ecco che la trasparenza va a farsi friggere&#8230;<br />
<span id="more-69"></span><br />
Per ovviare all&#8217;inconveniente, basta caricare il file logo.gif <strong>direttamente via ftp e non con l&#8217;uploader</strong> nella cartella /img del tema di prestashop.</p>
<p>Poi, si modifica il file <em>header.tpl </em>sostituendo logo.jpg con logo.gif, e il gioco è fatto.</p>
<p>La riga da modificare è questa:</p>
<pre class="brush: xml; ruler: true;">
<h1 id="logo"><code><a title="{$shop_name|escape:'htmlall':'UTF-8'}" href="{$base_dir}"><img decoding="async" src="{$img_dir}logo.jpg" alt="{$shop_name|escape:'htmlall':'UTF-8'}" /></a></code></h1>
</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gironi.it/blog/logo-trasparente-in-prestashop/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Pagine con piu&#8217; scopi in php</title>
		<link>https://www.gironi.it/blog/pagine-con-piu-scopi-in-php/</link>
					<comments>https://www.gironi.it/blog/pagine-con-piu-scopi-in-php/#respond</comments>
		
		<dc:creator><![CDATA[paolo]]></dc:creator>
		<pubDate>Wed, 02 Mar 2011 21:37:10 +0000</pubDate>
				<category><![CDATA[sviluppo web]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sviluppo]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">http://gironi.it/blog/?p=55</guid>

					<description><![CDATA[Pagine con piu&#8217; scopi, ovvero pagine che possono decidere cosa mostrare in base a una o piu&#8217; condizioni. La lettura del bel libro di Kevin Yank e&#8217; stata illuminante&#8230; Vediamo un esempio: &#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&#62; &#60;html xmlns="http://www.w3.org/1999/xhtml"&#62; &#60;head&#62; &#60;title&#62;Sample Page&#60;/title&#62; &#60;meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /&#62; &#60;/head&#62; &#60;body&#62; &#60;?php if (!isset($_GET['name'])): &#8230; <a href="https://www.gironi.it/blog/pagine-con-piu-scopi-in-php/" class="more-link">Leggi tutto<span class="screen-reader-text"> "Pagine con piu&#8217; scopi in php"</span></a>]]></description>
										<content:encoded><![CDATA[<p>Pagine con piu&#8217; scopi, ovvero pagine che possono decidere cosa mostrare in base a una o piu&#8217; condizioni. La lettura del <a href="http://education.mondadori.it/Libri/SchedaLibro.asp?IdLibro=88-04-53965-8" target="_blank" rel="noopener">bel libro di Kevin Yank</a> e&#8217; stata illuminante&#8230;</p>
<p>Vediamo un esempio:</p>
<pre class="brush: xml; ruler: true;">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;title&gt;Sample Page&lt;/title&gt;
&lt;meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;?php if (!isset($_GET['name'])): ?&gt;

  &lt;!-- Nessun nome assegnato, per cui viene richiesto all'utente --&gt;

  &lt;form action="&lt;?php echo $_SERVER['PHP_SELF']; ?&gt;" method="get"&gt;
  &lt;label&gt;Please enter your name: &lt;input type="text" name="name" /&gt;&lt;/label&gt;
  &lt;input type="submit" value="GO" /&gt;
  &lt;/form&gt;

&lt;?php else: ?&gt;

  &lt;p&gt;Your name: &lt;?php echo $_GET['name']; ?&gt;&lt;/p&gt;

  &lt;p&gt;This paragraph contains a &lt;a href="newpage.php?name=&lt;?php echo urlencode($_GET['name']); ?&gt;"&gt;link&lt;/a&gt; that passes the name variable on to the next document.&lt;/p&gt;

&lt;?php endif; ?&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p><span id="more-55"></span></p>
<p>Qualche picola nota:</p>
<p>E&#8217; da da notare, l&#8217;uso della funzione <strong>isset</strong>.<br />
Questa funzione ritorna un valore &#8220;vero&#8221; se alla variabile e&#8217; assegnato un valore e &#8220;falso&#8221; se la variabile non esiste.</p>
<p>Interessante anche l&#8217;uso della variabile $_SERVER[&#8216;PHP_SELF&#8217;], utilizzata per specificare l&#8217;attributo <em>action</em> del form.</p>
<p>$_SERVER[&#8216;PHP_SELF&#8217;] e&#8217; sempre configurata sull&#8217;URL della pagina corrente, quindi il form, una volta inviato, carichera&#8217; sempre la stessa pagina, ma con la variabile settata.</p>
<hr />
<p>&nbsp;</p>
<p>Immaginiamo ora di avere un sito gestito attraverso database. Il problema e&#8217; quello di creare due differenti versioni di ciascuna pagina: una per l&#8217;utente non loggato (con la form per fare il login), una per l&#8217;utente regolarmente loggato.<br />
Usando la tecnica delle pagine con piu&#8217; scopi il problema ha in php una soluzione semplice ed elegante. L&#8217;esempio che riporto e&#8217; tratto da un articolo di Kevin Yank (<a href="http://www.devarticles.com/c/a/PHP/Developing-Multipurpose-Pages-With-PHP" target="_blank" rel="noopener">questo il link all&#8217;articolo originale</a>).</p>
<p>Bob ha una pagina con delle news e un piccolo riquadro di login. Ecco il codice:</p>
<p>&nbsp;</p>
<pre class="brush: xml; ruler: true;">&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Bob's Login Site&lt;/title&gt;
&lt;body bgcolor="#00cc00"&gt;
&lt;?php
if ($_POST['login'] == "do") {
$name = $_POST['name'];
$pass = $_POST['password'];
$db_cnct = mysql_connect("localhost", "user", "pass") or die("Could not connect to the database!");
$db = mysql_db_select("users", $db_cnct);
$sql = "SELECT user, pass FROM users WHERE user = \"$name\" and pass = \"md5($pass)\"";
// This is for an encrypted password-protection database
$check_user = mysql_query($sql);
$users = mysql_num_rows($check_user);
if ($users &lt; 1) {
echo ("&lt;center&gt;Invalid Password!&lt;/center&gt;");
echo ('&lt;form action="'.$PHP_SELF.'" method="post"&gt;');
echo ('&lt;input type="text" name="name"&gt;&lt;br /&gt;');
echo ('&lt;input type="password" name="password"&gt;&lt;br /&gt;');
echo ('&lt;input type="hidden" name="login" value="do"&gt;');
echo ('&lt;input type="submit" value="Log-in"&gt;');
echo ('&lt;/form&gt;');
}
else {
echo ("Welcome, $name!");
}
}
else {
echo ('&lt;form action="'.$PHP_SELF.'" method="post"&gt;');
echo ('&lt;input type="text" name="name"&gt;&lt;br /&gt;');
echo ('&lt;input type="password" name="password"&gt;&lt;br /&gt;');
echo ('&lt;input type="hidden" name="login" value="do"&gt;');
echo ('&lt;input type="submit" value="Log-in"&gt;');
echo ('&lt;/form&gt;');
?&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>&nbsp;</p>
<p>Lo script controlla se ci sono username e password (passati tramite il metodo HTTP POST).<br />
Se non ci sono, lo script mostrera&#8217; il codice che chiedera&#8217; di loggarsi.</p>
<p>Se ci sono, lo script interroga il database per controllare se si tratta di una coppia di valori validi.<br />
Se e&#8217; tutto ok, verra&#8217; mostrata la scritta &#8220;Welcome, $name!&#8221;, altrimenti verra&#8217; stampata a schermo una indicazione di errore e verra&#8217; riproposto il modulo di login.</p>
<p>Ed ecco un esempio pratico un po&#8217; piu&#8217; evoluto:</p>
<p>&nbsp;</p>
<pre class="brush: xml;">&lt;?PHP
$forum = $_GET['forum'];
if (!isset ($forum) ) {
$sql = "SELECT forums, ID FROM master_list";
$get_forums = mysql_query($sql);
while ($forums = mysql_fetch_array($get_forums) ) {
echo ('&lt;a href="forums.php?forum'.$forums["ID"].'"&gt;'.$forums["forums"].'&lt;/a&gt;&lt;br /&gt;');
}
}

else {
$thread = $_GET['thread'];
if (!isset ($thread) ) {
$sql = "SELECT thread, ID FROM forum".$forum;
$get_threads = mysql_query($sql);
while ($threads = mysql_fetch_array($get_forums) ) {
echo ('&lt;a href="forums.php?forum='.$forum.'&amp;thread='.$threads["ID"].'"&gt;');
echo ($threads["thread"].'&lt;/a&gt;&lt;br /&gt;');
}
}
else {
$sql = "SELECT messages FROM thread".$thread;
$get_messages = mysql_query($sql);
while ($messages = mysql_fetch_array($get_messages) ) {
echo ('&lt;table&gt;&lt;tr&gt;&lt;td&gt;'.$messages["message"].'&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;');
}
}
?&gt;</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gironi.it/blog/pagine-con-piu-scopi-in-php/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
