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
tabel phpbb_users gebruiken voor een eigen login
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
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
tabel phpbb_users gebruiken voor een eigen login
Laatst gewijzigd door Semi_Deus op 07 jan 2008, 14:04, 1 keer totaal gewijzigd.
Reden: Verplaatst naar 3.0 Support
Reden: Verplaatst naar 3.0 Support
Re: tabel phpbb_users gebruiken voor een eigen login
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:
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:
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:
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.
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);
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'),
));
?>
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.
?>
DoubleJ - "Waarom makkelijk doen, als het ook moeilijk kan."
Re: tabel phpbb_users gebruiken voor een eigen login
Bedankt voor de zeer uitvoerige reactie, helaas gaat dit alles mijn petje te boven...
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:


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: