All posts by ephestione

reCAPTCHA Input error: Invalid referer e WordPress

Proprio oggi mi hanno avvisato (grazie) che il plugin reCAPTCHA nei commenti del sito restituiva un errore; andando a controllare, “Input error: Invalid referer” è un errore generico che nessuno ha associato in maniera precisa ad un singolo problema.

Per prima cosa mi sono accertato di star usando le chiavi giuste (public e private key), e quindi nel pannello di amministrazione di reCAPTCHA ho aggiunto nuovamente il dominio di questo sito, ed ho aggiornato le impostazioni del plugin con le chiavi nuove; quindi, l’immagine del captcha veniva visualizzata correttamente se provavo ad attivarla anche per gli utenti loggati, ma appena effettuavo un logout compariva nuovamente l’errore.

Controllando il codice sorgente della pagina restituita dal server, mi sono reso conto che la riga di HTML che richiamava il javascript esterno di reCAPTCHA conteneva un valore di “challenge” (la public key) diverso da quello che avevo appena aggiornato nelle impostazioni del plugin.

Dopo qualche elucubrazione, mi sono reso conto che il plugin WP Super Cache in alcuni casi interferisce col plugin reCAPTCHA, in quanto carica dalla cache i vecchi valori delle chiavi pubblica e privata (potenzialmente non più validi per motivi vari), e quindi il servizio reCAPTCHA ovviamente restituisce un errore. Mi è bastato cancellare le pagine “precalcolate” da Super Cache, in modo che il codice HTML di reCAPTCHA fosse rinfrescato, ed ora il captcha funziona di nuovo nei commenti.

reCAPTCHA Input error: Invalid referer and WordPress

Just today someone (thank you) pointed out there was an error with the recaptcha plugin in my WordPress comments. Checking it out, that “Input error: Invalid referer” is a generic error noone has ever pointed out to a single cause.

At first I made sure the keys used by the reCAPTCHA plugin were correct, and created a brand new website domain in the reCAPTCHA admin panel, and updated the values in the plugin settings. That way, I could see the captcha image correctly when loaded while being logged in, but as soon as I logged out the error was back there. I checkd the page source, and I noticed the “challenge” value of the HTML line that called the external javascript was different from the public key I updated in the plugin settings.

After some thinking, it turns out that the WP Super Cache plugin in some cases interferes with reCAPTCHA plugin, as it caches the old plublic key value which of course makes reCAPTCHA mad. Clearing the cache, thus reloading the whole page, solved the problem, and the captcha image was back there to be solved.

Come risolvere Fatal error: Allowed memory size exhausted in WordPress 3

Questo errore non è niente di nuovo per chi usa WordPress, da quanto so compariva anche nelle versioni precedenti di WordPress (sono un utente fresco della piattaforma, ed uso la versione 3 da più tempo di quanto abbia usato le versioni inferiori).

La novità però è che, diversamente da quanto trovate nelle guide che ne parlano, ora non è più possibile risolvere il problema modificando il file [CARTELLA WORDPRESS] > wp-settings.php, siccome la riga che definisce il limite di memoria ram allocabile non si trova più lì.

Ma guardando i contenuti del file wp-settings.php, all’inizio è presente la riga

require( ABSPATH . WPINC . '/default-constants.php' );

che la dice tutta, a meno che non siate a secco di PHP, e quindi questa guida fa per voi.

Quello che dovete fare è aprire il file [CARTELLA WORDPRESS] > wp-includes > default-constants.php e modificare la riga

define('WP_MEMORY_LIMIT', '32M');

in

define('WP_MEMORY_LIMIT', '40M');

o il valore che preferite, che sia 36, 48, o 64MB di ram, a seconda del numero di plugin e funzioni che usate; ovviamente il valore più basso possibile con cui funziona WordPress è preferibile, per motivi di prestazioni, soprattutto se vi trovate su un hosting condiviso.

Un appunto a parte proprio su quest’ultimo discorso: questo sito è ospitato su Tophost (almeno al momento in cui sto scrivendo), e una delle ultime polemiche sulla qualità del servizio è nata proprio da un certo utente che ha contattato piccato l’assistenza per questo problema, e non soddisfatto dal contenuto e dal tono della risposta ha dato il via ad una sciocca (almeno secondo me) campagna denigratoria; se l’utente avesse speso un paio di minuti per cercare di capire il codice sorgente (siccome si autodefinisce “programmatore”), avrebbe scoperto, proprio come ho scoperto io, dove doveva andare a cercare la famosa riga da modificare; avrebbe così risparmiato un bel po’ di bile, e anche di tempo, siccome da quanto so si lamenta di aver dovuto reinstallare la versione 2.9.7 e ripristinare un vecchio backup; quando, come appena descritto, è sufficiente una procedura di 30 secondi.

This article has been Digiproved

How to fix Fatal error: Allowed memory size exhausted in WordPress 3

This error is nothing new, per se, as far as I know it was present also in previous versions of wordpress (I’m a fresh new user and I’ve been using v3+ for more than I’ve been with 2.9.7 (first one I installed).
When this error occurred in previous versions, all you needed to do was open the [WORDPRESS FOLDER] > wp-settings.php file, and change the maximum allowed allocable ram from there. And that’s what most guides still tell you to do now, leaving you stranded as that line you need to change is not there anymore.
What you see though, is that at the beginning of the wp-settings.php file there is a line that says:

require( ABSPATH . WPINC . '/default-constants.php' );

which pretty much says it all, unless you are not the least bit PHP savvy (hence, this guide is for you).
All you need to do is open the [WORDPRESS FOLDER] > wp-includes > default-constants.php file, and change the line:

define('WP_MEMORY_LIMIT', '32M');

into

define('WP_MEMORY_LIMIT', '40M');

or anything of your liking (may be 36M, 48M, or whatever depending on your setup); obviously, the lower the better for the performance of your server, especially if you’re on a shared hosting.

  This article has been Digiproved

Ridimensionare, espandere o ridurre una image map HTML con uno script PHP

Sto creando un portale per un sito che avrà una simpatica cartina dell’Italia con le regioni cliccabili, messe in evidenza da un overlay in javascript. Ho trovato a questo scopo una imagemap già pronta e gratuita con relativa immagine di accompagnamento, ma era troppo piccola per essere utilizzabile, e quindi avevo bisogno di ingrandirla; allargare l’immagine è un compito elementare, ma modificare le coordinate della imagemap non era qualcosa che avevo intenzione di fare a mano!

Dopo aver cercato soluzioni già pronte, ma senza frutto alcuno, ho elaborato uno scriptino PHP che assolve esattamente questo compito. Questo script inserisce il codice HTML della image map in una stringa, e quindi elabora questa variabile di testo con una regular expression (se non conoscete le espressioni regolari non spaventatevi, all’inizio non ci capivo nulla neanch’io) che cerca e sostituisce i valori numerici al bisogno. A me serviva semplicemente di raddoppiare le dimensioni della cartina, lasciando ovviamente le proporzioni intatte, ma siccome sto pubblicando questa guida, ho deciso di modificare lo script (testato come funzionante) in modo che possa ridimensionare le coordinate in modo diverso per gli assi orizzontale e verticale, in modo che ad esempio possiate raddoppiare la larghezza di un’immagine, e dimezzare l’altezza.

Questo è uno script di esempio (la stringa $html è associata alle sole coordinate della regione lazio, per motivi di spazio, comunque potete copiare all’interno della variabile tutto il codice HTML della imagemap, compresi i tag <map>, i ritorni a capo e l’indentazione. Prestate attenzione a fare un ESCAPE delle doppie virgolette all’interno del codice HTML prima di inserirlo nella stringa, in altre parole dovete mettere un backslash (cioè il carattere \) davanti a tutte doppie virgolette (il carattere ) per non corrompere la definizione della stringa; per questo io ho usato la funzione cerca e sostituisci di Notepad++.

<?php
$html="<area  href=\"#\" alt=\"state\" title=\"lazio\" shape=\"poly\"  coords=\"74.513,86.938,75.667,87.365,75.667,88.007,74.744,89.077,75.436,90.467,76.359,90.039,77.857,90.039,78.319,90.039,79.127,90.788,79.588,91.857,79.588,92.606,80.049,93.034,80.51,93.034,81.317,94.103,81.779,94.852,82.24,94.959,83.74,94.852,84.201,94.959,85.123,94.959,86.392,94.103,87.43,93.141,88.122,93.141,89.39,93.141,89.967,92.713,91.351,90.895,91.813,90.895,92.274,91.216,93.196,90.895,94.349,90.788,94.926,90.467,96.31,89.825,96.886,90.467,96.656,90.895,95.849,91.323,95.387,92.072,94.234,92.072,92.965,92.713,92.505,93.676,92.505,94.317,92.734,94.959,91.928,95.28,91.813,95.922,91.467,96.778,92.505,98.382,92.505,99.023,92.505,99.986,91.928,101.804,91.928,103.194,92.734,103.837,94.234,103.623,96.31,104.264,97.579,105.013,99.309,106.51,102.191,108.543,103.229,108.543,104.728,109.077,106.113,110.361,106.574,111.965,106.804,113.035,106.574,113.783,106.574,114.425,105.882,114.853,105.305,115.067,104.844,115.067,104.728,116.029,104.728,117.099,104.152,118.061,103.46,118.703,102.999,119.345,102.999,120.093,101.961,120.308,100.23,120.735,99.539,120.308,98.271,119.345,96.656,118.489,95.156,118.275,92.965,118.489,91.005,118.703,89.39,116.885,89.506,116.029,88.122,114.639,85.931,113.997,83.97,112.607,81.548,110.574,78.55,107.687,77.627,105.869,76.128,104.692,74.975,102.874,73.706,101.056,71.745,99.023,70.131,97.098,67.594,94.959,69.093,93.676,70.131,92.606,70.592,91.216,70.592,90.039,71.745,89.611,72.553,88.649,73.014,88.221,72.553,86.938,73.245,86.189,74.513,86.938\"  />";
echo preg_replace("/([0-9.]{2,}),([0-9.]{2,})/e","round(\\1*2,3).','.round(\\2*1.5,3)",htmlentities($html));
?>

Tutto quello che dovete fare è cambiare i parametri di ridimensionamento evidenziati in rosso, nell’esempio la mappa immagine viene raddoppiata orizzontalmente, e moltiplicata di una volta e mezzo verticalmente. Se volete aumentare le dimensioni di tre volte, usate questa riga:

echo preg_replace("/([0-9.]{2,}),([0-9.]{2,})/e","round(\\1*3,3).','.round(\\2*3,3)",htmlentities($html));

Una volta fatto, copiate lo script PHP sul vostro server, apritelo con un browser, e fate copia/incolla. Fate attenzione ad un particolare: nel mio esempio la image map conteneva solo le coordinate separate da virgole e nient’altro, quindi ho dovuto usare questa espressione regolare… se nel vostro caso tra le coordinate sono presenti spazi, tabulazioni o altre cose, avrete quasi sicuramente bisogno di modificare l’espressione per farla funzionare. Se siete persi, scrivete nei commenti con un estratto dal codice HTML della imagemap e vedrò di darvi una mano.

This article has been Digiproved

Resize, enlarge or scale an html image map with a PHP script

I am creating a portal for an italian website which will sport a nice region selector with an imagemap, and region highlighting with a javascript. I found a free and detailed image map of italy along with a combined png, but it was too small to be really useable, so I needed to put a bigger image; with that, I also needed to alter the imagemap coordinates to they matched the enlarged image… noway I was going to do that by hand!

So, after searching for a pre-made solution (which I obviously didn’t find)  I devised a very simple PHP script to do eaxctly that. The script puts the entire code for the image map inside a string variable, and then processes that string with a regular expression search and replace to change the values accordingly to my needs. I only needed to make the image two times bigger, mantaining the aspect ratio, but since I was going to publish this inside a guide, I said to myself “why not making it so you can change the aspect ratio as well”. So, if you want, you can make the imagemap two times larger, and 1.5 times taller.

Here’s the sample script (the $html variable is defined with a sample imagemap for the region of Lazio alone, for space purposes, but you can put whatever you want inside, I used it with the whole map of Italy, together with <map> tags and lines breaks/indentation). Be careful and ESCAPE the double quotes inside the HTML before pasting the code inside the string. In other words, simply put a backslash (the \ character) before each occurence of a double quote (the $quot; character) inside the HTML, I used the search and replace function of Notepad++.

<?php
$html="<area href=\"#\" alt=\"state\" title=\"lazio\" shape=\"poly\" coords=\"74.513,86.938,75.667,87.365,75.667,88.007,74.744,89.077,75.436,90.467,76.359,90.039,77.857,90.039,78.319,90.039,79.127,90.788,79.588,91.857,79.588,92.606,80.049,93.034,80.51,93.034,81.317,94.103,81.779,94.852,82.24,94.959,83.74,94.852,84.201,94.959,85.123,94.959,86.392,94.103,87.43,93.141,88.122,93.141,89.39,93.141,89.967,92.713,91.351,90.895,91.813,90.895,92.274,91.216,93.196,90.895,94.349,90.788,94.926,90.467,96.31,89.825,96.886,90.467,96.656,90.895,95.849,91.323,95.387,92.072,94.234,92.072,92.965,92.713,92.505,93.676,92.505,94.317,92.734,94.959,91.928,95.28,91.813,95.922,91.467,96.778,92.505,98.382,92.505,99.023,92.505,99.986,91.928,101.804,91.928,103.194,92.734,103.837,94.234,103.623,96.31,104.264,97.579,105.013,99.309,106.51,102.191,108.543,103.229,108.543,104.728,109.077,106.113,110.361,106.574,111.965,106.804,113.035,106.574,113.783,106.574,114.425,105.882,114.853,105.305,115.067,104.844,115.067,104.728,116.029,104.728,117.099,104.152,118.061,103.46,118.703,102.999,119.345,102.999,120.093,101.961,120.308,100.23,120.735,99.539,120.308,98.271,119.345,96.656,118.489,95.156,118.275,92.965,118.489,91.005,118.703,89.39,116.885,89.506,116.029,88.122,114.639,85.931,113.997,83.97,112.607,81.548,110.574,78.55,107.687,77.627,105.869,76.128,104.692,74.975,102.874,73.706,101.056,71.745,99.023,70.131,97.098,67.594,94.959,69.093,93.676,70.131,92.606,70.592,91.216,70.592,90.039,71.745,89.611,72.553,88.649,73.014,88.221,72.553,86.938,73.245,86.189,74.513,86.938\" />";
echo preg_replace("/([0-9.]{2,}),([0-9.]{2,})/e","round(\\1*2,3).','.round(\\2*1.5,3)",htmlentities($html));
?>

All you need to do is change the parameters inside the regular expression (numbers in red), first is for horizontal proportion, second for vertical; in this example the imagemap will be resized to 2 times its length, and 1.5 times its height, if you want to make the size three times bigger, change it to

echo  preg_replace("/([0-9.]{2,}),([0-9.]{2,})/e","round(\\1*3,3).','.round(\\2*3,3)",htmlentities($html));

Then, copy the php script to your server, open it in a web browser, and copy/paste the result. Note: according the the way the imagemap is originally formatted, you may need to edit the regular expression to accomodate for spaces, tabs, linebreaks or whatever; in this case, since the coordinates were listed with just commas inbetween it was not needed. If you are stuck, write in the comments an excerpt of your imagemap code and I’ll try and help you.

  This article has been Digiproved

Autovelox superzelanti e ipersensibili a Sezze

multa autovelox sezze
Multa per eccesso di velocità di 4km/h elevata a Sezze

Ecco cosa mi è passato tra le mani qualche giorno fa, e non ho mancato di digitalizzare per rendere pubblico: su un limite massimo di 70Km/h sulla SR 156 in provincia di Latina,  il comune di Sezze a quanto pare ha deciso di stabilire una soglia molto, molto bassa per spedire contravvenzioni a domicilio; il lasso di tempo trascorso tra la rilevazione e la redazione del verbale, e quindi perché poi arrivasse per posta, è di circa 7 mesi.

60 euro di multa, una media di 15 euro per ogni Km/h in eccesso, tanto quanto un pranzo in trattoria. Come si dice, chi va piano va sano e va lontano… ed arriva anche satollo con quello che risparmia di multa.

Ora dell’ultima visita ad un sito nella cronologia Firefox

L’ultima volta che ho messo mano alla mia auto, una rover 75, per sostituire la pompa del gasolio nel serbatoio (forse arriverà una guida anche per quello in futuro), sapevo che non sarebbe stato un compito facile, per questo mi sono assicurato che avrei avuto tempo a sufficienza, e quindi in una soleggiata domenica mattina ho bloccato l’auto in pendenza favorevole per il lavoro.
Ricordavo solo che l’ultima cosa che avevo fatto prima di cominciare era stato ripassare brevemente una pagina web con alcuni riferimenti fotografici, e la prima cosa dopo aver finalmente finito è stata fare una telefonata per divulgare l’impresa, ma non avevo assolutamente controllato l’orario, né prima né dopo; risalire all’ora della chiamata è stato semplice controllando la rubrica del cellulare, ma cercare l’ora a cui avevo visitato la pagina web è stato più complicato.
Sapevo infatti che firefox è in grado di ordinare la cronologia in base al momento delle visite, ma dalla normale visualizzazione non è un’informazione che si può immediatamente ricavare; dopo estese ricerche, sono riuscito a scovare questa soluzione in un forum del sito di Mozilla:

Aprite il menu Cronologia -> Visualizza la cronologia, quindi in quella finestra attivate la colonna della data  (click destro sulla barra dei titoli delle colonne, attivare “Data ultima visita”), e potrete quindi conoscere l’orario esatto di visualizzazione di ogni pagina

Per la cronaca, sostituire quella pompa mi è costato quattro ore di tempo.

Time of last visit to a website page in Firefox history

Last time I put hands on my car, a Rover 75, in order to change by myself the in-tank fuel pump (maybe a tutorial will be coming about that), I already knew it was going to be a hard task. That’s why I made sure I had enough time, it was a sunny sunday morning and had plenty of light as well.

Last thing I did before going out in the yard was checking some tutorial page to rapidly review the job details, and first thing I did after the job was finally done and I checked the pump was working, was to call my girlfriend to give her the good news, even if I knew she wasn’t going to car much. What I hadn’t done, was checking the time before going out, and after getting back inside, and I was surely curious to know how much it had taken total.

Checking the call history on my phone was easy, so I knew the time I finished, but looking in Firefox History to see at what time I had last visited that tutorial webpage, it wasn’t as easy as I thought, since there was no right-click option whatsoever to obtain that info. I knew it had to be recorded somewhere, since Firefox has the capability of ordering its history based onorder of last visit, so a not-so-immediate search found this solution, whis is the following:

Go to History menu -> Show all history, then in that window you have to add the date column (right-click on the columns headers and check “Visit Date”), that will show the visited time.

If you’re curious, in the end I realized I had been a total of four hours at it.

Appena lanciata la versione WordPress del sito!

So che sembrerà un lavoraccio, e forse lo è.

Comunque quello che vedete è il risultato di un DURO lavoro dietro le quinte per spostare tutti i contenuti dal vecchio sito a WordPress, in modo che mantenessero il loro formato, e che la cosa non risultasse sgradita ai motori di ricerca.

Ho speso circa due giorni per ottenere questo risultato, ed è ovviamente rimasto poco tempo per lavorare sull’aspetto… sto mettendo su un mio tema personalizzato, per cui questo precompilato che vedete è per ora il meglio che posso tirar fuori.

La buona notizia è che riprenderò ad aggiungere regolarmente contenuti su questo sito una volta che i ritocchi grafici saranno ultimati.