phpBB Forum user registration integration

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


  1. John Harre 19/12/2010 at 2:09 pm

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

    1. David 19/12/2010 at 2:14 pm

      you are welcome, please do let’s me know if that’s any better way or solution.


Leave a Reply, pub-3772983857049267, DIRECT, f08c47fec0942fa0
%d bloggers like this: