84 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace api;
 | 
						|
use PDO;
 | 
						|
 | 
						|
require_once "./config.php";
 | 
						|
 | 
						|
/**
 | 
						|
 * User Class
 | 
						|
 * Define all functions which either check, update or delete user data
 | 
						|
 */
 | 
						|
class user
 | 
						|
{
 | 
						|
    function checkUser($username, $password): bool
 | 
						|
    {
 | 
						|
        $conn = dbConn();
 | 
						|
        $stmt = $conn->prepare("SELECT * FROM users WHERE username = :username");
 | 
						|
        $stmt->bindParam(":username", $username);
 | 
						|
        $stmt->execute();
 | 
						|
        
 | 
						|
        // set the resulting array to associative
 | 
						|
        $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
 | 
						|
        
 | 
						|
        if ($result)
 | 
						|
        {
 | 
						|
            if (password_verify($password, $result[0]["password"]))
 | 
						|
            {
 | 
						|
                return true;
 | 
						|
            }
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
 | 
						|
    function createToken(): string
 | 
						|
    {
 | 
						|
        return uniqid("rpe-");
 | 
						|
    }
 | 
						|
 | 
						|
    function checkEmail($email): bool
 | 
						|
    {
 | 
						|
        $conn = dbConn();
 | 
						|
        $stmt = $conn->prepare("SELECT * FROM users WHERE email = :email");
 | 
						|
        $stmt->bindParam(":email", $email);
 | 
						|
        $stmt->execute();
 | 
						|
 | 
						|
        // set the resulting array to associative
 | 
						|
        $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
 | 
						|
 | 
						|
        if ($result)
 | 
						|
        {
 | 
						|
            return true;
 | 
						|
        }
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
    
 | 
						|
    function sendResetEmail($email): string
 | 
						|
    {
 | 
						|
        //generate a random token and email the address
 | 
						|
        $token = $this->createToken();
 | 
						|
        $headers1 = "From: noreply@rohitpai.co.uk\r\n";
 | 
						|
        $headers1 .= "MIME-Version: 1.0\r\n";
 | 
						|
        $headers1 .= "Content-Type: text/html; charset=UTF-8\r\n";
 | 
						|
        
 | 
						|
        $message = "
 | 
						|
        <!doctype html>
 | 
						|
        <html lang='en'>
 | 
						|
        <head>
 | 
						|
        <meta charset='UTF-8'>
 | 
						|
        <meta name='viewport' content='width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0'>
 | 
						|
                 <meta http-equiv='X-UA-Compatible' content='ie=edge'>
 | 
						|
        <title>Document</title>
 | 
						|
        </head>
 | 
						|
        <body>
 | 
						|
            <h1>Reset Password Verification Code</h1>
 | 
						|
            <br>
 | 
						|
            <p>Please enter the following code to reset your password: $token</p>            
 | 
						|
        </body>
 | 
						|
        </html>
 | 
						|
        ";
 | 
						|
        
 | 
						|
        mail($email, "Reset Password Verification Code", $message, $headers1);
 | 
						|
        return $token;
 | 
						|
    }
 | 
						|
} |