b2evolution

Multilingual multiuser multiblog engine

b2evolution Technical Documentation (0.9.x) [ class tree: htsrv ] [ index: htsrv ] [ all elements ]

Source for file register.php

Documentation is available at register.php

  1. <?php
  2. /**
  3.  * Register a new user
  4.  *
  5.  * b2evolution - {@link http://b2evolution.net/}
  6.  * Released under GNU GPL License - {@link http://b2evolution.net/about/license.html}
  7.  * @copyright (c)2003-2005 by Francois PLANQUE - {@link http://fplanque.net/}
  8.  *
  9.  * @package htsrv
  10.  */
  11.  
  12. /**
  13.  * Includes:
  14.  */
  15. require_oncedirname(__FILE__).'/../conf/_config.php' );
  16. require_oncedirname(__FILE__)."/$htsrv_dirout/$core_subdir/_main.php);
  17.  
  18. param'action''string''' );
  19. param'login''string''' );
  20. param'email''string''' );
  21. param'locale''string'$Settings->get('default_locale') );
  22.  
  23. locale_activate$locale );
  24.  
  25. if(!$Settings->get('newusers_canregister'))
  26. {
  27.     $action 'disabled';
  28. }
  29.  
  30. switch$action )
  31. {
  32.     case 'register':
  33.         /*
  34.          * Do the registration:
  35.          */
  36.         param'redirect_to''string'$admin_url.'/b2edit.php' );
  37.         param'pass1''string''' );
  38.         param'pass2''string''' );
  39.  
  40.         // checking login has been typed:
  41.         if$login == '' )
  42.         {
  43.             $error '<strong>'.T_('ERROR').'</strong>: '.T_('please enter a Login');
  44.             break;
  45.         }
  46.  
  47.         // checking the password has been typed twice
  48.         if$pass1 == '' || $pass2 == '' )
  49.         {
  50.             $error '<strong>'.T_('ERROR').'</strong>: '.T_('please enter your password twice');
  51.             break;
  52.         }
  53.  
  54.         // checking the password has been typed twice the same:
  55.         if$pass1 != $pass2 )
  56.         {
  57.             $error '<strong>'.T_('ERROR').'</strong>: '.T_('please type the same password in the two password fields');
  58.             break;
  59.         }
  60.  
  61.         // checking password length
  62.         ifstrlen($pass1$Settings->get('user_minpwdlen') )
  63.         {
  64.             $error sprintfT_('The mimimum password length is %d characters.')$Settings->get('user_minpwdlen'));
  65.             break;
  66.         }
  67.  
  68.         $user_nickname $login;
  69.  
  70.         // checking e-mail address:
  71.         if($email == '')
  72.         {
  73.             $error '<strong>'.T_('ERROR').'</strong>: '.T_('please type your e-mail address');
  74.             break;
  75.         }
  76.         elseif (!is_email($email))
  77.         {
  78.             $error '<strong>'.T_('ERROR').'</strong>: '.T_('the email address is invalid');
  79.             break;
  80.         }
  81.  
  82.         // TODO: START TRANSACTION !!
  83.  
  84.         // checking the login isn't already used by another user:
  85.         if$DB->get_var"SELECT count(*)
  86.                                                 FROM $tableusers
  87.                                                 WHERE user_login = '".$DB->escape($login)."'" ) )
  88.         {
  89.             $error '<strong>'T_('ERROR')"</strong>: "T_('this login is already registered, please choose another one');
  90.             break;
  91.         }
  92.  
  93.         $new_User new User();
  94.         $new_User->set'login'$login );
  95.         $new_User->set'pass'md5($pass1) )// encrypted
  96.         $new_User->set'nickname'$user_nickname );
  97.         $new_User->set'email'$email );
  98.         $new_User->set'ip''127.0.0.1' );
  99.         $new_User->set'domain''localhost' );
  100.         $new_User->set'ip'isset($_SERVER['REMOTE_ADDR']$_SERVER['REMOTE_ADDR''' );
  101.         $new_User->set'domain'isset($_SERVER['REMOTE_HOST']$_SERVER['REMOTE_HOST''' );
  102.         $new_User->set'browser'isset($_SERVER['HTTP_USER_AGENT']$_SERVER['HTTP_USER_AGENT''' );
  103.         $new_User->set_datecreated$localtimenow );
  104.         $new_User->set'level'$Settings->get('newusers_level') );
  105.         $new_User->set'locale'$locale );
  106.         $newusers_grp_ID $Settings->get('newusers_grp_ID');
  107.         // echo $newusers_grp_ID;
  108.         $new_user_Group $GroupCache->get_by_ID$newusers_grp_ID );
  109.         // echo $new_user_Group->disp('name');
  110.         $new_User->setGroup$new_user_Group );
  111.         $new_User->dbinsert();
  112.  
  113.         // TODO: END TRANSACTION !!
  114.  
  115.         // switch to admins locale
  116.         $admin_data get_userdata(1);
  117.         locale_temp_switch$admin_data['user_locale');
  118.         
  119.         $message  T_('new user registration on your blog')":\n\n";
  120.         $message .= T_('Login:')" $login\n\n"T_('Email')"$email\n\n";
  121.         $message .= T_('Manage users')"$admin_url/b2users.php\n\n";
  122.  
  123.         send_mail$admin_emailT_('new user registration on your blog')$message$notify_from );
  124.  
  125.         locale_restore_previous();
  126.         
  127.         // Display confirmation screen:
  128.         requiredirname(__FILE__).'/_reg_complete.php' );
  129.         exit();
  130.         break// case 'register'
  131.  
  132.  
  133.     case 'disabled':
  134.         /*
  135.          * Registration disabled:
  136.          */
  137.         requiredirname(__FILE__).'/_reg_disabled.php' );
  138.         exit();
  139.         break// case 'disabled'
  140.  
  141.  
  142. // switch
  143.  
  144. /*
  145.  * Default: registration form:
  146.  */
  147. param'redirect_to''string'$admin_url.'/b2edit.php' );
  148. // Display reg form:
  149. requiredirname(__FILE__).'/_reg_form.php' );
  150.  
  151. ?>

Documentation generated on Tue, 20 May 2008 01:51:59 +0200 by phpDocumentor 1.4.2