db = $db; $this->tablePrefix = $tablePrefix; } public function init() { // create database tables } public function create() { $challenge = base64_encode( random_bytes(32) ); $challenge = $this->db->real_escape_string( $challenge ); $sql = "INSERT INTO `{$this->tablePrefix}ptcp_auth` SET challenge = '{$challenge}', created_on = NOW()"; if ( ! $this->db->query( $sql ) ) { return FALSE; } return $this->db->insert_id; } public function mark_as_met( $id, $ptcpId ) { $id = (int) $id; $ptcpId = $this->db->real_escape_string( $ptcpId ); $sql = "UPDATE `{$this->tablePrefix}ptcp_auth` SET met_on = NOW(), met_by = '{$ptcpId}' WHERE id = '{$id}'"; $result = $this->db->query( $sql ); if ( ! $result || ! $this->db->affected_rows ){ return FALSE; } return TRUE; } public function get( $id ) { $id = (int) $id; $sql = "SELECT * FROM `{$this->tablePrefix}ptcp_auth` WHERE id = {$id}"; $result = $this->db->query( $sql ); if ( ! $result || ! $result->num_rows ){ return FALSE; } return $result->fetch_assoc(); } public function delete( $id ) { $id = (int) $id; $sql = "DELETE FROM `{$this->tablePrefix}ptcp_auth` WHERE id = {$id}"; $result = $this->db->query( $sql ); if ( ! $result || ! $this->db->affected_rows ){ return FALSE; } return TRUE; } public function delete_expired() { $sql = "DELETE FROM `{$this->tablePrefix}ptcp_auth WHERE TIMESTAMPDIFF( MINUTE, created_on, NOW() ) > 10"; if ( ! $this->db->query( $sql ) || ! $this->db->affected_rows ) { return FALSE; } return $this->db->affected_rows; } } // end of file ptcp_auth.class.php