Advertisement
Guest User

Untitled

a guest
Jan 28th, 2017
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.50 KB | None | 0 0
  1. <?php
  2. //Файл: registration.php
  3. //Призначення: Реєстрація користувачів на сайті
  4.  
  5. define( '_INCLUDE_', 1 );
  6.  
  7. session_start();
  8.  
  9. include_once("system/site_data.php");
  10. include_once("system/functions/db_connect.php");
  11. include_once("system/functions/global_func.php");
  12.  
  13. if(isset($_GET["action"])) {
  14.     $action = $_GET["action"];
  15. }
  16.  
  17. if(isset($_GET["verify_code"])) {
  18.     $verify_code = $_GET["verify_code"];
  19. }
  20.  
  21. switch($action) {     //Акстивація аккаунту
  22.     case "verification":
  23.         $page_content_inc = "verification";     //Вказуємо який шаблон підключити
  24.  
  25.         if(isset($verify_code)) {
  26.             $check_verification_code = mysql_query("SELECT id, user_id, used FROM verification WHERE verification_code='$verify_code'");
  27.             $check_verification_code_array = mysql_fetch_array($check_verification_code);     //Перевіряємо чи існує такий код
  28.             if($check_verification_code_array["used"] == 0) {     //Якщо код вже використали - нічого не робимо
  29.                 $user_id = $check_verification_code_array["user_id"];     //ID аккаунту який буде активовано
  30.  
  31.                 //Оновлюємо дані аккаунту
  32.  
  33.                 $account_update_query = mysql_query("UPDATE users SET user_group='1', max_courses_count='1', verified='1', l_score='15'");
  34.                 $verification_code_update_query = mysql_query("UPDATE verification SET used='1' WHERE verification_code='$verify_code'");
  35.             }
  36.         }
  37.     break;
  38.  
  39.     default:
  40.         $page_content_inc = "registration";     //Шаблон
  41.  
  42.         if(!isset($_SESSION["email"])) {     //Перевіряємо чи не увійшов вже користувач
  43.             if(isset($_POST["registration_submit"])) {     //Перевіряємо, чи відправлені дані для реєстрації...
  44.                 if(!empty($_POST["email"]) and !empty($_POST["nickname"]) and !empty($_POST["password"]) and !empty($_POST["password_repeat"])) {     //...і чи вони не пусті
  45.  
  46.                     //Перевірка на відповідність данних регулярним виразам
  47.  
  48.                     $user_email = trim($_POST["email"]);     //Обробляємо дані
  49.                     $user_nickname = trim($_POST["nickname"]);
  50.                     $user_password = trim($_POST["password"]);
  51.                     $user_password_repeat = trim($_POST["password_repeat"]);
  52.  
  53.                     $preg_match_errors = array();
  54.  
  55.                     if(!preg_match("/^([A-Za-z0-9_\.-]+)@([A-Za-z0-9_\.-]+)\.([A-Za-z\.]{2,6})/", $user_email) and !strlen($user_email) <= 50) {
  56.                         $preg_match_errors[] = "Неправильний E-Mail!";
  57.                     }
  58.  
  59.                     if(!preg_match("/[A-Za-z_]{4,50}$/", $user_nickname)) {
  60.                         $preg_match_errors[] = "Неправильний нік!";
  61.                     }
  62.  
  63.                     if(!preg_match("/[A-Za-z0-9_]{5,50}$/", $user_password)) {
  64.                         $preg_match_errors[] = "Неправильний пароль!";
  65.                     }
  66.  
  67.                     if(count($preg_match_errors) == 0) {
  68.  
  69.                         //Перевірка на унікальність ніку та E-Mail'у
  70.  
  71.                         $user_nickname_check = mysql_query("SELECT id FROM users WHERE LOWER(nickname) LIKE '%".$user_nickname."%'");
  72.                         $user_nickname_check_array = mysql_fetch_array($user_nickname_check);
  73.                         $user_email_check = mysql_query("SELECT id FROM users WHERE LOWER(email) LIKE '%".strtolower($user_email)."%'");
  74.                         $user_email_check_array = mysql_fetch_array($user_email_check);
  75.  
  76.                         if($user_nickname_check_array == false and $user_email_check_array == false) {
  77.                             if($user_password == $user_password_repeat) {     //Перевіряємо, чи паролі співпадають
  78.                                 $verification_code = gen_string(32);     //Генеруємо випадковий код активації
  79.                                 $password_hash = md5(md5($user_password));     //Хешуємо пароль
  80.                                 $date = date("Y-m-d H:m:s");     //Поточна дата
  81.  
  82.                                 //Вставка даних в базу
  83.  
  84.                                 $user_create_query = mysql_query("INSERT INTO users SET nickname='$user_nickname', password='$password_hash', email='$user_email', rdate='$date'");
  85.                                 $user_data = mysql_query("SELECT id FROM users WHERE nickname='$user_nickname'");
  86.                                 $user_data_array = mysql_fetch_array($user_data);
  87.                                 $user_id = $user_data_array["id"];
  88.                                 $verification_create_query = mysql_query("INSERT INTO verification SET user_id='$user_id', verification_code='$verification_code'");
  89.                             }
  90.                         }
  91.                     }
  92.                 }
  93.             }
  94.         }
  95.     break;
  96. }
  97.  
  98. include_once("template/".$site_template."/main.php");
  99. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement