Der chCounter und ein ziemlich interessantes Problem

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Doc Lecter
Mitglied
Beiträge: 377
Registriert: 13.12.2003 16:24

Der chCounter und ein ziemlich interessantes Problem

Beitrag von Doc Lecter »

HI! Ich habe letztens den chCounter in 2 meiner Boards eingebaut. Läuft auch alles super.
Jetzt wollte ich aber heute ein drittes Board damit ausstatten und nun bekomme ich folgende Fehlermeldung:

Code: Alles auswählen

Allgemeiner Fehler 

Could not obtain topics information

DEBUG MODE

SQL Error : 1146 Table 'kingdomofmadness_de.phpbb2_topics' doesn't exist

SELECT t.*, p.poster_id, p.post_username, p.enable_bbcode, p.enable_html, p.enable_smilies, u.username, pt.post_text, pt.bbcode_uid, lp.poster_id AS lp_poster_id, lu.username AS lp_username, lp.post_username AS lp_post_username, lp.post_time AS lp_post_time FROM phpbb2_topics AS t, phpbb2_posts AS p, phpbb2_posts_text AS pt, phpbb2_users AS u, phpbb2_posts AS lp, phpbb2_users lu WHERE p.post_id = t.topic_first_post_id AND pt.post_id = t.topic_first_post_id AND u.user_id = p.poster_id AND lp.post_id = t.topic_last_post_id AND lu.user_id = lp.poster_id AND t.topic_calendar_time < 1093557600 AND (t.topic_calendar_time + t.topic_calendar_duration) >= 1092952800 AND t.topic_status <> 2 AND t.forum_id IN (1, 4, 3, 5, 6, 9, 10, 11, 7) ORDER BY t.topic_calendar_time, t.topic_calendar_duration DESC, t.topic_last_post_id DESC

Line : 261
File : /is/htdocs/XXXXXX/www.kingdomofmadness.de/europefans/includes/functions_calendar.php
Hier die Einbauanleitung des Counters:
ÖFFNEN: phpBB-Verzeichnis/includes/page_header.php

[FINDEN]:

//
// The following assigns all _common_ variables that may be used at any point
// in a template.
//


[DAVOR EINFÜGEN]:

//
// chCounter
//
ob_start();
INCLUDE_CODE
$chCounter = ob_get_contents();
ob_end_clean();

[ERSETZE IN OBIGEM CODE "INCLUDE_CODE" DURCH DEN INCLUDE-CODE DES COUNTERS]



[FINDEN]:
'SITENAME' => $board_config['sitename'],

[DAVOR EINFÜGEN]:

'COUNTER' => $chCounter,




#
#-----[ AKTION: ]------------------------------------------
# ÖFFNEN: phpBB-Verzeichnis/includes/functions.php

[FINDEN]:

function message_die($msg_code, $msg_text = '', $msg_title = '', $err_line = '', $err_file = '', $sql = '')
{
global $db, $template, $board_config, $theme, $lang, $phpEx, $phpbb_root_path, $nav_links, $gen_simple_header, $images;
global $userdata, $user_ip, $session_length;
global $starttime;



[DANACH EINFÜGEN]:

global $HTTP_SERVER_VARS, $HTTP_GET_VARS, $HTTP_COOKIE_VARS;

So, der Include Code meines Counters sieht dann folgendermaßen aus:

Code: Alles auswählen

//
// chCounter
//
ob_start();
$chCounter_visible = "0";
include("/is/htdocs/XXXXX/www.kingdomofmadness.de/europefans/counter/counter.php");
$chCounter = ob_get_contents();
ob_end_clean();
That`s all! Hab jetzt echt keine Ahnung warum das net funzt. Die Datenbank ist angelegt und ich denke auch mal das ich das Teil richtig eingebaut hatte.

Wenn ich den Code aus der PageHeader rausnehme, kommt keine Fehlermeldung. Woran liegts?
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Was ist denn bei dir in der config.php als $table_prefix eingetragen?

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
Doc Lecter
Mitglied
Beiträge: 377
Registriert: 13.12.2003 16:24

Beitrag von Doc Lecter »

HI! Also in der Config vom Counter steht:

Code: Alles auswählen

$GLOBALS['chC']['dbconfig']['database'] = "kingdomofmadness_de";                 // Der Name der Datenbank
$GLOBALS['chC']['dbconfig']['tables_prefix'] = "counter3_";	// Prefix of the chCounter database tables
Config vom Forum:

Code: Alles auswählen

$dbname = 'kingdomofmadness_de_2';
$table_prefix = 'phpbb2_';
Also "phpbb2_" weil ich zwei Foren in der Datenbank laufen habe.
Der Counter läuft in ner anderen Datenbank als das Forum, aber das kann doch net das Problem sein oder?!
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Existiert denn die phpbb2_topics?

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
Doc Lecter
Mitglied
Beiträge: 377
Registriert: 13.12.2003 16:24

Beitrag von Doc Lecter »

Ja die existiert! Allerdings verstehe ich eines nicht:

Code: Alles auswählen

SQL Error : 1146 Table 'kingdomofmadness_de.phpbb2_topics' doesn't exist 
Das steht ja in der Fehlermeldung! Aber warum wird die kingdomofmadness_de abgefragt und nicht die kingdomofmadness_de_2?
Das Forum greift auf kingdomofmadness_de_2 zu und der Counter auf kingdomofmadness_de (lauft Config). Die Fehlermeldung ist irgendwie verwirrend. Ausserdem läuft das Forum ja perfekt WENN ich diesen Codeschnipsel vom Counter nicht in die PageHeader einfüge...
chrispo
Mitglied
Beiträge: 23
Registriert: 02.09.2004 09:56
Wohnort: Bonn

Beitrag von chrispo »

Hallo,

da kommt daher, dass der Counter, falls vorhanden, eine bereits bestehende DB-Verbindung übernimmt. (Da der Counter nicht für das phpBB, sondern als "stand-alone"-Script geschrieben wurde, nutzt er nicht die phpBB-DB-Klasse.) Dadurch wird die Verbindung auf die Datenbank gesetzt, die in der config.inc.php des Counters angegeben ist - ist diese eine andere als die, die das Forum benutzt, kommt es dann zu dem von dir beschriebenen Problem.
Wenn du PHP >= 4.2.0 installiert hast, öffne einmal die Datei include/mysql.class.php, suche folgende Zeile:

Code: Alles auswählen

		$this->connection_id = @mysql_connect($db_server, $db_user, $db_passwort) OR $this->display_error();
und ersetzte diese mit:

Code: Alles auswählen

		$this->connection_id = @mysql_connect($db_server, $db_user, $db_passwort, TRUE) OR $this->display_error();
Gruß,
Christoph
Benutzeravatar
Doc Lecter
Mitglied
Beiträge: 377
Registriert: 13.12.2003 16:24

Beitrag von Doc Lecter »

Ich denke du hast recht! Habe allerdings nun den Counter in der selben Datenbank wie die Site gepackt. Funzt nun alles wunderbar! Juhuu
Antworten

Zurück zu „Coding & Technik“