Gå til innhold

Integrering av phpBB3 (eller annet forum?)


Anbefalte innlegg

Hei! Har en nettside med brukerdatabase, ønsker å legge til phpBB3 som forum, men trenger hjelp til å integrere det. Finner ikke ut hvordan jeg får benyttet brukerdatabasen som jeg har fra før. Jeg ønsker da samtidig å disable all form for registrering i phpBB3. Hvordan gjør jeg det?

 

Edit: endret emnetittel.

Endret av pulse
Lenke til kommentar
Videoannonse
Annonse

Det enkleste ville være å overføre den eksisterende brukerdatabasen til phpBBs integrerte brukerdatabase ved hjelp av et automatisk php-script som går gjennom alle radene, og legger inn den informasjonen du har inn i tilsvarende felt i phpBBs database. Deretter kan du oppdatere siden din til å bruke phpBBs brukerdatabase i stedet. Alternativet er å gå andre vei, og oppdatere alle phpBB-filene så de bruker din brukerdatabase, men på grunn av størrelsen til phpBB og antall filer som må oppdateres kan dette ta veldig lang tid å få til.

 

Hvis du ønsker å disable registrering, kan du endre ucp.php og fjerne disse linjene med kode:

	case 'register':
	if ($user->data['is_registered'] || isset($_REQUEST['not_agreed']))
	{
		redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
	}

	$module->load('ucp', 'register');
	$module->display($user->lang['REGISTER']);
break;

Lenke til kommentar

hmmm. Da er kanskje måten å gjøre det på som du sier å kopiere eksisterende, men så legge til en slik prosess for hver nye som blir registrert via nettsiden, og fjerne registrerings siden ja. Nettsiden er har integrert veldig mye fra før (og mer skal inn) som bla. phpbb, så å endre til denne brukerdatabasen er ikke ett alternativ.

 

Hvordan lages ett slikt automatisk php-script som går gjennom alle radene, og legger inn den informasjonen du har inn i tilsvarende felt i phpBBs database. ?

Er det eventuelt andre metoder jeg burde se på?

Lenke til kommentar
Er det et alternativ å benytte IP.Board istede for phpBB? I så tilfelle har man muligheten til å bruke IP.Converge, som er en felles brukerdatabase som kan brukes av mye forskjellig software.

Det er mulig phpBB kan byttes ut ja. Det som er viktig er at det er ett gratis forum og at det ikke skal bry seg med bruker databasen (authentication + registration) da jeg har ett flott system til dette fra før.

 

Edit: Dog kjenner jeg ikke til det systemet du snakker om. Hva er det?

Endret av pulse
Lenke til kommentar

IP.Board er Invision Power Board, det samme forumsystemet som diskusjon.no bruker. Det er imidlertid ganske dyrt, spesielt i forhold til phpBB 3 som er gratis.

 

Er brukerdatabasen du allerede har en del av et CMS-system eller lignende eller har du selv laget den?

 

Hvis det er det siste er du sannsynligvis godt kjent med din egen kode. Da kan du først installere phpBB3, og se på brukerfeltene i databasen. Sammenlign din egen brukerdatabase med phpBBs database, og se hvilke felt som tilsvarer dine felt i phpBB-databasen. For eksempel kan du ha en tabell med "id", "brukernavn" og "passord", og da vil det tilsvarende i phpBB-databasen bli "user_id", "username" og "user_password". Deretter lager du et script som går gjennom alle medlemmene i databasen:

SELECT * FROM brukere

For hver bruker overfører du informasjon til phpBB-databasen:

INSERT INTO phpbb_users (user_id, username, user_password) VALUES ('$bruker_id', '$brukernavn', '$passord')

 

Husk at det er visse andre felt enn de jeg viste i eksempelet som må fylles ut. Du kan registrere en testbruker i forumet ditt for å se hvilke verdier alle feltene får, og så gå gjennom ditt eget script og legge til tilsvarende verdier.

 

Når alle brukerne er flyttet over i phpBBs brukerdatabase, er det bare å bruke phpBBs innebygde autentiseringssystem. Her er en eksempelfil:

<?php
define('IN_PHPBB', true);
// Erstatt phpBB3/ til den mappen forumet ditt skal ligge i
$phpbb_root_path = 'phpBB3/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

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

if (isset($user->data['is_registered']) && $user->data['is_registered'])
  echo 'Du er logged in med brukernavnet ' . $user->data['username'];
} else {
  echo 'Du er ikke logget inn';
}
?>

Brukerdataen er i $user->data['noe'] der 'noe' er navnet på kolonnen i databasen. For eksmpel, hvis du vil vise brukerens e-post-adresse bruker du $user->data['user_email'].

 

Dette kan virke litt avansert, så ikke vær redd for å spørre! Men det er dessverre ikke mulig å få det noe lettere enn dette, for det krever litt fra din side.

Endret av Mathias-S
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...