feedcreator non crea il feed

to' cercando di creare dei feed rss con feedcreator ma ricevo sempre questo messaggio

Error creating feed file, please check write permissions.

la directory feed dove è presente lo script e la classe ha i permessi su 777.

Ecco lo script:

<?

include("feedcreator.class.php");

$rss = new UniversalFeedCreator();

$rss->useCached();

$rss->title = "PHP news";

$rss->description = "daily news from the PHP scripting world";

$rss->link = "http://www.mondoricette.com";

$rss->syndicationURL = "http://www.mondoricette.com".$PHP_SELF;

$image = new FeedImage();

$image->title = "www.mondoricette.com logo";

$image->url = "http://www.mondoricette.com/images/logo.gif";

$image->link = "http://www.mondoricette.com";

$image->description = "Feed provided by mondoricette.com Click to visit.";

$rss->image = $image;

// parametri di connessione al database MySQL

//mi connetto a mysql

$db = mysql_connect($db_host, $db_user, $db_password) or die ("Errore nella connessione al db");

mysql_select_db($db_name, $db) or die ("Errore nella selezione del db");

$res = mysql_query("SELECT * FROM rubriche ORDER BY newsdate DESC");

while ($data = mysql_fetch_object($res)) {

    $item = new FeedItem();

    $item->title = $data->title;

    $item->link = $data->url;

    $item->description = $data->short;

    $item->date = $data->newsdate;

    $item->source = "http://www.mondoricette.com";

    $item->author = "http://www.mondoricette.com";

    

    $rss->addItem($item);

}

$rss->saveFeed("RSS1.0", "feed/feed.xml");

?>

Qualche idea? O qualche buona soluzione alternativa? Ho provato rsscreator funziona ma solo se visualizzo i feed con firefox con ie7 non và

 

inviato 8 anni fa
blackeyes
X 0 X

dall'istruzione:

$rss->saveFeed("RSS1.0", "feed/feed.xml");

sembra che il feed verrà creato non nella cartella in cui è presente lo script ma in una più interna, di nome "feed". Questa cartella esiste? Hai i permessi di scrittura?

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

la cartella ha 777 ed e' quella dove c'e' lo script e il percorso è /feed. che differenza c'e' se il path lo  esprimo cosi? ../feed

risposto 8 anni fa
blackeyes
X 0 X

cambia tutto.... se i feed devono essere creati nella stessa cartella in cui si trova lo script allora devi fare così:

$rss->saveFeed("RSS1.0", "feed.xml");

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

../feed cosi' dovrebbe crearli nella root no?

risposto 8 anni fa
blackeyes
X 0 X

$rss->saveFeed("RSS1.0", "feed.xml"); adesso funziona grazie

risposto 8 anni fa
blackeyes
X 0 X

Scusa Blackeyes posso chiederti se il formato della campo datanews nel tuo database mysql è un timestamp? sto riscontrando problemi con il formato della data.

Grazie

risposto 8 anni fa
pasquale
X 0 X

si è un timestamp

risposto 8 anni fa
blackeyes
X 0 X

sto cercando di utilizzare feedcreator

ho creato il seguente file php

<?php
include ("include/feedcreator.class.php");

//define channel
$rss = new UniversalFeedCreator();
$rss->useCached();
$rss->title="Amici Domenicani";
$rss->description="Aggiornamenti giornalieri della Rubrica un Sacerdote risponde";
$rss->link="http://www.amicidomenicani.it/sacerdote.php";
$rss->syndicationURL="http://www.amicidomenicani.it".$PHP_SELF;


//channel items/entries

include ("include/datinuovo.php");


$db= mysql_connect($hostname, $user, $pass)
or die("connessione con il database al momento non disponibile");

mysql_select_db($database, $db);

$res = mysql_query("SELECT id, titolo, data FROM rubriche ORDER BY data DESC");

while ($data = mysql_fetch_object($res)) {
    $item = new FeedItem();
    $item->title = $data->titolo;
    $item->link = "http://www.amicidomenicani.it/leggi_sacerdote.php?id=".$data->id;
    $item->description = $data->titolo;
    $item->date = $data->data;
    $item->source = "http://www.amicidomenicani.it";
    $item->author = "http://www.amicidomenicani.it";
    
    $rss->addItem($item);
}


//Valid parameters are RSS0.91, RSS1.0, RSS2.0, PIE0.1 (deprecated),
// MBOX, OPML, ATOM, ATOM1.0, ATOM0.3, HTML, JS

//$rss->outputFeed("ATOM1.0"); 
$rss->saveFeed("RSS1.0", "news/sacerdote/feed.xml"); 

?>

Purtroppo però mi restituisce il seguente errore in internet explorer

Internet Explorer: impossibile visualizzare il feed

   Il feed contiene errori di codice.

     Torna alla pagina precedente.

     Ulteriori informazioni

Dichiarazione XML non valida.

 Riga: 1 Carattere: 4

 <?xml version="1.0" encoding="ISO-8859-1"?>

da cosa può dipendere? devo utilizzare nei campi della tabella la codifica "ISO-8859-1" ?

in alcuni campi di titolo effettivamente ci sono delle parole accentate.

Un saluto e un grazie

risposto 8 anni fa
pasquale
X 0 X

l'ISO-8859-1 è il latin1, ovvero il set di caratteri che abitualmente usiamo per l'italiano, quindi i caratteri accentati vanno bene.

Che set di caratteri viene usato dalle tabelle del tuo DB?

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Set di caratteri MySQL: UTF-8 Unicode (utf8)

risposto 8 anni fa
pasquale
X 0 X

il campo del record titolo ha come valore è di tipo text con collaction latin1_swedish_ci

risposto 8 anni fa
pasquale
X 0 X

hai provato ad usare qualche servizio di validazione dei feed, tipo:

http://validator.w3.org/feed/

http://feedvalidator.org/

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

questo è il risultato

http://feedvalidator.org/check.cgi?url=http%3A%2F%2Fwww.amicidomenicani.it%2Famicidomenicani2%2Ffeed%2Fprova.php

ma purtroppo non mi aiuta a capire il problema.

Non ho una buona conoscenza di inglese ma mi pare che non sia corretto questa forma di dichiarazione di enconding del xml

Ma viene generata così dalla classe feddcreator... eppure su altri siti funziona bene

anzi l'avevo provata sul sito e mi aveva creato un feed corretto, poi ho cambiato alcune specifiche sulla data e non funziona più! :(

risposto 8 anni fa
pasquale
X 0 X

il problema è causato dallo spazio iniziale che precede la dichiarazione <?xml version="1.0

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

grazie Gianni,

però come posso evitare che ciò accada?

il file xml non viene creato dalla classe feedcreator.class.php

ti ho trascritto il contenuto nel file che si trova al sequente indirizzo web

http://www.amicidomenicani.it/feedcreator.class.txt

devo modificare questa classe?

Se puoi darmi un'indicazione o altrimenti suggerirmi una classe php che funzioni meglio di questa

Grazie

risposto 8 anni fa
pasquale
X 0 X

non saprei come risolvere il problema con feedcreator, se vuoi prova con questo componenete dello Zend Framework:

http://framework.zend.com/manual/en/zend.feed.html

 :bye:

P.S.: qui trovi come creare un feed, partendo da un array di dati:

http://framework.zend.com/manual/en/zend.feed.importing.html#zend.feed.importing.custom

risposto 8 anni fa
Gianni Tomasicchio
modificato 8 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda