Advertisement
Guest User

Untitled

a guest
Dec 16th, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.25 KB | None | 0 0
  1. <?php
  2. date_default_timezone_set("Asia/Jakarta");
  3.  
  4. /**
  5. * FUngsi koneksi database.
  6. */
  7. function conn($host, $username, $password, $database)
  8. {
  9. $conn = mysqli_connect($host, $username, $password, $database);
  10.  
  11. // Menampilkan pesan error jika database tidak terhubung
  12. return ($conn) ? $conn : "Koneksi database gagal: " . mysqli_connect_error();
  13. }
  14.  
  15. /**
  16. * Fungsi untuk mengkonversi format tanggal menjadi format Indonesia.
  17. */
  18. function indoDate($date)
  19. {
  20. $exp = explode("-", substr($date,0,10));
  21. return $exp[2] . ' ' . month($exp[1]) . ' ' . $exp[0];
  22. }
  23.  
  24. /**
  25. * Fungsi untuk mengkonversi format bulan angka menjadi nama bulan.
  26. */
  27. function month($kode)
  28. {
  29. $month = '';
  30. switch ($kode) {
  31. case '01':
  32. $month = 'Januari';
  33. break;
  34. case '02':
  35. $month = 'Februari';
  36. break;
  37. case '03':
  38. $month = 'Maret';
  39. break;
  40. case '04':
  41. $month = 'April';
  42. break;
  43. case '05':
  44. $month = 'Mei';
  45. break;
  46. case '06':
  47. $month = 'Juni';
  48. break;
  49. case '07':
  50. $month = 'Juli';
  51. break;
  52. case '08':
  53. $month = 'Agustus';
  54. break;
  55. case '09':
  56. $month = 'September';
  57. break;
  58. case '10':
  59. $month = 'Oktober';
  60. break;
  61. case '11':
  62. $month = 'November';
  63. break;
  64. case '12':
  65. $month = 'Desember';
  66. break;
  67. }
  68. return $month;
  69. }
  70.  
  71. /**
  72. * Fungsi backup database.
  73. */
  74. function backup($host, $user, $pass, $dbname, $nama_file, $tables){
  75.  
  76. //untuk koneksi database
  77. $return = "";
  78. $link = mysqli_connect($host, $user, $pass, $dbname);
  79.  
  80. //backup semua tabel database
  81. if($tables == '*'){
  82. $tables = array();
  83. $result = mysqli_query($link, 'SHOW TABLES');
  84. while($row = mysqli_fetch_row($result)){
  85. $tables[] = $row[0];
  86. }
  87. } else {
  88.  
  89. //backup tabel tertentu
  90. $tables = is_array($tables) ? $tables : explode(',',$tables);
  91. }
  92.  
  93. //looping table
  94. foreach($tables as $table){
  95. $result = mysqli_query($link, 'SELECT * FROM '.$table);
  96. $num_fields = mysqli_num_fields($result);
  97.  
  98. $return.= 'DROP TABLE '.$table.';';
  99. $row2 = mysqli_fetch_row(mysqli_query($link, 'SHOW CREATE TABLE '.$table));
  100. $return.= "\n\n".$row2[1].";\n\n";
  101.  
  102. //looping field table
  103. for($i = 0; $i < $num_fields; $i++){
  104. while($row = mysqli_fetch_row($result)){
  105. $return.= 'INSERT INTO '.$table.' VALUES(';
  106.  
  107. for($j=0; $j<$num_fields; $j++){
  108. $row[$j] = addslashes($row[$j]);
  109. $row[$j] = str_replace("\n","\n",$row[$j]);
  110.  
  111. if(isset($row[$j])){
  112. $return.= '"'.$row[$j].'"' ;
  113. } else {
  114. $return.= '""';
  115. }
  116. if ($j<($num_fields-1)){
  117. $return.= ',';
  118. }
  119. }
  120. $return.= ");\n";
  121. }
  122. }
  123. $return.="\n\n\n";
  124. }
  125.  
  126. //otomatis menyimpan hasil backup database dalam root folder aplikasi
  127. $dir = "backup/";
  128. if (! is_dir($dir)) {
  129. mkdir($dir, 0755);
  130. }
  131.  
  132. $file = $dir . $nama_file;
  133. $handle = fopen($file,'w+');
  134. fwrite($handle,$return);
  135. fclose($handle);
  136. }
  137.  
  138. /**
  139. * Fungsi retore database.
  140. */
  141. function restore($host, $user, $pass, $dbname, $file){
  142. global $rest_dir;
  143.  
  144. //konfigurasi restore database: host, user, password, database
  145. $koneksi = mysqli_connect($host, $user, $pass, $dbname);
  146.  
  147. $nama_file = $file['name'];
  148. $ukrn_file = $file['size'];
  149. $tmp_file = $file['tmp_name'];
  150.  
  151. if($nama_file == "" || $_REQUEST['password'] == ""){
  152. $_SESSION['errEmpty'] = 'ERROR! Semua Form wajib diisi';
  153. header("Location: ./admin.php?page=sett&sub=rest");
  154. die();
  155. } else {
  156.  
  157. $password = $_REQUEST['password'];
  158. $id_user = $_SESSION['id_user'];
  159.  
  160. $query = mysqli_query($koneksi, "SELECT password FROM tbl_user WHERE id_user='$id_user' AND password=MD5('$password')");
  161. if(mysqli_num_rows($query) > 0){
  162.  
  163. $alamatfile = $rest_dir.$nama_file;
  164. $templine = array();
  165.  
  166. $ekstensi = array('sql');
  167. $nama_file = $file['name'];
  168. $x = explode('.', $nama_file);
  169. $eks = strtolower(end($x));
  170.  
  171. //validasi tipe file
  172. if(in_array($eks, $ekstensi) == true){
  173.  
  174. if(move_uploaded_file($tmp_file , $alamatfile)){
  175.  
  176. $templine = '';
  177. $lines = file($alamatfile);
  178.  
  179. foreach ($lines as $line){
  180. if(substr($line, 0, 2) == '--' || $line == '')
  181. continue;
  182.  
  183. $templine .= $line;
  184.  
  185. if(substr(trim($line), -1, 1) == ';'){
  186. mysqli_query($koneksi, $templine);
  187. $templine = '';
  188. }
  189. }
  190.  
  191. unlink($nama_file);
  192. $_SESSION['succRestore'] = 'SUKSES! Database berhasil direstore';
  193. header("Location: ./admin.php?page=sett&sub=rest");
  194. die();
  195. } else {
  196. $_SESSION['errUpload'] = 'ERROR! Proses upload database gagal';
  197. header("Location: ./admin.php?page=ref&act=imp");
  198. die();
  199. }
  200. } else {
  201. $_SESSION['errFormat'] = 'ERROR! Format file yang diperbolehkan hanya *.SQL';
  202. header("Location: ./admin.php?page=sett&sub=rest");
  203. die();
  204. }
  205. } else {
  206. session_destroy();
  207. echo '<script language="javascript">
  208. window.alert("ERROR! Password salah. Anda mungkin tidak memiliki akses ke halaman ini");
  209. window.location.href="index.php";
  210. </script>';
  211. }
  212. }
  213. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement