Seite 1 von 3

2 (Sub)-Domains, 2 Foren aber nur eine Usertabelle

Verfasst: 05.10.2005 16:15
von Fennias Maxim
Ich möchte ein zweites Forum auf einer Subdomain installiern da die Thematik etwas abweicht und das erste Forum schon etwas unübersichtlich geworden ist. Ich möchte aber nicht das sich User in beiden registrieren und einloggen müssen. Gibts da einen MOD oder eine anleitung? muss ich einfach nur bei der Software des 2ten Forums den Datenbankpräfiks für die abfrage aus der usertabelle ändern wenn ich alles in die selbe Datenbank installiere oder wird das ein grösseres Werk?

Verfasst: 05.10.2005 16:47
von Bluby
Hi :P

Frag doch mal die Verantwortlichen von dem Delphi-Forum. Die haben vier Foren auf einer Datenbank laufen. Man braucht sich also, so wie du es willst, nicht mehrfach anmelden. Außerdem haben die es geschaft, dass manche Bereiche in mehreren Foren angezeigt werden.

Kannst dich ja mal dort melden und nachfragen. Vielleicht haben die ja sogar eine Anleitung. ;-)

Bye Bluby

Verfasst: 06.10.2005 03:30
von yks
hallo,

mich interessiert die frage auch (und denke, daß die antwort hier auch jemand weiß).

ich wollte es mal ausprobieren und dachte, wenn ich die in den beiden config.php jeweils die gleiche datenbank eintrage, das eigentlich schon alles sein müßte.

falls ich damit falsch liege, mich um eine korrektur freue ;)

viele grüße, yks

Verfasst: 06.10.2005 09:24
von Markus67
Hi ...

kennt ihr den Artikel schon? :wink:
KB:2boards1usertabelle

Markus

Verfasst: 06.10.2005 16:40
von Fennias Maxim
Hallo Fennias!

Klar Teile ich mein Wissen. ;-) Allerdings kann ich dir jetzt keine Schritt für Schritt Anleitung geben. Zu aller erst sei gesagt, dass alle Webseiten auf einer Datenbank laufen und sich ALLE Tabellen teilen. Also nicht nur die Usertabelle sondern wirklich alle Tabellen.

Wir haben in der
========> Quelltext ========>
forums
<================ Tabelle ein neues Feld hinzugefügt:


========> Quelltext ========>
set('df', 'csf', 'dl', 'csl')
<================

Jeder Eintrag (df, csf, dl und csl) steht für eine Webseite. df z. B. steht für www.delphi-forum.de. Mit Hilfe diesem Feld können wir für jede Sparte festlegen auf welcher Webseite diese angezeigt werden soll. So ist es auch möglich eine Sparte auf mehreren Webseiten anzuzeigen. Z. B. macht das bei einer "Klatsch und Tratsch" Sparte sinn. ;-)

Die index.php Seite haben wir jetzt so erweitert, dass diese nicht einfach alle Sparten anzeigt sondern nur die Sparten die auf der gerade angesurften Webseiten angezeigt werden sollen. Wenn also ein User die Webseite www.delphi-forum.de aufruft wird die SQL Anweisung, welche die Sparten aus der Datenbank holt, so erweitert, das diese nur die Sparten zurück gibt die "df" in dem o. g. neuen Feld definiert haben.

Das war eigentlich das wichtigste. Natürlich kommen noch tausend andere stellen dazu. Z. B. muss das Logo im Header ausgetauscht werden. Die Suche muss erweitert werden. Texte (z. b. Titel) müss erweitert werden, und und und...

Alles zusammen keine ganz so einfache Aufgabe. Ich hoffe das du ganz fit in PHP bist und dich auch mit den Sourcen von phpBB auskennst. Denn ansonsten sieht es nicht so gut aus. ;-)

Wenn du noch Fragen hast stelle sieh ruhig. ;-)

Gruß
Tino
Ich denke die erste variante langt mir.

Dank an euch!

Verfasst: 06.10.2005 23:13
von yks
hallo,

sry markus + danke :) *nicht an diesen artikel gedacht hatte.

mich allerdings auch nicht nur die gemeinsame usertabelle interessiert, sondern insgesamt eine gemeinsame datenbank. also auch für die beiträge, pns, eben alles.

daher dachte, 'einfach' die gleiche db in der config müßte gehen - oder habe ich etwas vergessen ?

danke + viele grüße, yks

Verfasst: 12.10.2005 10:39
von mgutt
Tinos Idee ist gut.

Ich frage mich nur wie er die Foren erstellt.. dann muss er ja in jedem Projekt die einzelnen SET werte eingegeben haben.

Das ist nicht wenig Arbeit. Da ja auch die gesamte Adminoberfläche hier geändert werden muss.

Und das vier mal :o

Könnte er mal eine Codezeile aus seiner viewforum.php oder index.php posten wie er da die Abfrage abgewandelt hat?

Ich würde das dann gerne mal probieren.

Mit der Userdatenbank das funktioniert eh nur, wenn man das von Anfang an so macht, da ein einziger Mod ja schon alles durcheinander bringen kann an dieser Stelle.

Zwei Boards upzudaten ist auch nicht ohne. Das sollte man auch nicht vernachlässigen.

was mich besonders interessiert, ist die tatsache, dass bei beiträgen, die "falsch" verlinkt sind also eigentlich beim c-sharp-forum liegen dann entsprechend richtig umgeschrieben werden?
http://www.delphi-library.de/viewtopic.php?t=49789

hat er vielleicht nur "wenige" dateien umschreiben müssen, z.b. eine configfile, oder ist er hingegangen und hat alle umgeschrieben, also index, viewtopic, viewforum, usw.

@ yks

es geht deswegen nicht, weil domain1 und domain2 bei deiner idee die gleichen daten abruft. also du kannst dann nur die gleichen inhalte darstellen. denn das forum "cafe" weiß ja dann nicht, dass es nur auf domain1 angezeigt werden soll und nicht auf domain2. außer du willst was anderes erreichen.

@ all

gefährlich ist hier wieder das thema doublecontent, also übertreibt nicht mit den doppelten foren. das kann auch nach hinten losgehen und google sagt goodbye ;)

Verfasst: 13.10.2005 17:03
von Fennias Maxim
Also ich hab das Ganze an einem mitellgemoddeten Forum mit 150 Usern gemacht. Dabei hab ich den Code nur kopiert (bis auf die Dateien in denen die Tables definiert sind), die struktur der "alten" Datenbank übernommen und nur den inhalt der config.

Code: Alles auswählen

define('CONFIRM_TABLE', 'phpbb_confirm');
define('AUTH_ACCESS_TABLE', $table_prefix.'auth_access');
define('BANLIST_TABLE', 'phpbb_banlist');
define('CATEGORIES_TABLE', $table_prefix.'categories');
define('CONFIG_TABLE', $table_prefix.'config');
define('DISALLOW_TABLE', 'phpbb_disallow');
define('FORUMS_TABLE', $table_prefix.'forums');
define('GROUPS_TABLE', 'phpbb_groups');
define('POSTS_TABLE', $table_prefix.'posts');
define('POSTS_TEXT_TABLE', $table_prefix.'posts_text');
define('PRIVMSGS_TABLE', 'phpbb_privmsgs');
define('PRIVMSGS_TEXT_TABLE', 'phpbb_privmsgs_text');
define('PRIVMSGS_IGNORE_TABLE', 'phpbb_privmsgs_ignore');
define('PRUNE_TABLE', $table_prefix.'forum_prune');
define('RANKS_TABLE', 'phpbb_ranks');
define('SEARCH_TABLE', $table_prefix.'search_results');
define('SEARCH_WORD_TABLE', $table_prefix.'search_wordlist');
define('SEARCH_MATCH_TABLE', $table_prefix.'search_wordmatch');
define('SESSIONS_TABLE', $table_prefix.'sessions');
define('SMILIES_TABLE', 'phpbb_smilies');
define('THEMES_TABLE', 'phpbb_themes');
define('THEMES_NAME_TABLE', 'phpbb_themes_name');
define('TOPICS_TABLE', $table_prefix.'topics');
define('TOPICS_WATCH_TABLE', $table_prefix.'topics_watch');
define('USER_GROUP_TABLE', 'phpbb_user_group');
define('USERS_TABLE', 'phpbb_users');
define('WORDS_TABLE', 'phpbb_words');
define('VOTE_DESC_TABLE', $table_prefix.'vote_desc');
define('VOTE_RESULTS_TABLE', $table_prefix.'vote_results');
define('VOTE_USERS_TABLE', $table_prefix.'vote_voters');
Auszug aus meiner konstants.

Ich hab jedem Forum einen eigenen SESSIONS_TABLE gelassen, da ich nicht genau wusste wass passiert wenn der User Forumid 1 im einen Forum gelesen hat und im andern nicht.

So zu den sessions hab ich aber noch ne Frage welches mein einzigstes Problem betrifft. Wenn ich erst im einen Forum auf neue Posts klicke und dann das Forum wechsle bekomm ich da trotzdem keine neuen angezeigt obwohl ich das Board so konfiguriert hab das man ein 2tes Cookie bekommt. Woran könnte das liegen?

Verfasst: 13.10.2005 17:54
von mgutt
dann hast du wahrscheinlich die gleichen cookie einstellungen oder?

Auszug aus der Doku:
Cookie Domain - Der Domain-Name des Cookies, den das Board erstellt. Oft genügt es, wenn Sie das Feld gar nicht ausfüllen;

Cookie Name - Der Name des Cookies, das vom Board verwendet wird. Seien Sie sicher, daß kein zweites Cookie auf Ihrer Seite denselben Namen hat.

Cookie Pfad - Der Pfad des Cookies. Oft genügt es, wenn hier nur "/" eingetragen wird; falls es nicht korrekt funktioniert, müssen Sie einen Pfad eingeben.

Cookie Secure - Nur wenn das Board über Secure Socket Layer (SSL) läuft, müssen Sie diese Funktion aktiveren.

Sessionlänge - Hier können Sie die Länge einer Session (in Sekunden) festlegen. Sessionlänge ist die Zeit, die ein Benutzer eingeloggt bleibt. Beispielsweise bei einer Sessionlänge von 3600 Sekunden (1 Stunde) wird der Benutzer, wenn er sich einloggt und seinen Browser "offen" lässt, automatisch nach einer Stunde ausgeloggt.
Ist der Cookiename vielleicht gleich?

Verfasst: 13.10.2005 20:22
von Fennias Maxim
Mein Cookie sieht jetzt so aus:

.antike.meinedomian-forum.de TRUE / FALSE 1160763235 phpbba2mysql_data a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A32%3A%2263cd6HURZHURZHURZ5315d80ba%22%3Bs%3A6%3A%22userid%22%3Bi%3A3%3B%7D
www.meinedomain-forum.de FALSE / FALSE 1160763205 phpbb2mysql_data a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A32%3A%2263cd6HURZHURZHURZ5d80ba%22%3Bs%3A6%3A%22userid%22%3Bi%3A3%3B%7D

Ich hoffe ich hab meinen Hash unkentlich gemacht. Wenn nicht schlagt mich!