phpbb schluckt beiträge / probleme mit der anzeige
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpbb schluckt beiträge / probleme mit der anzeige
hiho !
ich hoffe, ihr könnt mir weiterhelfen.
folgendes problem:
phpbb (2.0.3) schluckt beiträge.
ein thread ist 4 seiten lang. in der gesamtübersicht werden allerdings nur 3 seiten angezeigt. neue beiträge können zwar hinzugefügt werden, eine ansicht ist allerdings nur bis seite 3 möglich.
hilfe ?
ich hoffe, ihr könnt mir weiterhelfen.
folgendes problem:
phpbb (2.0.3) schluckt beiträge.
ein thread ist 4 seiten lang. in der gesamtübersicht werden allerdings nur 3 seiten angezeigt. neue beiträge können zwar hinzugefügt werden, eine ansicht ist allerdings nur bis seite 3 möglich.
hilfe ?
- itst
- Ehrenadmin
- Beiträge: 7418
- Registriert: 21.08.2001 02:00
- Wohnort: Büttelborn bei Darmstadt
- Kontaktdaten:
Workaround (nur für Fortgeschrittene):
In der DB in der Tabelle phpbb_topics nach dem betreffenden Topic suchen (topic_id). Die Anzahl der Replies und die des letzten Posts merken.
In der Db in der Tabelle phpbb_posts nach allen Posts des betreffenden Topics suchen. Anzahl merken. Dann nach dem letzten Post zu dem Topic suchen. ID Merken.
Jetzt zurück in phpbb_topics. Die Anzahl der ANtworten mit denen aus phpbb_posts vergleichen. Wenn kleiner (was bei diesem Problem der Fall sein sollte), die Anzahl aus phpbb_posts minus eins eintragen.
Jetzt noch die ID des letzen Posts überprüfen und im Zweiflesfall mit der aus phpbb_posts überschreiben.
Problem gelöst.
In der DB in der Tabelle phpbb_topics nach dem betreffenden Topic suchen (topic_id). Die Anzahl der Replies und die des letzten Posts merken.
In der Db in der Tabelle phpbb_posts nach allen Posts des betreffenden Topics suchen. Anzahl merken. Dann nach dem letzten Post zu dem Topic suchen. ID Merken.
Jetzt zurück in phpbb_topics. Die Anzahl der ANtworten mit denen aus phpbb_posts vergleichen. Wenn kleiner (was bei diesem Problem der Fall sein sollte), die Anzahl aus phpbb_posts minus eins eintragen.
Jetzt noch die ID des letzen Posts überprüfen und im Zweiflesfall mit der aus phpbb_posts überschreiben.
Problem gelöst.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
phpBB.de Ehrenadministrator

-
- Mitglied
- Beiträge: 3
- Registriert: 09.01.2003 20:41
hi, ich habe leider das gleiche problem, aber:
1. @itst: irgendwie fehlt mir die lust, jedes mal in der datenbank rumzuwühlen usw...
2. @Mister_X: folgendes problem:
ich habe vor, das PHP forum (2.0.3) auf nem webserver einer lan-party zur verfügung zu stellen, allerdings teste ich das erstmal lokal.
ich habe in der konfiguration keine daten für smtp server eingeben, sodaß quasi keine mails verschickt werden. allerdings kommt nach jeder antwort auf postings immer "failure sending mail".
also hab ich mich auf die suche gemacht und einfach
in der emailer.php auskommentiert.
eigentlich läuft alles wunderbar, bis auf das die anzahl der postings und der letzte poster nicht richtig angezeigt wird bzw. nicht aktualisiert wird!
wie mache ich das, daß kein smtp server benutzt wird, aber trotzdem alles aktualisiert wird?
1. @itst: irgendwie fehlt mir die lust, jedes mal in der datenbank rumzuwühlen usw...
2. @Mister_X: folgendes problem:
ich habe vor, das PHP forum (2.0.3) auf nem webserver einer lan-party zur verfügung zu stellen, allerdings teste ich das erstmal lokal.
ich habe in der konfiguration keine daten für smtp server eingeben, sodaß quasi keine mails verschickt werden. allerdings kommt nach jeder antwort auf postings immer "failure sending mail".
also hab ich mich auf die suche gemacht und einfach
Code: Alles auswählen
if ( !$result )
{
message_die(GENERAL_ERROR, 'Failure sending mail', '', __LINE__, __FILE__);
}
eigentlich läuft alles wunderbar, bis auf das die anzahl der postings und der letzte poster nicht richtig angezeigt wird bzw. nicht aktualisiert wird!
wie mache ich das, daß kein smtp server benutzt wird, aber trotzdem alles aktualisiert wird?
hm ich dachte eigentlich wenn du diese Zeilen löschst/auskommentierst tritt dieses Aktualisierungsproblem nicht mehr auf 
hier das passende Thema dazu: http://www.phpbb.de/viewtopic.php?t=186 ... hp&start=0

