Menu
Forums
All threads
Latest threads
New posts
Trending threads
New posts
Search forums
Trending
What's new
New posts
New profile posts
Latest activity
Members
Current visitors
New profile posts
Search profile posts
Upgrades
Log in
Register
What's new
Search
Search
Search titles only
By:
All threads
Latest threads
New posts
Trending threads
New posts
Search forums
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
Server Development
Habbo Retros
Habbo Q&A
MOD- names, prevent users from taking the suffix name
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="JayC" data-source="post: 423325" data-attributes="member: 36373"><p>I forgot to attach my code * -</p><p></p><p>But he wants their username to change on the CMS, Not just the emulator.</p><p>-----------------------------------------------------------------------------------------------------------</p><p>Alrighty So to answer this 2 part question:</p><p></p><p>First I'll supply the code for part 2 which is the blocking certain names for registering:</p><p></p><p>First Create The Table "registerblock" with the provided SQL.</p><p>[CODE]CREATE TABLE `registerblock` (</p><p> `word` varchar(80) NOT NULL,</p><p> `EntireName` enum('0','1') NOT NULL DEFAULT '0',</p><p> PRIMARY KEY (`word`)</p><p>) ENGINE=InnoDB DEFAULT CHARSET=utf8;</p><p>[/CODE]</p><p>"Word" will be the character sequence you would like to block</p><p>"EntireName" is so you can say if the username is equal to, or if the username contains</p><p>Equal To = 1</p><p>Contains = 0</p><p></p><p>Example of how this works is if you put the value for word as "MOD-" and set "EntireName" equal to 1 , their username would need to be "MOD-" if you set "EntireName" equal to 0, their username could be "MOD-Name" or "RealMod-" and it will get blocked.</p><p></p><p>Now to add the code that actual blocks the name, Inside your app -> class.users.php file add a new function:</p><p></p><p>[CODE]final public function allowedUsername($username){</p><p> $registerBlocks = mysql_query("SELECT * FROM registerblock");</p><p> while($word = mysql_fetch_assoc($registerBlocks)){</p><p> if($word['EntireName'] == 1){</p><p> if($username == $word['word']){</p><p> return false;</p><p> }</p><p> }else{</p><p> if(strpos($username, $word['word']) !== false){</p><p> return false;</p><p> }</p><p> }</p><p> }</p><p> return true;</p><p> }[/CODE]</p><p></p><p>Finally, in your Register() function add a new check below the validName to call to our new function allowedUsername</p><p></p><p>Example Code:</p><p></p><p>[CODE]</p><p>if($this->validName($template->form->reg_username)){</p><p> if($this>allowedUsername($template>form>reg_username)){</p><p> .....</p><p> }</p><p> }else{</p><p> $template->form->error = 'Username Not Allowed';</p><p> return;</p><p> }</p><p>} else {</p><p>$template->form->error = 'Username is invalid';</p><p>return;</p><p>}[/CODE]</p><p>-----------------------------------------------------------------------------------------------------------</p><p>How to add MOD- to your username Solution 1 <strong>UNTESTED!!!!!!</strong></p><p></p><p>In your Login function you have this:</p><p>[CODE]$this->turnOn($template->form->reg_username);[/CODE]</p><p>That is what will send your username of who is logging in... Add this method:</p><p></p><p>Simple Explanation: If user logs in, and rank is equal to 5 , and their username does not start with MOD- it will update their username before assigning the session (See below). If they are not rank 5, and their username starts with "MOD-" (Maybe because they were deranked?) it will automatic revert it back to normal.</p><p></p><p>No reason to tell the user their username is changed because it will show it when they login (and if they don't pay attention they are dumb).</p><p>[CODE]final public function staffUsername($username){</p><p> $returnUsername = $username;</p><p> $findUserInfo = mysql_fetch_assoc(mysql_query("SELECT `rank` FROM `users` WHERE `username` = '".$username."' LIMIT 1"));</p><p> if($findUserInfo['rank'] == '5'){ //Put Your Moderator Rank Here</p><p> if(substr( $username, 0, 4 ) != "MOD-"){</p><p> mysql_query("UPDATE `users` SET `username` = 'MOD-".$username."' WHERE `username` = '".$username."' LIMIT 1");</p><p> $returnUsername = "MOD-".$username;</p><p> }</p><p> }else{</p><p> if(substr( $username, 0, 4 ) === "MOD-"){</p><p> mysql_query("UPDATE `users` SET `username` = '".substr($username, 4)."' WHERE `username` = '".$username."' LIMIT 1");</p><p> $returnUsername = substr($username, 4);</p><p> }</p><p> }</p><p> return $returnUsername;</p><p> }[/CODE]</p><p></p><p>So everywhere you see this:</p><p>[CODE]$this->turnOn($template->form->reg_username);[/CODE]</p><p></p><p>Replace with this:</p><p>[CODE]$this->turnOn(staffUsername($template->form->reg_username));[/CODE]</p><p></p><p>And Done!</p></blockquote><p></p>
[QUOTE="JayC, post: 423325, member: 36373"] I forgot to attach my code * - But he wants their username to change on the CMS, Not just the emulator. ----------------------------------------------------------------------------------------------------------- Alrighty So to answer this 2 part question: First I'll supply the code for part 2 which is the blocking certain names for registering: First Create The Table "registerblock" with the provided SQL. [CODE]CREATE TABLE `registerblock` ( `word` varchar(80) NOT NULL, `EntireName` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`word`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; [/CODE] "Word" will be the character sequence you would like to block "EntireName" is so you can say if the username is equal to, or if the username contains Equal To = 1 Contains = 0 Example of how this works is if you put the value for word as "MOD-" and set "EntireName" equal to 1 , their username would need to be "MOD-" if you set "EntireName" equal to 0, their username could be "MOD-Name" or "RealMod-" and it will get blocked. Now to add the code that actual blocks the name, Inside your app -> class.users.php file add a new function: [CODE]final public function allowedUsername($username){ $registerBlocks = mysql_query("SELECT * FROM registerblock"); while($word = mysql_fetch_assoc($registerBlocks)){ if($word['EntireName'] == 1){ if($username == $word['word']){ return false; } }else{ if(strpos($username, $word['word']) !== false){ return false; } } } return true; }[/CODE] Finally, in your Register() function add a new check below the validName to call to our new function allowedUsername Example Code: [CODE] if($this->validName($template->form->reg_username)){ if($this>allowedUsername($template>form>reg_username)){ ..... } }else{ $template->form->error = 'Username Not Allowed'; return; } } else { $template->form->error = 'Username is invalid'; return; }[/CODE] ----------------------------------------------------------------------------------------------------------- How to add MOD- to your username Solution 1 [B]UNTESTED!!!!!![/B] In your Login function you have this: [CODE]$this->turnOn($template->form->reg_username);[/CODE] That is what will send your username of who is logging in... Add this method: Simple Explanation: If user logs in, and rank is equal to 5 , and their username does not start with MOD- it will update their username before assigning the session (See below). If they are not rank 5, and their username starts with "MOD-" (Maybe because they were deranked?) it will automatic revert it back to normal. No reason to tell the user their username is changed because it will show it when they login (and if they don't pay attention they are dumb). [CODE]final public function staffUsername($username){ $returnUsername = $username; $findUserInfo = mysql_fetch_assoc(mysql_query("SELECT `rank` FROM `users` WHERE `username` = '".$username."' LIMIT 1")); if($findUserInfo['rank'] == '5'){ //Put Your Moderator Rank Here if(substr( $username, 0, 4 ) != "MOD-"){ mysql_query("UPDATE `users` SET `username` = 'MOD-".$username."' WHERE `username` = '".$username."' LIMIT 1"); $returnUsername = "MOD-".$username; } }else{ if(substr( $username, 0, 4 ) === "MOD-"){ mysql_query("UPDATE `users` SET `username` = '".substr($username, 4)."' WHERE `username` = '".$username."' LIMIT 1"); $returnUsername = substr($username, 4); } } return $returnUsername; }[/CODE] So everywhere you see this: [CODE]$this->turnOn($template->form->reg_username);[/CODE] Replace with this: [CODE]$this->turnOn(staffUsername($template->form->reg_username));[/CODE] And Done! [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
Server Development
Habbo Retros
Habbo Q&A
MOD- names, prevent users from taking the suffix name
Top