RSS del forum, aiutino !

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
Loris
Admin
Admin
Messaggi: 7731
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

RSS del forum, aiutino !

Messaggio da Loris »

Prima usavo questo:

Codice: Seleziona tutto

<?
header("Content-Type: text/xml");
//header("Content-Type: text/html; charset=US-ASCII");

require("config.php");

if (file_exists("/tmp/rss.xml")) {
    $ora_file = filemtime("/tmp/rss.xml");
    if (time() - $ora_file <= 60*5) {
	readfile("/tmp/rss.xml");
	exit;
    }
}

function convertDate($date) {
    $ts = strtotime($date);
    $date = date("r",$ts);
    return $date;
}

function prepare($text,$len=-1) {
    $text = html_entity_decode($text);
    $text = preg_replace("/\[img([^]]*)\]([^[]*)\[\/img([^]]*)\]/","",$text);
    $text = preg_replace("/\[quote([^]]*)\]/","\"",$text);
    $text = preg_replace("/\[\/quote([^]]*)\]/","\"",$text);
    //$text = preg_replace("/\[([^]]+)\]/","",$text);
    //$text = preg_replace("/\[\/([^]]+)\]/","",$text);
    $text = preg_replace("/\[([^]]+)\]([^[]*)\[\/\\1\]/","\\2",$text);
    if ($len > 0)
        $text = substr($text,0,$len)."...";
    $text = "<![CDATA[".utf8_encode($text)."]]>";
    return $text;
}

$db = mysql_connect($dbhost,$dbuser,$dbpasswd);
if (!$db) die;
if (!mysql_select_db($dbname,$db)) die;

$rss_date = "0000-01-01";

$feed_rss = array();
$feed_order = array();

$tot_threads = 10;

$url_phpbb = "http://www.slacky.eu/forum/";

$sql = "SELECT b.post_id,a.topic_title,date_format(from_unixtime(b.post_time),'%Y-%m-%d %H:%i:%s'),a.topic_id,c.forum_name,a.topic_first_post_id,a.topic_last_post_id
	FROM ".$table_prefix."topics a,".$table_prefix."posts b,".$table_prefix."forums c
        WHERE a.forum_id=c.forum_id AND a.topic_id=b.topic_id AND c.forum_status=0 AND c.auth_read=0 AND c.auth_view=0  AND a.topic_last_post_id=b.post_id
	ORDER BY b.post_time DESC LIMIT ".($tot_threads);
if ($res=mysql_query($sql)) {
    while ($row = mysql_fetch_row($res)) {
	$tmp = mysql_fetch_row(mysql_query("SELECT post_text FROM ".$table_prefix."posts_text WHERE post_id='$row[0]'"));
	$row[7] = $tmp[0];
	$link = $url_phpbb."/viewtopic.php?p=".$row[0]."#".$row[0];
	$this_thread = array("title" => prepare($row[1]), "link"=> $link, "guid" => $link , "pubDate"=>convertDate($row[2]) ,
			   "category" => prepare($row[4]) , "description" => prepare($row[7],100));
	$feed_rss[] = $this_thread;
	$feed_order[] = $row[2];
	if ($row[2] > $rss_date)
	    $rss_date = $row[2];
    }
    mysql_free_result($res);
}

$rss_date = convertDate($rss_date);

arsort($feed_order);
$tmp_feed = array();
foreach ($feed_order as $k=>$v)
    $tmp_feed[] = $feed_rss[$k];
$feed_rss = $tmp_feed;

mysql_close($db);

ob_start();

?>
<rss version="2.0">
   <channel>
      <title>Slacky</title>
      <link>http://www.slacky.eu/forum</link>
      <description>Slacky - Italian Slackware Community.</description>
      <language>it-it</language>
      <managingEditor>info@slacky.it</managingEditor>
      <webMaster>info@slacky.it</webMaster>
      <image>
	<url>http://www.slacky.eu/favicon.ico</url>
	<title>Slacky: ultime news e discussioni</title>
	<link>http://www.slacky.eu/forum</link>
      </image>
      <ttl>30</ttl>
      <pubDate><?echo $rss_date;?></pubDate>
      <lastBuildDate><?echo $rss_date;?></lastBuildDate>
<?
    foreach ($feed_rss as $n) {
	?>
      <item>
	<?
	    foreach ($n as $k=>$v)
		echo "<$k>$v</$k>\n";
	?>
      </item>	
	<?
    }

?>

   </channel>
</rss>
<?
    
    $rss_file = ob_get_contents();

    $f = fopen("/tmp/rss.xml","w");
    if ($f) {
	fwrite($f,$rss_file);
	fclose($f);
    }

    ob_end_flush();

    clearstatcache();
?>
ma ora non funziona più, la differenza è che prima usavamo mysql 4 ora 5, secondo voi dove sta l'inghippo ?
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

Avatar utente
nuitari
Linux 3.x
Linux 3.x
Messaggi: 777
Iscritto il: dom 14 ott 2007, 12:51
Slackware: 12.0
Località: San Colombano al Lambro
Contatta:

Messaggio da nuitari »

Hai verificato se la query viene eseguita? Se restituisce una risorsa valida? Guardando il codice, è l'unico punto dove potrebbe inchiodarsi, perchè le altre fasi hanno dei meravigliosissimi *die*, per cui dovresti accorgerti se fallisce nella fase di connessione / selezione del db.

Domanda: vuoi una mia classe per l'interfacciamento con mysql? fa tutto lei e ti da dei messaggi d'errore + *verbose* ^^

Avatar utente
Loris
Admin
Admin
Messaggi: 7731
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Messaggio da Loris »

nuitari ha scritto:Hai verificato se la query viene eseguita? Se restituisce una risorsa valida? Guardando il codice, è l'unico punto dove potrebbe inchiodarsi, perchè le altre fasi hanno dei meravigliosissimi *die*, per cui dovresti accorgerti se fallisce nella fase di connessione / selezione del db.
Infatti non esegue la query :(
nuitari ha scritto: Domanda: vuoi una mia classe per l'interfacciamento con mysql? fa tutto lei e ti da dei messaggi d'errore + *verbose* ^^
Manda manda :)
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

Avatar utente
ccts2002
Linux 1.x
Linux 1.x
Messaggi: 155
Iscritto il: gio 9 nov 2006, 23:20
Località: milano - trieste - catania
Contatta:

Messaggio da ccts2002 »

ora controllo nel manuale, ma hai visto se nella query, dove c'è la parte WHERE ci vadano gli apici semplici?
cioè qualcosa del tipo...

Codice: Seleziona tutto

WHERE a.forum_id=c.forum_id AND...
diventi cosi...

Codice: Seleziona tutto

WHERE a.forum_id='c.forum_id' AND...
prova a vedere...
prova comunque a stampare la query a video e prova ad inserire quello che ti stampa in un terminale mysql...cosi ti dice anche dove è l'errore...

ciaooo

Avatar utente
nuitari
Linux 3.x
Linux 3.x
Messaggi: 777
Iscritto il: dom 14 ott 2007, 12:51
Slackware: 12.0
Località: San Colombano al Lambro
Contatta:

Messaggio da nuitari »

Al limite ci va il quote che è il codice ascii 096, non l'apice singolo, e comunque è obbligatorio solo quando i nomi all'interno dell'SQL matchano con parole riservate mysql.

Ora estrapolo il file dal mio framework e te lo mando in mail, roba di 5 minuti.

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: RSS del forum, aiutino !

Messaggio da conraid »

Loris ha scritto:Prima usavo questo:

Codice: Seleziona tutto

<?
;
?>
ma ora non funziona più, la differenza è che prima usavamo mysql 4 ora 5, secondo voi dove sta l'inghippo ?
Magari non c'entra niente, ma io visualizzo il codice.
Ti ho scritto in mail

Prova a mettere
<?php

o a cambiare il php.ini in short_open_tag

UPDATE
"visualizzo il codice" nel senso che come output vedo il codice php

Avatar utente
Loris
Admin
Admin
Messaggi: 7731
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Messaggio da Loris »

Ho messo un <?php in cima e ora non visualizza più il codice, questa sera faccio ulteriori prove...
Grazie mille.
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

Avatar utente
nuitari
Linux 3.x
Linux 3.x
Messaggi: 777
Iscritto il: dom 14 ott 2007, 12:51
Slackware: 12.0
Località: San Colombano al Lambro
Contatta:

Messaggio da nuitari »

MA LOL vuoi dire che il problema era che ti visualizzava il codice????? Eheh.. ma perchè non l'hai detto subito?

Avatar utente
Loris
Admin
Admin
Messaggi: 7731
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Messaggio da Loris »

No aspetta visualizzava il codice ma non creava/crea neppure i feed quindi parte del problema è ancora presente.
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Messaggio da conraid »

Loris ha scritto:Ho messo un <?php in cima e ora non visualizza più il codice, questa sera faccio ulteriori prove...
Lors in ogni <? non solo in cima

spero sia questo

Avatar utente
nuitari
Linux 3.x
Linux 3.x
Messaggi: 777
Iscritto il: dom 14 ott 2007, 12:51
Slackware: 12.0
Località: San Colombano al Lambro
Contatta:

Messaggio da nuitari »

Quoto conraid. Se visualizzava il codice era ovvio che non creasse nulla, voleva dire che il codice non veniva eseguito del tutto, non è che la query non restituiva risultati ^^

PS: ho sbagliato a scriverti il mio indirizzo MSN, te l'ho mandato giusto nell'altra mail ^^''

Avatar utente
Loris
Admin
Admin
Messaggi: 7731
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Messaggio da Loris »

conraid ha scritto:
Loris ha scritto:Ho messo un <?php in cima e ora non visualizza più il codice, questa sera faccio ulteriori prove...
Lors in ogni <? non solo in cima

spero sia questo
Ok chi non ha testa ha gambe... per fortuna che alle due torno a vendere ricambi :lol:
Ora funge 8)
Grazie vi voglio bene...
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2098
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 6.18.0
Desktop: gnome and lxqt
Distribuzione: Ubuntu 24.04 & FC 41
Località: Darmstadt - Germania

Messaggio da albatros »

Vedi short_open_tag in
http://it.php.net/ini.core

Ciao e grazie per la tua pazienza e il tuo encomiabile lavoro, Loris!
Praticamente hai perso tutto o quasi tutto il fine settimana nella messa a punto del nuovo server...
:mille:

Avatar utente
whites11
Linux 4.x
Linux 4.x
Messaggi: 1147
Iscritto il: ven 30 set 2005, 13:54
Località: Udine

Messaggio da whites11 »

come mai i link alle discussioni portano direttamente a metà pagina e non all'inizio della pagina?

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Messaggio da conraid »

whites11 ha scritto:come mai i link alle discussioni portano direttamente a metà pagina e non all'inizio della pagina?
Portano all'ultimo post. Anche prima mi sembra fosse così

Rispondi