hier das passende Thema dazu: http://www.phpbb.de/viewtopic.php?t=186 ... hp&start=0
Hallo welt,
Nachdem ich nun aktuell das selbe Problem hatte, habe ich mir mal das workaround angesehen und versucht dieses als script für den Adminbereich umzusetzen.
Das Problem was ich nun habe ist, das es als einfaches PHP_Script perfekt funzt und ich damit die Seitenzahl korrigieren konnte, ohne alles von Hand zu machen.
Nun wollte ich es als script für den Admin bereich umsetzen, und habe das Problem das er mir nicht mehr eine Liste macht, sondern nur noch den ersten beitrag aus der DB anzeigt.
Ich denke mal das ich einen ganz simplen Umsetzungsfehler gemacht habe, da dies mein allerserstes phpBBScript ist.
Das tpl. was ich erzeugt habe, gibt mir zumindest die Zahlen korrekt aus, wie gesagt liegt das problem wohl nur darin das er nur eine Abfrage macht und nicht die ganze db durchgeht.
Es wäre klasse wenn mir da jemand helfen könnte, weil ich denke das das generell recht hilfreich sein kann. Und wie bereits erwähnt, seid gnädig es ist mein erster versuch für phpBB...
LG Micha (Mysterix - http://sub-port.stayhere.de)
Nachdem ich nun aktuell das selbe Problem hatte, habe ich mir mal das workaround angesehen und versucht dieses als script für den Adminbereich umzusetzen.
Das Problem was ich nun habe ist, das es als einfaches PHP_Script perfekt funzt und ich damit die Seitenzahl korrigieren konnte, ohne alles von Hand zu machen.
Nun wollte ich es als script für den Admin bereich umsetzen, und habe das Problem das er mir nicht mehr eine Liste macht, sondern nur noch den ersten beitrag aus der DB anzeigt.
Ich denke mal das ich einen ganz simplen Umsetzungsfehler gemacht habe, da dies mein allerserstes phpBBScript ist.
- <?php
define('IN_PHPBB', 1);
if ( !empty($setmodules) )
{
$filename = basename(__FILE__);
$module['Forums']['Resync_Posts'] = $filename;
return;
}
//
// Load default header
//
$phpbb_root_path = '../';
require($phpbb_root_path . 'extension.inc');
require('pagestart.' . $phpEx);
$sql = "SELECT *
FROM ".TOPICS_TABLE."
WHERE topic_replies > 0";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error getting topic information', '', __LINE__, __FILE__, $sql);
}
while($row = $db->sql_fetchrow($result)) {
$template->set_filenames(array(
'body' => 'admin/topic_resync_body.tpl')
);
$topic_id = $row[topic_id];
$topic_replies = $row[topic_replies];
$last_post = $row[topic_last_post_id];
$sql = "SELECT count(post_id) as post_id
FROM ". POSTS_TABLE."
WHERE topic_id = $topic_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error getting post information', '', __LINE__, __FILE__, $sql);
}
list($post_id) = $db->sql_fetchrow($result);
$post_id = $post_id-1;
if ($topic_replies < $post_id)
{
$sql = "UPDATE ".TOPICS_TABLE."
SET topic_replies = $post_id
WHERE topic_id = $topic_id";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update topic', '', __LINE__, __FILE__, $sql);
}
$resync = "Korrigiert";
}
$sql = "SELECT post_id
FROM ".POSTS_TABLE."
WHERE topic_id = $topic_id
ORDER BY post_id
DESC LIMIT 1
";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update topic', '', __LINE__, __FILE__, $sql);
}
list($last_post_id) = $db->sql_fetchrow($result);
if ($last_post != $last_post_id) {
$sql = "UPDATE ".TOPICS_TABLE."
SET topic_last_post_id = $last_post_id
WHERE topic_id = $topic_id";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not update topic_id', '', __LINE__, __FILE__, $sql);
}
$resync_post_id = "Korrigiert";
}
$template->assign_vars(array(
'TOPIC' => $topic_id,
'REPLIES' => $topic_replies,
'RREPLIES' => $post_id,
'RESYNC' => $resync,
'RESYNC_POST' => $resync_post_id)
);
$template->pparse('body');
}
include('page_footer_admin.'.$phpEx);
?>
Das tpl. was ich erzeugt habe, gibt mir zumindest die Zahlen korrekt aus, wie gesagt liegt das problem wohl nur darin das er nur eine Abfrage macht und nicht die ganze db durchgeht.
Es wäre klasse wenn mir da jemand helfen könnte, weil ich denke das das generell recht hilfreich sein kann. Und wie bereits erwähnt, seid gnädig es ist mein erster versuch für phpBB...

LG Micha (Mysterix - http://sub-port.stayhere.de)
so, habe es dann doch noch alleine geschafft, wen das modul interessiert,
der kann es sich bei http://sub-port.stayhere.de/download/Replies_resync.zip downloaden.
Es wäre sehr schön wenn einer der Erfahreneren User dieses script evtl. nochmal durchsehen/überarbeiten könnte, da ich wie gesagt ein noob bei phpBB Scripten bin und mit sichherheit gewisse vorgaben nicht eingehalten habe, und mir bescheid gibt, was man ändern oder verbessern könnte.
der kann es sich bei http://sub-port.stayhere.de/download/Replies_resync.zip downloaden.
Es wäre sehr schön wenn einer der Erfahreneren User dieses script evtl. nochmal durchsehen/überarbeiten könnte, da ich wie gesagt ein noob bei phpBB Scripten bin und mit sichherheit gewisse vorgaben nicht eingehalten habe, und mir bescheid gibt, was man ändern oder verbessern könnte.