Thread: Registration
View Single Post
  #6  
Old 07-12-2009, 02:10 PM
James Birkett James Birkett is offline
 
Join Date: Jun 2009
Posts: 633
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hey Ronald0,
by default, vBulletin have made usernames case insensitive in their code so a regular expression will not change that.
Navigate to includes/class_dm_user.php and open it up.
Look for the line of code that shows:
PHP Code:
if (!preg_match('#' str_replace('#''\#'$this->registry->options['usernameregex']) . '#siU'$username)) 
(Note the 'i'? That states it is case insensitive).
Change this to:
PHP Code:
if (!preg_match('#' str_replace('#''\#'$this->registry->options['usernameregex']) . '#sU'$username)) 
I have not tried this myself, i'm just going off the basic PHP syntax - implement at your own risk (although there's no risk and it's easily revertable).
Now use the regular expression:
PHP Code:
^[A-Z][a-z]+$ 
This is basically saying, only allow 1 capital letter at the beginning of the string (note, there's no + icon to state more than 1), followed by 1 or more lowercase letters (note the + icon is there). To allow numbers, just put 0-9 inside the ending bracket set.
You will also want to allow spaces and such, make sure these are also added in the ending bracket set. Adding anything in the starting bracket set will only allow 1 of them (so it's best to keep it as just A-Z, at least then the usernames are beginning with a letter)
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02284 seconds
  • Memory Usage 1,774KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete