tabel phpbb_users gebruiken voor een eigen login

Hulp nodig bij je installatie of kom je ergens niet uit? Probeer phpBB3! Problemen lossen we samen met je op.
phpBB 3.0 is End of support per 1 januari 2017. Dit forum is hier enkel ter archief. Het wordt aangeraden te upgraden naar phpBB 3.2
Forumregels
phpBB 3.0 is End of support per 1 januari 2017. Dit forum is hier enkel ter archief. Het wordt aangeraden te upgraden naar phpBB 3.2
Gesloten
Rony
Berichten: 19
Lid geworden op: 25 feb 2005, 19:12

tabel phpbb_users gebruiken voor een eigen login

Bericht door Rony » 06 jan 2008, 21:46

Onlangs zijn we overgestapt van phpBB2 naar phpBB3.
Nu is het zo dat we op onze website ook nog een apart inlog gedeelte hebben om de site te beheren.
Voor deze login gebruikten we de tabel phpbb_users van phpBB2 want de beheerders hebben dezelfde login als op het forum.
Dezelfde tabel bestaat nog in phpBB3 maar het veld username is nu van het type BLOB en laat zich niet vergelijken met een ingevoerde string...

Weet er iemand raad?

Alvast bedankt voor alle tips
Laatst gewijzigd door Semi_Deus op 07 jan 2008, 14:04, 1 keer totaal gewijzigd.
Reden: Verplaatst naar 3.0 Support

Gebruikersavatar
DoubleJ
Berichten: 502
Lid geworden op: 22 jan 2005, 17:20
Locatie: Enschede
Contacteer:

Re: tabel phpbb_users gebruiken voor een eigen login

Bericht door DoubleJ » 07 jan 2008, 10:39

Ik denk persoonlijk dat dit beter thuis hoort in support.

Verder is het zo dat de 'username' field nog steeds van het type varchar is. Verder is het ook zo dat 'BLOB' ook gewoon een 'grote' tekst string is.

Het grootste verschil van phpBB2 ten opzichte van 3 is dat phpBB2 md5() voor wachtwoord encryptie gebruikt en phpBB3 daar de eigen phpbb_hash() functie voor gebruikt.
Om dit allemaal te laten werken, moet je een aantal files includen.

Daarnaast is het ook nog handig om te weten dat het veld 'user_level' niet meer is en dat je dus niet meer kan checken of een persoon admin is of niet.
Wat je naar mijn mening het makkelijkst kan doen op je admin paginas, is gewoon je eigen session management er 'weghalen', en die te vervangen door die van phpBB3.

Daarnaast maak je een nieuwe permissie aan, zodat je kan checken of de personen ook admin zijn.
Eerst het permissie aanmaken.
Hiervoor moeten we een item aan de database toevoegen:

Code: Selecteer alles

INSERT INTO phpbb_acl_options (auth_option, is_global, is_local, founder_only) VALUES ('a_site_admin', 1, 0, 0);
Vervang 'a_site_admin' door een eigen naam.
Nu moet je nog zorgen dat deze ook in je administratie permissies te voorschijn komt.
Maak in je 'language\en\acp\' map de file 'permissions_site.php' aan.
In deze file zet je nu de volgende code:

Code: Selecteer alles

<?php
/**
*
* @package phpBB Blog
* @copyright (c) 2007 Jij zelf
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* DO NOT CHANGE
*/
if (empty($lang) || !is_array($lang))
{
    $lang = array();
}

$lang['permission_cat']['website'] = 'Website';


$lang = array_merge($lang, array(
    // User permissions
    'acl_a_site_admin'         => array('lang' => 'Kan website beheren', 'cat' => 'website'),
));
?>
Clear nu de cache/buffer zodat de nieuwe permissie ook daar ingeladen wordt. Je zult deze permissie nu onder Administration permissions vinden.

Nu moet je alleen nog de sessie management op je site admin paginas uitvoeren, wanneer een admin bij jouw op het forum dan is ingelogd, kan hij ook, mits hij die permissie ervoor heeft.
Dit komt er dan ongeveer zo uit te zien:

Code: Selecteer alles

<?php  
/*  
*    phpBB3 blank example page.  
*/  
 
define('IN_PHPBB', true);  
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';  
$phpEx = substr(strrchr(__FILE__, '.'), 1);  
include($phpbb_root_path . 'common.' . $phpEx); 

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

// hier nog even kijken of de persoon in kwestie ook ADMIN is.
if (!$auth->acl_get('a_site_admin'))
{
    trigger_error('NOT_AUTHORISED');
}
// voeg vanaf hier je eigen code weer toe.
?>
Ik hoop dat het hiermee iets duidelijker wordt. Zoals je het kon checken met phpBB2 dat zit er nu niet meer bij aangezien dingen als 'user_level' er niet meer zijn om te kijken of iemand admin is, of niet. daarnaast kun je nu alles doen met permissies, dit kost ietsje meer moeite, maar op deze manier kan je ook nog zelf extra permissies toevoegen om bijvoorbeeld enkele van je adminpaginas voor een nog beperktere groep toegankelijk te maken, of voor andere mensen.
DoubleJ - "Waarom makkelijk doen, als het ook moeilijk kan."

Rony
Berichten: 19
Lid geworden op: 25 feb 2005, 19:12

Re: tabel phpbb_users gebruiken voor een eigen login

Bericht door Rony » 07 jan 2008, 19:46

Bedankt voor de zeer uitvoerige reactie, helaas gaat dit alles mijn petje te boven... :cry:

Ik wil de tabel username enkel gebruiken om te kijken of username en paswoord met elkaar overeenkomen.
Indien dit klopt dan is men ingelogd, meer heb ik echt niet nodig.
Met phpBB2 was dit eenvoudig, nu lukt het mij niet...

Gewoon de usernames uitlezen lukt zelfs niet, ook niet met phpMyAdmin zie volgend screenschot:

Afbeelding

Gesloten