Ich wollte nun bei einem weiteren PhpBB-Coppermine Projekt das Forum auf PhpBB3 aktualisieren und anschliessend erneut dahin bridgen.
Leider gibt es nun folgendes Problem.
Der Vorgang wird soweit ordnungsgemäss abgeschlossen.
Ich klicke auf "anmelden", komme zum Forum-Login und werde daraufhin zu CPG zurückgeleitet.
Da erwartet mich eine weisse Seite auf der dann steht:
While executing query 'SELECT user_id, user_password, group_id FROM `DBNAME`.phpbb_sessions INNER JOIN `DBNAME`.phpbb_users ON session_user_id = user_id WHERE session_id = 'dd447b66652efc284666c04116dccb5f'' in bridge/phpbb3.inc.php on line 131
mySQL error: Unknown column 'group_id' in 'field list'
"DBNAME" steht für den Datenbank-Namen des alten Forums.
CpG hatte bislang eine eigene Datenbank, die Tabellen des neuen Forum ebenfalls da installiert.
Die Tabellen des alten und des neuen Forums tragen zwar das gleiche Präfix, sind aber in zwei verschiedenen DBs.
Lösche ich nun die Cookies kann ich zwar CPG wieder öffnen, bin dann aber natürlich nicht eingeloggt.
Wie fixe ich das?
QuotemySQL error: Unknown column 'group_id' in 'field list'
Welche Spalten gibt es denn in der Tabelle
phpbb_sessions?
Meinst du vom neuen oder vom alten Forum?
Wie auch immer, sowas wie "group_id" ist da nicht vorhanden. :/
Die Fehlermeldung enthält den Namen der Datenbank des ALTEN Forum, könnte das die Ursache sein?
Keine Ahnung, das ist alles ziemlich kryptisch. Natürlich sollte Coppermine auf die richtige Datenbank zugreifen. Ich kenn mich mit phpBB nicht aus, von daher kann ich hier nur die Fehlermeldungen interpretieren.
Und wie kann ich sicher feststellen dass CPG auf die richtige Datenbank zugreift?
Dieser Abschnitt aus scheint Probleme zu machen:
// definition of how to extract id, name, group from a session cookie
function session_extraction()
{
$superCage = Inspekt::makeSuperCage();
if ($superCage->cookie->keyExists($this->cookie_name . '_sid')) {
$this->session_id = $superCage->cookie->getEscaped($this->cookie_name . '_sid');
$sql = "SELECT user_id, user_password, group_id FROM {$this->sessionstable} INNER JOIN {$this->usertable} ON session_user_id = user_id WHERE session_id = '{$this->session_id}'";
$result = cpg_db_query($sql, $this->link_id);
if (mysql_num_rows($result)){
$row = mysql_fetch_array($result);
$this->primary_group = array_pop($row);
return $row['user_id'] == 1 ? false : $row;
} else {
return false;
}
}
}
Coppermine holt sich die Zugangsdaten zum Board aus der Konfigurationsdatei des Boards. Deshalb wird beim Bridgen der Pfad zum Board angegeben.
Das alte Forum liegt im Verzeichnis "gothicmodels", das neue in "portal".
Zum alten bridgen geht problemlos, zum neuen nicht. :/
CPG befindet sich unte gothicmodels/gallery/
Und einen falschen Pfad kann man im Bridge-Assistenten ja nicht angeben.
Die Weiterleitung zum Forenlogin funzt ja, aber wenns dann zurück zu CPG geht, kommt der oben genannte Fatale. :(
Okay also nochmal zusammengefasst.
Du hast/hattest deine Galerie mit irgendeiner anderen Software als phpBB3 (die unter gothicmodels/ zu finden ist) gebridged.
Jetzt löst du die Bridge auf und bridgest Coppermine mit phpBB3 (welches unter portal/ zu finden ist) - ohne Fehlermeldung.
Nun meldest du dich an und nach dem Weiterleiten erscheint die Fehlermeldung "Unknown column 'group_id' in 'field list'".
Wenn du jetzt sagst, dass in der Fehlermeldung als Datenbankname der Name der alten Datenbank auftaucht, stimmt irgendwas nicht. Bitte überprüfe die Werte in der Coppermine-Tabelle "bridge". Ist dort bei "relative_path_to_config_file" der korrekte Pfad (vermutlich '../../portal/') angebeben? Oder steht da noch irgendwas von "gothicmodels"?
Coppermine: http://www.gothicmodels.net/gothicmodels/gallery/
Altes Forum, Phpbb2: http://www.gothicmodels.net/gothicmodels/
Neues Forum, PhpBB3: http://www.gothicmodels.net/portal
Ok, was muss ich im Bridge-Assi denn eingeben dass er ins /portal Verzeichnis wechselt? Glaub das könnte es sein. o_O
Ok, ist gelöst, es war der falsche relative Pfad zum Config-File. ;D
Echt peinlich...
Da such ich so lange und der Fehler liegt vor der Nase. ::)