Source for file register.php
Documentation is available at register.php
* $Header: /cvsroot/bitweaver/_bit_users/register.php,v 1.28 2006/10/12 06:01:50 spiderr Exp $
* Copyright (c) 2004 bitweaver.org
* Copyright (c) 2003 tikwiki.org
* Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al.
* All Rights Reserved. See copyright.txt for details and a complete list of authors.
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details
* $Id: register.php,v 1.28 2006/10/12 06:01:50 spiderr Exp $
if( isset ( $_REQUEST['tk'] ) ) {
unset ( $_REQUEST['tk'] );
require_once( '../bit_setup_inc.php' );
require_once( KERNEL_PKG_PATH. 'BitBase.php' );
include_once( KERNEL_PKG_PATH. 'notification_lib.php' );
// Permission: needs p_register
$gBitSystem->verifyFeature( 'users_allow_register' );
require_once( USERS_PKG_PATH. 'BaseAuth.php' );
if( $gBitUser->isRegistered() ) {
$url = $gBitSystem->getDefaultPage();
if( isset ( $_REQUEST["register"] ) ) {
// novalidation is set to yes if a user confirms his email is correct after tiki fails to validate it
if( $gBitSystem->isFeatureActive( 'users_random_number_reg' ) ) {
if( ( empty( $reg['novalidation'] ) || $reg['novalidation'] != 'yes' )
&& ( !isset ( $_SESSION['captcha'] ) || $_SESSION['captcha'] != md5( $reg['captcha'] ) ) )
$errors['captcha'] = "Wrong registration code";
if( $gBitSystem->isFeatureActive( 'users_register_require_passcode' ) ) {
if( $reg["passcode"] != $gBitSystem->getConfig( "users_register_passcode",md5( $gBitUser->genPass() ) ) ) {
$errors['passcode'] = 'Wrong passcode! You need to know the passcode to register at this site';
if( $newUser->register( $reg ) ) {
$gBitUser->mUserId = $newUser->mUserId;
if ( !empty( $_REQUEST['group'] ) ) {
$groupInfo = $gBitUser->getGroupInfo( $_REQUEST['group'] );
if ( empty($groupInfo) || $groupInfo['is_public'] != 'y' ) {
$errors[] = "You can't use this group";
$gBitSmarty->assign_by_ref( 'errors', $errors );
$userId = $newUser->getUserId();
$gBitUser->addUserToGroup( $userId, $_REQUEST['group'] );
$gBitUser->storeUserDefaultGroup( $userId, $_REQUEST['group'] );
if( $gBitSystem->isFeatureActive( 'users_validate_user' ) ) {
$gBitSmarty->assign('msg',tra('You will receive an email with information to login for the first time into this site'));
$gBitSmarty->assign('showmsg','y');
if( !empty( $_SESSION['loginfrom'] ) ) {
unset ( $_SESSION['loginfrom'] );
// registration login, fake the cookie so the session gets updated properly.
if( empty($_COOKIE[$user_cookie_site] ) ) {
$url = $newUser->login( $reg['login'], $reg['password'], FALSE, FALSE );
if ( !empty( $_REQUEST['group'] ) && !empty( $groupInfo['after_registration_page'] ) ) {
if ( $newUser->verifyId( $groupInfo['after_registration_page'] ) ) {
$url = BIT_ROOT_URL. "index.php?content_id=". $groupInfo['after_registration_page'];
} elseif( strpos( $groupInfo['after_registration_page'], '/' ) === FALSE ) {
$url = $groupInfo['after_registration_page'];
$gBitSmarty->assign_by_ref( 'errors', $newUser->mErrors );
$gBitSmarty->assign_by_ref( 'errors', $errors );
$gBitSmarty->assign_by_ref( 'reg', $reg );
if( $gBitSystem->isFeatureActive( 'custom_user_fields' ) ) {
$fields= explode( ',', $gBitSystem->getConfig( 'custom_user_fields' ) );
$gBitSmarty->assign('customFields', $fields);
if ($instance && $instance->canManageAuth()) {
$auth_reg_fields = $instance->getRegistrationFields();
foreach (array_keys($auth_reg_fields) as $auth_field) {
$auth_reg_fields[$auth_field]['value'] = $auth_reg_fields[$auth_field]['default'];
$gBitSmarty->assign('auth_reg_fields', $auth_reg_fields);
$languages = $gBitLanguage->listLanguages();
$gBitSmarty->assign_by_ref('languages', $languages);
$gBitSmarty->assign_by_ref('gBitLanguage', $gBitLanguage);
$gBitSmarty->assign('flags', $flags);
$listHash = array( 'is_public'=> 'y', 'sort_mode'=> array('is_default_asc' , 'group_desc_asc') );
$groupList = $gBitUser->getAllGroups( $listHash );
if ( $groupList['cant'] ) {
$gBitSmarty->assign_by_ref( 'groupList', $groupList['data'] );
$gBitSystem->display('bitpackage:users/register.tpl', 'Register' );
|