Advertisement
Guest User

tekbase _ login new

a guest
Oct 4th, 2016
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. <?php
  2. class Login_model extends CI_Model
  3. {
  4. private $login_messages;
  5.  
  6. public function __construct()
  7. {
  8. parent::__construct();
  9.  
  10. $this->load->library('encryption');
  11. $this->encryption->initialize(array(
  12. 'cipher' => 'aes-256',
  13. 'mode' => 'ctr',
  14. 'key' => substr($this->getEncryptionKey(), 0, 31)
  15. )
  16. );
  17. }
  18.  
  19. public function login()
  20. {
  21. if(isset($_POST['login']))
  22. {
  23. if(empty($_POST['mname']))
  24. {
  25. $this->login_messages['error'] = 'Bitte geben sie ihre Kundenkennung an.';
  26. }
  27. else if(strpos($_POST['mname'], 'kd') === false)
  28. {
  29. $this->login_messages['error'] = 'Ihre Kundenkennung muss mit "kd" beginnen.';
  30. }
  31. else if(empty($_POST['mpass']))
  32. {
  33. $this->login_messages['error'] = 'Bitte geben sie ihr Password an.';
  34. }
  35. else
  36. {
  37. $this->db->select('id, member, email, salt, rank, password');
  38. $this->db->where('member', $_POST['mname']);
  39. $memberLogin = $this->db->get('members')->row_array();
  40.  
  41. if($memberLogin['id'] > 0)
  42. {
  43. $subuser = 0;
  44. $pwd = $this->createLoginHash($_POST['mname'], $_POST['mpass'], $memberLogin['salt']);
  45. }
  46. else
  47. {
  48. $subuser = 1;
  49. $pwd = $this->createLoginHash($_POST['mname'], $_POST['mpass'], $memberLogin['salt']);
  50. }
  51.  
  52. if($subuser == 0)
  53. {
  54. var_dump($_POST);
  55.  
  56. if(isset($_POST['remember']))
  57. {
  58. if($_POST['remember'] == 1)
  59. {
  60. setCookie('member', $this->encryption->encrypt('$memberLogin[id]:$memberLogin[member]:$pwd'), time() + 31536000);
  61. }
  62. else
  63. {
  64. setCookie('member', $this->encryption->encrypt('$memberLogin[id]:$memberLogin[member]:$pwd'), time() + 7200);
  65. }
  66. }
  67. }
  68. else
  69. {
  70.  
  71. }
  72. }
  73. }
  74. }
  75.  
  76. public function createLoginHash($name, $pwd, $saltOne, $saltTwo = 'TekBASE-5417', $iterate = 1000)
  77. {
  78. $pwdSplit = str_split($pwd, (strlen($pwd) / 2) +1);
  79. $nameSplit = str_split($name, (strlen($name) / 2) +1);
  80. $hash = '';
  81. for($i = 0; $i <= $iterate; $i++)
  82. {
  83. $hash = hash('sha512', $nameSplit[0].$saltOne.$pwdSplit[0].$hash.$nameSplit[1].$saltTwo.$pwdSplit[1]);
  84. }
  85. return $hash;
  86. }
  87.  
  88. public function getEncryptionKey()
  89. {
  90. $chars = array(
  91. 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
  92. 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
  93. 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
  94. 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
  95. '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '?', '!', '@', '#',
  96. '$', '%', '^', '&', '*', '(', ')', '[', ']', '{', '}', '|', ';', '/', '=', '+'
  97. );
  98.  
  99. shuffle($chars);
  100.  
  101. $num_chars = count($chars) - 1;
  102. $token = '';
  103.  
  104. for ($i = 0; $i < $num_chars; $i++)
  105. {
  106. $token .= $chars[mt_rand(0, $num_chars)];
  107. }
  108.  
  109. return $token;
  110. }
  111.  
  112. public function getMessages()
  113. {
  114. return $this->login_messages;
  115. }
  116. }
  117. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement