Seite 1 von 1

Gallery3 phpbb3 Integration

Verfasst: 02.09.2012 09:37
von iiccee
Hallo Forum,
ich bastel seit ein paar Tagen an einer "kleinen" Gallery3 (http://gallery.menalto.com/) Integration ins phpbb3 Forum. Integration ist vielleicht das falsche Wort. Das einzige was ich möchte, ist eine Abfrage in der index.php der Gallery3, in der ich nachschaue, ob der jeweilige Besucher der Gallery3 auch ein registriertes Mitglied einer Benutzergruppe meines phpbb3 Forums ist. Andernfalls soll die Gallery3 einen redirect auf eine Seite ausführen, in der ich erkläre, dass der Besucher keine Berechtigung hat, die Gallery3 zu besuchen. Ich brauche keine Zusammenführung von den Benutzerdatenbanken, noch eine Uploadfähigkeit der Benutzer oder ähnliches.

Ich kenne und nutze bereits die bekannte Session-Integration des phpbb3 Forums und die Abfrage auf Registrierung und Benutzergruppe. Folgender Code zur Session Integration ist normalerweise kein Problem:

Code: Alles auswählen

// phpbb3 session integration
	define('IN_PHPBB', true);
	global $db, $cache, $config, $user, $phpbb_root_path, $phpEx;
	$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
	$phpEx = substr(strrchr(__FILE__, '.'), 1);
	include($phpbb_root_path . 'common.' . $phpEx);
	//Laden, damit die Benutzergruppen ausgelesen werden können
	include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);

	// Start session management
	$user->session_begin();
	$auth->acl($user->data);
	$user->setup();

// Ab hier kommt der Code hin, um die Benutzergruppenabfrage zu machen sowie der redirect.
Die Gallery3 benutzt aber leider die "$user", "$cache" und "$config" Variable selbst exzessiv, so dass die Session Integration des phpbb3 Forums kein triviales Unterfangen ist.
Wie schon oben geschrieben reicht mir eine kurze Abfrage in der ich auf die Benutzergruppen prüfe, danach kann die phpbb3 Session geschlossen werden. Leider kann man einmal gesetzte Superglobale Variablen ja nicht mehr löschen, die brauche ich aber, damit die Session-Integration funktioniert...

Ich stehe auf dem Schlauch. Kann mir jemand einen Tipp geben, wie ich nun weitermachen könnte?

Re: Gallery3 phpbb3 Integration

Verfasst: 02.09.2012 20:54
von iiccee
So, nachdem ich heute einige Seiten gelesen habe, hat mich folgender Ansatz erreicht:
viewtopic.php?f=93&t=205755

Einfach den Cookie auslesen und die Abfrage selbst in der Datenbank ausführen. Nicht so schön, aber es funktioniert und reicht für meine Zwecke vollkommen aus.

Code: Alles auswählen

	define('IN_PHPBB', true);
	$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
	$phpEx = substr(strrchr(__FILE__, '.'), 1);
   include_once($phpbb_root_path . 'config.' . $phpEx);

	$phpbb_cookie_id = $_COOKIE['phpbb_u'];
	$phpbb_cookie_sid = $_COOKIE['phpbb_sid'];
 
	$connect = @mysql_connect($dbhost, $dbuser, $dbpasswd);	 //	Connect to the server
	mysql_select_db($dbname);	 //	Select our database

	if($phpbb_cookie_id!=1) {
   $query = mysql_query("SELECT * FROM phpbb3_sessions WHERE session_id LIKE '".mysql_real_escape_string($phpbb_cookie_sid)."'");
   if(mysql_num_rows($query)==1) {
         $find_name = mysql_query("SELECT * FROM phpbb3_users WHERE user_id LIKE '".mysql_real_escape_string($phpbb_cookie_id)."'");
         if(mysql_num_rows($find_name)==1) {
            while($row=mysql_fetch_array($find_name)) {
               echo "Welcome, " . $row['username'] . "!";
            }
         }
   }
} else {
   echo "Not logged in";
}
Es fehlt noch die Benutzergruppenprüfung, das mach ich morgen noch ...

Wenn es noch irgendwelche Anregungen gibt, her damit! :grin: