Tech Sharing

Tech Sharing


phpBB Forum user registration integration

By on October 24, 2009

Just working out on the phpBB3.0 on the user registration integration with the main web site. Because of I plan to write the main web site using the coldfusion + MS SQL, so the only way as I may thinking of to do the integration is write a web service a like page for my coldfusion application to call.

After read through some forum, blog, web site and finally find out the way for the integration and here to share my simple PHPBB 3.0 user registration integration code.

  < ?PHP
  define('IN_PHPBB', true);
  /* set scope for variables required later */
  global $phpbb_root_path;
  global $phpEx;
  global $db;
  global $config;
  global $user;
  global $auth;
  global $cache;
  global $template;

  # your php extension
  $phpEx = substr(strrchr(__FILE__, '.'), 1);
  $phpbb_root_path = "../";

/* includes all the libraries etc. required */
  require($phpbb_root_path ."common.php");
  require($phpbb_root_path ."includes/functions_user.php");

// username of the user being added
$username = 'david';

// the user’s password, which is hashed before inserting into the data base
$password = 'password';

// an email address for the user
$email_address = '[email protected]';

// since group IDs may change, you may want to use a query to make sure you are grabbing the
// right default group...
$group_name = ($coppa) ? 'REGISTERED_COPPA' : 'REGISTERED';
$sql = 'SELECT group_id
        FROM ' . GROUPS_TABLE . "
        WHERE group_name = '" . $db->sql_escape($group_name) . "'
            AND group_type = " . GROUP_SPECIAL;

$result = $db->sql_query($sql);

$row = $db->sql_fetchrow($result);

$group_id = $row['group_id'];

// timezone of the user... Based on GMT in the format of '-6', '-4', 3, 9 etc...
$timezone = '8';

$language = 'zh_cmn_hans';

// here if the user is inactive and needs to activate thier account through an activation link
// sent in an email we need to set the activation key for the user... (the goal is to get it about
// 10 chars of randomization) you can use any randomization method you want, for this example,
// I’ll use the following...
$user_actkey = md5(rand(0, 100) . time());
$user_actkey = substr($user_actkey, 0, rand(8, 12));

// IP address of the user stored in the Data base.
$user_ip = $user->ip;

// registration time of the user, timestamp format.
$registration_time = time();

// time since the user is inactive. timestamp.
$user_inactive_time = time();

$user_row = array(
    'username'              => $username,
    'user_password'         => phpbb_hash($password),
    'user_email'            => $email_address,
    'group_id'              => (int) $group_id,
    'user_timezone'         => (float) $timezone,
    'user_dst'              => $is_dst,
    'user_lang'             => $language,
    'user_type'             => '0',
    'user_actkey'           => $user_actkey,
    'user_ip'               => $user_ip,
    'user_regdate'          => $registration_time,
	'user_dateformat'   	=> 'D M d, Y g:i a'

$user_id = user_add($user_row);

echo 'userid' . $user_id;


Click here for PHP Cross Reference of Architecture PHPBB3


2 Responses to “phpBB Forum user registration integration”

  1. great snippet of code. thanks for doing the work. it’s appreciated.

Write a Comment

Captcha *

%d bloggers like this: