Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class ctf{
- function __construct($hostname, $username, $password, $database){
- $this->connect($hostname, $username, $password, $database);
- }
- /**
- *
- * Melakukan koneksi ke database
- *
- */
- function connect($hostname, $username, $password, $database){
- $this->connection = mysqli_connect($hostname, $username, $password, $database);
- }
- /**
- *
- * Menutup koneksi database
- *
- */
- function close(){
- return mysqli_close($this->connection);
- }
- /**
- *
- * Mengeksekusi query ke database
- *
- */
- function query($query){
- $this->get = mysqli_query($this->connection, $query);
- //$this->close();
- return $this;
- }
- /**
- *
- * Esaping string to prevent SQL injection !1!1! hihihi
- *
- */
- function escape($query, $replace = 0){
- if ($replace) {
- $mixed = array(' ', '(', ')', '[', ']', '/', '\'', '<', '>','^','.','{', '}', ';', ',', '@', '~', '#', '!', '$', '+', '?', '%', '&', '*', '"', '`', '=', '|', '&');
- $query = str_replace($mixed, array(""), $query);
- }
- return mysqli_real_escape_string($this->connection, $query);
- }
- /**
- *
- * @param $id_user adalah id user
- * @see escape
- * @see query
- * @see fetch
- *
- * Untuk mendapatkan data user dari semua column
- *
- */
- function getUserbyId($id_user){
- if (!is_numeric($id_user) || !$this->isUserExistsbyId($id_user)) {
- return false;
- }
- $sql = $this->query("SELECT * FROM `users` WHERE `id` = '{$id_user}';");
- if ($sql) {
- return $sql->fetch();
- } else {
- return false;
- }
- //$this->close();
- }
- /**
- *
- * @param $id_user adalah id user
- * @see getUserbyId (untuk mendapatkan data user dari id user)
- *
- * Mendapatkan data tugas-tugas yang sudah selesai dari column completed_task
- *
- */
- function getCompletedTask($id_user){
- if (!is_numeric($id_user)) {
- return false;
- }
- $user = $this->getUserbyId($id_user);
- if ($user) {
- return explode("|", $user["completed_task"]);
- } else {
- return false;
- }
- }
- /**
- *
- * @param $id_user adalah id user
- * @param $id_task adalah id soal
- * @see getCompletedTask
- *
- * Mengecek apakah tugas sudah selesai atau sudah pernah dikerjakan
- *
- */
- function isTaskCompleted($id_user, $id_task){
- if (!is_numeric($id_task) || !is_numeric($id_user)) {
- return false;
- }
- $tasks = $this->getCompletedTask($id_user);
- if ($tasks) {
- return in_array($id_task, $tasks);
- }else {
- return false;
- }
- }
- /**
- *
- * @param $id_user adalah id user
- * @param $id_task adalah id soal
- * @see getCompletedTask
- * @see query
- *
- * Untuk menambah tugas yang baru diselesaikan (UPDATE DATA)
- *
- */
- function newTaskCompleted($id_user, $id_task){
- if (!is_numeric($id_task) || !is_numeric($id_user)) {
- return false;
- }
- elseif ($this->isTaskCompleted($id_user, $id_task)) {
- return false;
- }else{
- $tasks = implode("|", $this->getCompletedTask($id_user))."|".$id_task;
- return $this->query("UPDATE `users` SET `completed_task` = '{$tasks}' WHERE `id_user` = '{$id_user}';")->get();
- }
- }
- function isUserExistsbyUsername($username){
- if (strlen($username) > 50) {
- return false;
- }
- $username = $this->escape($username);
- return $this->query("SELECT `id` FROM `users` WHERE `nick` = '{$username}';")->row();
- }
- function isUserExistsbyId($id){
- if (!is_numeric($id)) {
- return false;
- }
- return $this->query("SELECT `id` FROM `users` WHERE `id` = '{$id}';")->row();
- }
- function addNewUser($username, $password, $photo = null, $email = null, $website = null, $quotes = null, $github = null, $facebook = null){
- if ($this->isUserExistsbyUsername($username)) {
- return false;
- } else {
- $username = $this->escape($username, 1);
- $email = $this->escape($email);
- $website = $this->escape($website);
- $quotes = $this->escape($quotes, 1);
- $github = $this->escape($github);
- $facebook = $this->escape($facebook);
- $password = md5($password);
- $query = "INSERT INTO `users` (`id`, `nick`, `url`, `usrname`, `password`, `foto`, `nilai`, `sudah`, `email`, `web`, `facebook`, `github`, `quotes`, `date`)
- VALUES (NULL, '{$username}', '{$username}', 'ngetes', '{$password}', '{$photo}', '0', '0', '{$email}', '{$website}', '{$facebook}', '{$github}', '{$quotes}', now());";
- return $this->query($query)->get();
- }
- }
- function uploadPhoto(array $var){
- if (!isset($var["foto"])) {
- return false;
- }
- elseif ($this->filterExtentsion($var['foto']['name'], array("jpg", "jpeg", "png"))){;
- $path = "img/";
- $nama_baru = round(microtime(true)) . '.' . $this->getExtension($var["foto"]["name"]);
- if(move_uploaded_file($var["foto"]["tmp_name"], $path.$nama_baru)){
- return $nama_baru;
- }else{
- return false;
- }
- }else{
- return false;
- }
- }
- function filterExtentsion(string $file, array $whitelists){
- return in_array($this->getExtension($file), $whitelists);
- }
- function getExtension(string $file){
- $exp = explode(".", $file);
- return strtolower(end($exp));
- }
- /**
- *
- * Untuk mereturn hasil query sebagai assoc
- *
- */
- function fetch(){
- return mysqli_fetch_assoc($this->get);
- }
- /**
- *
- * Untuk mereturn object get
- *
- */
- function get(){
- return $this->get;
- }
- function row(){
- return (bool) $this->get->num_rows;
- }
- function obj2array($val){
- return (is_object($val) ? json_decode(json_encode($val), 1) : false);
- }
- function __destruct(){
- $this->close();
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement