Вход Регистрация
Файл: hashtag.io-2629a1a4ea078149b002e45e2e12bb946062c2b8/config/class/login.class.php
Строк: 188
<?php
  
class login_class{

    protected 
$db;
    protected 
$DIR;
    protected 
$gmail;
    protected 
$gmail_password;

    public function 
__construct(){
      
$db N::_DB();
      
$DIR N::$DIR;
      
$GMAIL N::$GMAIL;
      
$GMAIL_PASS N::$GMAIL_PASSWORD;

      
$this->db $db;
      
$this->DIR $DIR;
      
$this->gmail $GMAIL;
      
$this->gmail_password $GMAIL_PASS;
    }

    public function 
LOGIN($username$password$ip){
      if ((
$username || $password) == "") {
        return 
"Your values are missing";
      } else {
        
$query $this->db->prepare("SELECT password FROM users WHERE username = :username LIMIT 1");
        
$query->execute(array(":username" => $username));
        if (
$query->rowCount() == 0) {
          return 
"Incorrect details";
        } else {
          
$row $query->fetch(PDO::FETCH_OBJ);
          
$pass $row->password;
          if (
password_verify($password$pass)) {
            
$iquery $this->db->prepare("SELECT id FROM users WHERE username = :username AND password = :password LIMIT 1");
            
$iquery->execute(array(":username" => $username":password" => $pass));
            
$irow $iquery->fetch(PDO::FETCH_OBJ);
            
$id $irow->id;
            
$random = new random;
            
$os $random->getOS();
            
$browser $random->getBrowser();
            
$lquery $this->db->prepare("INSERT INTO login(user_id, ip, time, os, browser) VALUES(:id, :ip, now(), :os, :browser)");
            
$lquery->execute(array(":id" => $id":ip" => $ip":os" => $os":browser" => $browser));
            
$_SESSION['id'] = $id;
            return 
"Successfull";
          } else {
            return 
"Incorrect password";
          }
        }
      }
    }

    public function 
LOGOUT(){
      
$id $_SESSION['id'];

      
$query $this->db->prepare("SELECT MAX(login_id) AS myGet FROM login WHERE user_id = :id LIMIT 1");
      
$query->execute(array(":id" => $id));
      
$row $query->fetch(PDO::FETCH_OBJ);
      
$login_id $row->myGet;

      
$mquery $this->db->prepare("UPDATE login SET logout = now() WHERE login_id = :id");
      
$mquery->execute(array(":id" => $login_id));
      
session_destroy();
      
header("Location: login");
    }

    public function 
REGISTER($username$firstname$surname$email$password$pri_ip){
      include 
'settings.class.php';
      include 
'universal.class.php';
      include 
'PHPMailerAutoload.php';

      
$mail = new PHPMailer;
      
$settings = new settings;
      
$universal = new universal;

      
$password_h password_hash($passwordPASSWORD_DEFAULT);

      
$fquery $this->db->prepare("SELECT id FROM users WHERE username = :username");
      
$fquery->execute(array(":username" => $username));
      
$squery $this->db->prepare("SELECT id FROM users WHERE email = :email");
      
$squery->execute(array(":email" => $email));

      if ((
$username || $firstname || $surname || $email || $password) == "") {
        return 
"Some values are missing";
      } else if (!
filter_var($emailFILTER_VALIDATE_EMAIL) === true) {
        return 
"Incorrect email";
      } else if (
$fquery->rowCount() > 0) {
        return 
"username already exists";
      } else if (
$squery->rowCount() > 0) {
        return 
"Email already exists";
      } else {

        
$random = new random;
        
$os $random->getOS();
        
$browser $random->getBrowser();

        
$query $this->db->prepare("INSERT INTO users(username, firstname, surname, email, password, signup, last_login, pri_ip, pri_os, pri_browser) VALUES(:username, :firstname, :surname, :email, :password, now(), now(), :ip, :os, :browser)");
        
$query->execute(array(":username" => $username":firstname" => $firstname":surname" => $surname":email" => $email":password" => $password_h":ip" => $pri_ip":os" => $os":browser" => $browser));

        
$uid $this->db->lastInsertId();

        
$email $universal->GETsDetails($uid"email");

        
$url $universal->urlChecker($this->DIR);

        
// $mail->SMTPDebug = 3;                               // Enable verbose debug output
        
$mail->isSMTP();                                      // Set mailer to use SMTP
        
$mail->Host 'smtp.gmail.com';  // Specify main and backup SMTP servers
        
$mail->SMTPAuth true;                               // Enable SMTP authentication
        
$mail->Username $this->gmail;                 // SMTP username
        
$mail->Password $this->gmail_password;                           // SMTP password
        
$mail->SMTPSecure 'tls';                            // Enable TLS encryption, `ssl` also accepted
        
$mail->Port 587;                                    // TCP port to connect to

        
$mail->From $this->gmail;
        
$mail->FromName "Team Instagram";
        
$mail->addAddress($email);               // Name is optional
        
$mail->addReplyTo($this->gmail'Team Instagram');
        
// $mail->addCC('cc@example.com');
        // $mail->addBCC('bcc@example.com');

        
$mail->addCC($this->gmail);
        
$mail->addBCC($this->gmail);

        
$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
        
$mail->addAttachment('/tmp/image.jpg''new.jpg');    // Optional name
        
$mail->isHTML(true);                                  // Set email format to HTML

        
$mail->Subject 'Verify your Instagram account';

        
$mail->Body "<span>Hello, You received this message because you created an account on INSTAGRAM.<span><br>
        <span>Click on button below to verify your Instagram account and explore.</span><br><br>
        <a href='
{$url}/ajaxify/deep/most/topmost/activate.php?id={$uid}' style='border: 1px solid #1b9be9; font-weight: 600; color: #fff; border-radius: 3px; cursor: pointer; outline: none; background: #1b9be9; padding: 4px 15px; display: inline-block; text-decoration: none;'>Activate</a>";

        if (!
file_exists("../../users/$uid")) {
          
mkdir("../../users/$uid"0755);
          
mkdir("../../users/$uid/avatar"0755);
        }
        
$avatar "../../images/avatars/spacecraft.jpg";
        
$dest "../../users/$uid/avatar/spacecraft.jpg";
        
copy($avatar$dest);
        
        
$settings->settingsDefaults($uid);

        
$_SESSION['id'] = $uid;

        if(
$mail->send() || !$mail->send()){
          return 
"Successfull";
        } 

      }

    }

    public function 
usernameChecker($value){
      
$query $this->db->prepare("SELECT id FROM users WHERE username = :username");
      
$query->execute(array(":username" => $value));
      
$count $query->rowCount();
      if (
$count == 0) {
        echo 
"<span class='checker_text'>username is available</span><span class='checker_icon'>
          <i class='fa fa-smile-o' aria-hidden='true'></i></span>"
;
      } else if (
$count 0) {
        echo 
"<span class='checker_text'>username already taken</span><span class='checker_icon'>
          <i class='fa fa-frown-o' aria-hidden='true'></i></span>"
;
      }
    }

    public function 
activateAccount($id){
      
$settings = new settings;

      if (!
file_exists("$id")) {
        
mkdir("users/$id"0755);
        
mkdir("users/$id/avatar"0755);
      }
      
$avatar "images/avatars/spacecraft.jpg";
      
$dest "users/$id/avatar/spacecraft.jpg";
      
copy($avatar$dest);

      
$settings->settingsDefaults($id);

      
$query $this->db->prepare("UPDATE users SET email_activated = :act WHERE id = :user");
      
$query->execute(array(":act" => "yes"":user" => $id));
    }

  }
?>
Онлайн: 1
Реклама