Questo articolo fornisce una soluzione per WP 2.0.6 e le croniche disconnessioni di FeedBurner. Risulta fondamentale che aggiorniate WP alla versione 2.0.6 e che non aspettiate altre versioni perchà© il vostro blog potrebbe essere soggetto ad attacchi da parte di hacker! Aggiornatelo e quindi seguite queste istruzioni per risolvere questo piccolo problema con FeedBurner.
Il Problema
Dopo l’aggiornamento a WordPress 2.0.6 il vostro feed di FeedBurner potrebbe darvi spesso un messaggio di errore di “invalid xmlâ€? e “FeedMedicâ€? indicarvi una cosa del genere::
Your server disconnected us before sending the full source feed content. If your blogging platform is TextPattern, this is a known bug, and a fix can be found here: http://forum.textpattern.com/viewtopic.php?id=11247
Spiegazione
FeedBurner utilizza una cosa detta “Richiesta di Get Condizionaleâ€? per richiedervi se la pagina è o meno cambiata dopo l’ultima sua visita, il tutto per risparmiare banda e non scaricarla continuamente. In funzione di quanto è popolare il vostro sito FeedBurner può richiedere il feed centinaia di volte al giorno, quindi usare tale metodo è un’ottima idea! Sfortunatamente in WordPress 2.0.6 il vostro sito non risponde in un modo che FeedBurner riconosce. L’header 304 restituito per informarlo che il contenuto non è cambiato risulta malformato e corrotto e quindi FeedBurner non riesce ad interpretarlo correttamente..
Soluzione 1
Grazie a Mark Jaquith, vi è una piccola modifica che potete apportare al vostro codice per far si che funzioni correttamente. Questa piccola modifica verrà inserita nella versione di WordPress 2.0.7, quindi non preoccupatevi di apportare delle modifiche non corrette o insicure.
Aprire il file /wp-includes/functions.php e cercate il seguente codice:
if ( substr(php_sapi_name(), 0, 3) == ‘cgi’ )
@header("HTTP/1.1 $header $text");
else
@header("Status: $header $text");
}
Sostituite questo blocco di codice con il codice seguente che commenta le porzioni di codice causa del problema
// if ( substr(php_sapi_name(), 0, 3) == ‘cgi’ )
@header("HTTP/1.1 $header $text");
// else
// @header("Status: $header $text");
}
Salvate il file e quindi fate un resync del vostro feed su feedburner. Volendo è disponibile il file già corretto (fate click sulla grande icona in alto marcata “downloadâ€? … non fate un copia e incolla).
Soluzione 2
Se non ve la sentite di modificare il codice sorgente di WordPress potete creare uno script phph che restituisca il contenuto del vostro feed in maniera corretta FeedBurner. Dovete semplicemente copiare ed incollare il codice sottostante in un file sul vostro server. Quindi far puntare FeedBurner a questo file al posto del vecchio link ed è fatta. Solo ricordate: questo file non passa per la cache di FeedBurner e quindi verrà passato interamente ogni volta!
Create un file denominato FeedBurner.php, che contenga il seguente codice:
< ?php
$uri="http://neosmart.net/blog/feed/"; //Sostituite questa URL con la URL del *vostro* feed!!
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $uri);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
echo curl_exec($ch);
$status = curl_close($ch);
?>
Mi raccomando aggiornate il vostro blog alla versione 2.0.6 indipendentemente da questo errore!!
[Libera traduzione del post da The NeoSmart Files]




Commenti dei Lettori
In effetti per me che ho l’hosting su TopHost il php_sapi_name restituisce proprio CGI, quindi ne ero “affetto”
Grazie per la soluzione… e speriamo che la 2.0.7 stavolta sia davvero l’ultima
No la 2.0.7 non sarà l’ultima, il ramo 2.0.X è diventato un pacchetto ufficiale fra quelli gestiti dalla Debian per questo occorre garantire manutenzione per diverso tempo (anni), quindi ve ne saranno altre
Io non rilevo segnalazioni di FeedBurner (2.0.6 e hosting DreamHost)
ho apportato le modifiche anche senza aver avuto il problema forse perchè uso il plugin feedburnar replacement ?
ciao
wolly
Steve .. grazie per le info , che ne dici lo rinominiamo WP 2.0.x LTS ? buon lavoro
anche io come wolly uso il plugin feedburner feed replacement e non mi sembrava di avere problemi.
comunque ho fatto anche io la modifica,
grazie, soprattutto per avermi spronato a fare l’update di sicurezza!
Ciao,
come si fa un resync del feed su feedburner”?
Slowfinger:
http://monsterlippa.chiedere.info/2006/08/17/guida-a-feedburner-su-wordpress/