Advertisement
Guest User

register

a guest
Jul 24th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.22 KB | None | 0 0
  1. <?php
  2. require(LanguagePath . 'register.php');
  3. $UserName   = '';
  4. $Email      = '';
  5. $Password   = '';
  6. $VerifyCode = '';
  7. $Error    = '';
  8. $ErrorCode     = 104000;
  9. if ($_SERVER['REQUEST_METHOD'] == 'POST' || $IsApp) {
  10.     if (!ReferCheck(Request('Post', 'FormHash'))) {
  11.         AlertMsg($Lang['Error_Unknown_Referer'], $Lang['Error_Unknown_Referer'], 403);
  12.     }
  13.     $UserName   = strtolower(Request('Post', 'UserName'));
  14.     $Email      = strtolower(Request('Post', 'Email'));
  15.     $Password   = Request('Post', 'Password');
  16.     $VerifyCode = intval(Request('Post', 'VerifyCode'));
  17.     do{
  18.         if ($Config['CloseRegistration'] === 'true') {
  19.             $Error     = $Lang['Prohibit_Registration'];
  20.             $ErrorCode = 104006;
  21.             break;
  22.         }
  23.  
  24.  
  25.         if (!($UserName && $Email && $Password && $VerifyCode)) {
  26.             $Error = $Lang['Forms_Can_Not_Be_Empty'];
  27.             $ErrorCode = 104001;
  28.             break;
  29.         }
  30.  
  31.  
  32.         if (!IsName($UserName)) {
  33.             $Error = $Lang['UserName_Error'];
  34.             $ErrorCode = 104002;
  35.             break;
  36.         }
  37.  
  38.  
  39.         if (!IsEmail($Email)) {
  40.             $Error = $Lang['Email_Error'];
  41.             $ErrorCode = 104003;
  42.             break;
  43.         }
  44.  
  45.  
  46.         session_start();
  47.         $TempVerificationCode = "";
  48.         if (isset($_SESSION[PREFIX . 'VerificationCode'])) {
  49.             $TempVerificationCode = intval($_SESSION[PREFIX . 'VerificationCode']);
  50.             unset($_SESSION[PREFIX . 'VerificationCode']);
  51.         } elseif (DEBUG_MODE === true) {
  52.             $TempVerificationCode = 1234;
  53.         } else {
  54.             $Error = $Lang['VerificationCode_Error'];
  55.             $ErrorCode     = 104004;
  56.             break;
  57.         }
  58.         session_write_close();
  59.         if ($VerifyCode !== $TempVerificationCode) {
  60.             $Error = $Lang['VerificationCode_Error'];
  61.             $ErrorCode     = 104004;
  62.             break;
  63.         }
  64.  
  65.  
  66.         $UserExist = $DB->single("SELECT ID FROM " . PREFIX . "users WHERE UserName = :UserName", array(
  67.             'UserName' => $UserName
  68.         ));
  69.         if ($UserExist) {
  70.             $Error = $Lang['This_User_Name_Already_Exists'];
  71.             $ErrorCode = 104005;
  72.             break;
  73.         }
  74.  
  75.         $NewUserSalt     = mt_rand(100000, 999999);
  76.         $NewUserPassword = md5($Password . $NewUserSalt);
  77.         $NewUserData     = array(
  78.             'ID' => null,
  79.             'UserName' => $UserName,
  80.             'Salt' => $NewUserSalt,
  81.             'Password' => $NewUserPassword,
  82.             'UserMail' => $Email,
  83.             'UserHomepage' => '',
  84.             'PasswordQuestion' => '',
  85.             'PasswordAnswer' => '',
  86.             'UserSex' => 0,
  87.             'NumFavUsers' => 0,
  88.             'NumFavTags' => 0,
  89.             'NumFavTopics' => 0,
  90.             'NewReply' => 0,
  91.             'NewMention' => 0,
  92.             'NewMessage' => 0,
  93.             'Topics' => 0,
  94.             'Replies' => 0,
  95.             'Followers' => 0,
  96.             'DelTopic' => 0,
  97.             'GoodTopic' => 0,
  98.             'UserPhoto' => '',
  99.             'UserMobile' => '',
  100.             'UserLastIP' => $CurIP,
  101.             'UserRegTime' => $TimeStamp,
  102.             'LastLoginTime' => $TimeStamp,
  103.             'LastPostTime' => $TimeStamp + intval($Config['FreezingTime']),
  104.             'BlackLists' => '',
  105.             'UserFriend' => '',
  106.             'UserInfo' => '',
  107.             'UserIntro' => '',
  108.             'UserIM' => '',
  109.             'UserRoleID' => 1,
  110.             'UserAccountStatus' => 1,
  111.             'Birthday' => date("Y-m-d", $TimeStamp)
  112.         );
  113.        
  114.         $DB->query('INSERT INTO `' . PREFIX . 'users`
  115.             (
  116.                 `ID`, `UserName`, `Salt`, `Password`, `UserMail`,
  117.                 `UserHomepage`, `PasswordQuestion`, `PasswordAnswer`,
  118.                 `UserSex`, `NumFavUsers`, `NumFavTags`, `NumFavTopics`,
  119.                 `NewReply`, `NewMention`, `NewMessage`, `Topics`, `Replies`, `Followers`,
  120.                 `DelTopic`, `GoodTopic`, `UserPhoto`, `UserMobile`,
  121.                 `UserLastIP`, `UserRegTime`, `LastLoginTime`, `LastPostTime`,
  122.                 `BlackLists`, `UserFriend`, `UserInfo`, `UserIntro`, `UserIM`,
  123.                 `UserRoleID`, `UserAccountStatus`, `Birthday`
  124.             )
  125.             VALUES
  126.             (
  127.                 :ID, :UserName, :Salt, :Password, :UserMail,
  128.                 :UserHomepage, :PasswordQuestion, :PasswordAnswer,
  129.                 :UserSex, :NumFavUsers, :NumFavTags, :NumFavTopics,
  130.                 :NewReply, :NewMention, :NewMessage, :Topics, :Replies, :Followers,
  131.                 :DelTopic, :GoodTopic, :UserPhoto, :UserMobile,
  132.                 :UserLastIP, :UserRegTime, :LastLoginTime, :LastPostTime,
  133.                 :BlackLists, :UserFriend, :UserInfo, :UserIntro, :UserIM,
  134.                 :UserRoleID, :UserAccountStatus, :Birthday
  135.             )', $NewUserData);
  136.         $CurUserID      = $DB->lastInsertId();
  137.         //更新全站统计数据
  138.         $NewConfig      = array(
  139.             "NumUsers" => $Config["NumUsers"] + 1,
  140.             "DaysUsers" => $Config["DaysUsers"] + 1
  141.         );
  142.         UpdateConfig($NewConfig);
  143.         $TemporaryUserExpirationTime = 30 * 86400 + $TimeStamp;
  144.         if ($CurUserID == 1) {
  145.             $DB->query("UPDATE `" . PREFIX . "users` SET UserRoleID=5 WHERE `ID`=?", array(
  146.                 $CurUserID
  147.             ));
  148.         }
  149.         if (extension_loaded('gd')) {
  150.             require(LibraryPath . "MaterialDesign.Avatars.class.php");
  151.             $Avatar = new MDAvtars(mb_substr($UserName, 0, 1, "UTF-8"), 256);
  152.             $Avatar->Save(__DIR__ . '/../upload/avatar/large/' . $CurUserID . '.png', 256);
  153.             $Avatar->Save(__DIR__ . '/../upload/avatar/middle/' . $CurUserID . '.png', 48);
  154.             $Avatar->Save(__DIR__ . '/../upload/avatar/small/' . $CurUserID . '.png', 24);
  155.             $Avatar->Free();
  156.         }
  157.         if (!$IsApp) {
  158.             SetCookies(array(
  159.                 'UserID' => $CurUserID,
  160.                 'UserExpirationTime' => $TemporaryUserExpirationTime,
  161.                 'UserCode' => md5($NewUserPassword . $NewUserSalt . $TemporaryUserExpirationTime . SALT)
  162.             ), 30);
  163.             Redirect('', 'registered');
  164.         }
  165.     }while(false);
  166. }
  167.  
  168. $DB->CloseConnection();
  169.  
  170. $PageTitle   = $Lang['Sign_Up'];
  171. $ContentFile = $TemplatePath . 'register.php';
  172. include($TemplatePath . 'layout.php');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement