Seite 1 von 1
Forum funktioniert aber ....... [ERLEDIGT]
Verfasst: 05.03.2007 21:34
von biker-treff
Mein Forum funktioniert zwar wieder habe es neu instal. aber nun haben einige Mitglieder auf einmal
16777204 Beiträge geschrieben .
Woran kann das Liegen??
Bitte um Hilfe bin in dem Bereich phpBB2 Blutiger Anfänger.
Danke im voraus.[/b]
Verfasst: 05.03.2007 21:40
von gloriosa
Hallo,
abgesehen von der etwas eigenwilligen Unterbringung einiger Funktionen steht da
Code: Alles auswählen
Unsere Benutzer haben insgesamt 13 Beiträge geschrieben.
Wir haben 4 registrierte Benutzer.
Der neueste Benutzer ist hasi_mausi.
Verfasst: 06.03.2007 20:07
von biker-treff
Sorry mein Fehler !!!:oops:
Die anzahl der Beiträge stehen in der Mitgliederliste!!!
was meinst Du denn mit etwas eigenwilligen Unterbringung einiger Funktionen??
Bin für jeden Tipp dankbar

Keiner eine Idee
Verfasst: 08.03.2007 16:44
von biker-treff
verzweifele schon fast
komm einfach nicht dahinter was es sein könnte
nun tauchen auch noch alte beiträge auf obwohl das forum gelöscht war, sobald sich ein altes mitglied wider neu regestriert hat.
niemand eine idee ??
Verfasst: 08.03.2007 17:12
von Ron_Berlin
Hast PN.
Gruß Ron
Verfasst: 06.06.2007 22:34
von Dr.Death
Die Lösung bitte hier posten.
Es gibt bestimmt noch andere Hilfesuchende.
Verfasst: 07.06.2007 13:12
von Ron_Berlin
Die Ursache für den Fehler konnte nicht ermittelt werden.
Mit Hilfe des unten stehenden Scripts wurden die Zähler wieder
richtig gesetzt. Das Script muß einfach in das Root-Ver-
zeichnis gesetzt und dann gestartet werden. Danach aber
unbedingt wieder löschen, damit es niemand sonst aus-
führen kann.
Gruß Ron
Hier das Script:
Code: Alles auswählen
<?php
/******************************************************************************
*
* File: repair_postercount.php
* -----------------------------
*
* Purpose: This script repairs the postcount of each user.
*
* Usage: Store this script into forum root and call it as batch.
* After this delete it as well, so that nobody else can
* access it!
*
* Written: 2007-03-11
*
* Copyright: (C) 2007 Ron
*
*******************************************************************************/
define('IN_PHPBB', true);
$phpbb_root_path = "./";
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'config.'.$phpEx);
$startdate = date("Ymd-His");
// ---------------------------------------------------------------------
// This function creates a table of all users.
// ---------------------------------------------------------------------
function get_usertable()
{
$tabelle = array();
$sql = "SELECT user_id, username FROM " . USERS_TABLE;
$result = mysql_query($sql);
if(!$result) {
die("***** ERROR: Cannot read user table<br>");
}
else {
$i = 0;
while ($zeile = mysql_fetch_row ($result)) {
$tabelle [$i]['id'] = $zeile[0];
$tabelle [$i]['name'] = $zeile[1];
$i += 1;
}
mysql_free_result($result);
return $tabelle;
}
}
// ---------------------------------------------------------------------
// This function generates the postcount of a user.
// ---------------------------------------------------------------------
function get_postcount($user)
{
$sql = "SELECT COUNT(post_id) FROM " . POSTS_TABLE . " WHERE poster_id=$user";
$result = mysql_query($sql);
if(!$result) {
die("***** ERROR: Cannot count post_id<br>");
}
else {
$zeile = mysql_fetch_row ($result);
$anzahl = $zeile[0];
}
mysql_free_result($result);
return $anzahl;
}
// ---------------------------------------------------------------------
// This function updates the postcount of a user.
// ---------------------------------------------------------------------
function update_postcount($user, $count)
{
$ok = true;
$sql = "UPDATE " . USERS_TABLE . " SET user_posts=$count WHERE user_id=$user";
$result = mysql_query($sql);
if(!$result) {
$ok = false;
}
mysql_free_result($result);
return $ok;
}
// ---------------------------------------------------------------------
// Some database functions.
// ---------------------------------------------------------------------
function open_db()
{
global $db;
global $dbhost;
global $dbuser;
global $dbpasswd;
global $dbname;
$db = mysql_connect($dbhost, $dbuser, $dbpasswd);
if (!$db) {
die ("***** ERROR: Cannot connect database<br>");
}
if (!mysql_select_db($dbname)) {
die ("***** ERROR: Cannot open database<br>");
}
}
function close_db()
{
global $db;
if (!mysql_close($db)) {
die ("***** ERROR: Cannot close database<br>");
}
}
// ---------------------------------------------------------------------
// End Functions
// ---------------------------------------------------------------------
//
// Begin program ******************************************************
//
echo "***** start repair_postercount at $startdate<br>";
open_db();
$usertab = get_usertable();
foreach ($usertab as $user) {
$id = $user['id'];
$name = $user['name'];
$postcount = get_postcount($id);
if (update_postcount($id, $postcount)) {
echo "user $id ($name) updated with $postcount posts<br>";
}
else {
echo "user $user cannot be updated<br>";
}
}
close_db();
echo "***** stop repair_postercount<br>";
?>