Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- @param username
- @param pass
- @param permanent
- return:
- true
- r0 = incorrect data
- r1 = email not confirm
- */
- class Login {
- public function __construct($username, $pass, $permament) {
- $this->username = $username;
- $this->pass = $pass;
- $this->permament = $permament;
- }
- public function correctData() {
- // INPUT DATA
- $args = array(
- 'username' => $this->username
- );
- // IF EXIST THIS USERNAME
- $result = dibi::query("SELECT rand FROM users WHERE %and", $args);
- if (count($result) > 0) {
- $rand = $result->fetchSingle();
- $args['pass'] = hash_hmac("sha256", $this->pass, $rand);
- // IF IS CORRECT PASSWORD
- $result = dibi::query("SELECT id, rank, confirm FROM users WHERE %and", $args);
- if (count($result) == 0) return 'r0';
- else {
- $data = $result->fetch();
- // IF IS ACCOUNT CONFIRM
- if ($data['confirm'] == '0') return 'r1';
- else {
- // COOKIES
- session_start();
- $_SESSION['username'] = $this->username;
- $_SESSION['id'] = $data['id'];
- $_SESSION['rank'] = $data['rank'];
- // PERMAMENT
- if ($this->permament === true) {
- $token = md5(uniqid(mt_rand(), true));
- setcookie("login", $_SESSION['id'] . ":" . $token, strtotime("+1 month"), "/");
- $arr = array(
- 'user_id' => $_SESSION['id'],
- 'token' => $token
- );
- dibi::query('INSERT INTO users_permanent', $arr);
- }
- // INSERT VISITOR DATA
- $browser = get_browser(null, true);
- $arr = array(
- 'user_id' => $_SESSION['id'],
- 'ip' => $_SERVER['SERVER_ADDR'],
- 'browser' => $browser['browser'],
- 'os' => $browser['platform']
- );
- dibi::query('INSERT INTO users_log', $arr);
- return true;
- }
- }
- }
- else return 'r0';
- }
- }
Add Comment
Please, Sign In to add comment