/** phpMinAdmin - Compact MySQL management* @link http://phpminadmin.sourceforge.net* @author Jakub Vrana, http://php.vrana.cz* @copyright 2007 Jakub Vrana* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0*/error_reporting(E_ALL&~E_NOTICE);if(isset($_GET["file"])){header("Expires: ".gmdate("D, d M Y H:i:s",filemtime(__FILE__)+365*24*60*60)." GMT");if($_GET["file"]=="favicon.ico"){header("Content-Type: image/x-icon");echobase64_decode("AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAA/wBhTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEQAAAAAAERExAAAAARERExEAABERMREzMQABExMRERMRAAExMRETMRAAATERERMRAAABExERExAAAAETERExEAAAATERETERERARMRETESESEBMTETESEREQExEzESEREhETMxEREhERIREREAARISIRAAAAAAERERD/4z8A/wM/APgDAADAAwAAgAMAAIAHAACADwAAgB8AAIAfAACAAQAAAAEAAAABAAAAAAAAAAAAAAcAAAD/gQAA");}elseif($_GET["file"]=="default.css"){header("Content-Type: text/css");body{color:#000;background-color:#fff;line-height:1.25em;font-family:Verdana,Arial,Helvetica,sans-serif;margin:0;font-size:90%;}a{color:blue;}a:visited{color:navy;}a:hover{color:red;}h1{font-size:150%;margin:0;padding:.8em 1em;border-bottom:1px solid #999;font-weight:normal;background:#eee;font-style:italic;}h1 a:link,h1 a:visited{color:#777;text-decoration:none;}h2{font-size:150%;margin:0 0 20px -18px;padding:.8em 1em;border-bottom:1px solid #000;color:#000;font-weight:normal;background:#ddf;}h3{font-weight:normal;font-size:130%;margin:.8em 0;}table{margin:0 20px .8em 0;border:0;border-top:1px solid #999;border-left:1px solid #999;font-size:90%;}td,th{margin-bottom:1em;border:0;border-right:1px solid #999;border-bottom:1px solid #999;padding:.2em .3em;}th{background:#eee;}fieldset{display:inline;vertical-align:top;padding:.5em .8em;margin:0 .5em .5em 0;border:1px solid #999;}p{margin:0 20px 1em 0;}img{vertical-align:middle;}code{background-color:#eee;}.js .hidden{display:none;}.nowrap{white-space:nowrap;}.error{color:red;background:#fee;padding:.5em .8em;}.message{color:green;background:#efe;padding:.5em .8em;}.char{color:#007F00;}.date{color:#7F007F;}.enum{color:#007F7F;}.binary{color:red;}#menu{position:absolute;margin:10px 0 0;padding:0 0 30px 0;top:2em;left:0;width:19em;overflow:auto;overflow-y:hidden;white-space:nowrap;}#menu p{padding:.8em 1em;margin:0;border-bottom:1px solid #ccc;}#menu form{margin:0;}#content{margin:2em 0 0 21em;padding:10px 20px 20px 0;}#lang{position:absolute;top:0;left:0;line-height:1.8em;padding:.3em 1em;}#breadcrumb{position:absolute;top:0;left:21em;background:#eee;height:2em;line-height:1.8em;padding:0 1em;margin:0 0 0 -18px;}#schema{margin-left:60px;position:relative;}#schema .table{border:1px solid Silver;padding:0 2px;cursor:move;position:absolute;}#schema .references{position:absolute;}}else{header("Content-Type: image/gif");switch($_GET["file"]){case"arrow.gif":echobase64_decode("R0lGODlhCAAKAIAAAICAgP///yH5BAEAAAEALAAAAAAIAAoAAAIPBIJplrGLnpQRqtOy3rsAADs=");break;case"up.gif":echobase64_decode("R0lGODdhEgASAKEAAO7u7gAAAJmZmQAAACwAAAAAEgASAAACIISPqcvtD00IUU4K730T9J5hFTiKEXmaYcW2rgDH8hwXADs=");break;case"down.gif":echobase64_decode("R0lGODdhEgASAKEAAO7u7gAAAJmZmQAAACwAAAAAEgASAAACIISPqcvtD00I8cwqKb5bV/5cosdMJtmcHca2lQDH8hwXADs=");break;case"plus.gif":echobase64_decode("R0lGODdhEgASAKEAAO7u7gAAAJmZmQAAACwAAAAAEgASAAACIYSPqcvtD00I8cwqKb5v+q8pIAhxlRmhZYi17iPE8kzLBQA7");break;case"minus.gif":echobase64_decode("R0lGODdhEgASAKEAAO7u7gAAAJmZmQAAACwAAAAAEgASAAACGYSPqcvtD6OcFIaLM8s81A+G4hgJ5ommZwEAOw==");break;}}exit;}if(!ini_get("session.auto_start")){session_name("phpMinAdmin_SID");session_set_cookie_params(0,preg_replace('~\\?.*~','',$_SERVER["REQUEST_URI"]));session_start();}if(get_magic_quotes_gpc()){$Y=array(&$_GET,&$_POST);while(list($f,$b)=each($Y)){foreach($bas$la=>$Q){unset($Y[$f][$la]);if(is_array($Q)){$Y[$f][stripslashes($la)]=$Q;$Y[]=&$Y[$f][stripslashes($la)];}else{$Y[$f][stripslashes($la)]=stripslashes($Q);}}}unset($Y);}set_magic_quotes_runtime(false);$i=preg_replace('~^[^?]*/([^?]*).*~','\\1?',$_SERVER["REQUEST_URI"]).(strlen($_GET["server"])?'server='.urlencode($_GET["server"]).'&':'').(strlen($_GET["db"])?'db='.urlencode($_GET["db"]).'&':'');$TOKENS=&$_SESSION["tokens"][$_GET["server"]][$_SERVER["REQUEST_URI"]];functiona($N){return"`".str_replace("`","``",$N)."`";}functionja($N){returnstr_replace("``","`",$N);}functionj($N,$Oc=false){static$Vb=array(':'=>':1',']'=>':2','['=>':3');returnstrtr($N,($Oc?array_flip($Vb):$Vb));}functionf($za,$Jc=null){$n="";foreach($zaas$la=>$Q){if(is_array($Q)){$n.='<optgroup label="'.htmlspecialchars($la).'">';}foreach((is_array($Q)?$Q:array($Q))as$b){$n.='<option'.($b===$Jc?' selected="selected"':'').'>'.htmlspecialchars($b).'</option>';}if(is_array($Q)){$n.='</optgroup>';}}return$n;}functiony($m){global$d;$n=array();$c=$d->b($m);if($c){while($a=$c->l()){$n[]=$a[0];}$c->d();}return$n;}functiono(){$n=&$_SESSION["databases"][$_GET["server"]];if(!isset($n)){flush();$n=y("SHOW DATABASES");}return$n;}functionia($q){global$d;$c=$d->b("SHOW TABLE STATUS LIKE '".$d->c(addcslashes($q,"%_"))."'");$n=$c->e();$c->d();return$n;}functionn($q){global$d;$n=array();$c=$d->b("SHOW FULL COLUMNS FROM ".a($q));if($c){while($a=$c->e()){preg_match('~^([^( ]+)(?:\\((.+)\\))?( unsigned)?( zerofill)?$~',$a["Type"],$g);$n[$a["Field"]]=array("field"=>$a["Field"],"type"=>$g[1],"length"=>$g[2],"unsigned"=>ltrim($g[3].$g[4]),"default"=>(strlen($a["Default"])||ereg("char",$g[1])?$a["Default"]:null),"null"=>($a["Null"]=="YES"),"auto_increment"=>($a["Extra"]=="auto_increment"),"collation"=>$a["Collation"],"privileges"=>array_flip(explode(",",$a["Privileges"])),"comment"=>$a["Comment"],"primary"=>($a["Key"]=="PRI"),);}$c->d();}return$n;}functionw($q){global$d;$n=array();$c=$d->b("SHOW INDEX FROM ".a($q));if($c){while($a=$c->e()){$n[$a["Key_name"]]["type"]=($a["Key_name"]=="PRIMARY"?"PRIMARY":($a["Index_type"]=="FULLTEXT"?"FULLTEXT":($a["Non_unique"]?"INDEX":"UNIQUE")));$n[$a["Key_name"]]["columns"][$a["Seq_in_index"]]=$a["Column_name"];$n[$a["Key_name"]]["lengths"][$a["Seq_in_index"]]=$a["Sub_part"];}$c->d();}return$n;}functionx($q){global$d,$va;static$M='(?:[^`]+|``)+';$n=array();$c=$d->b("SHOW CREATE TABLE ".a($q));if($c){$Lc=$d->i($c,1);$c->d();preg_match_all("~CONSTRAINT `($M)` FOREIGN KEY \\(((?:`$M`,? ?)+)\\) REFERENCES `($M)`(?:\\.`($M)`)? \\(((?:`$M`,? ?)+)\\)(?: ON DELETE (".implode("|",$va)."))?(?: ON UPDATE (".implode("|",$va)."))?~",$Lc,$B,PREG_SET_ORDER);foreach($Bas$g){preg_match_all("~`($M)`~",$g[2],$I);preg_match_all("~`($M)`~",$g[5],$ga);$n[$g[1]]=array("db"=>ja(strlen($g[4])?$g[3]:$g[4]),"table"=>ja(strlen($g[4])?$g[4]:$g[3]),"source"=>array_map('ja',$I[1]),"target"=>array_map('ja',$ga[1]),"on_delete"=>$g[6],"on_update"=>$g[7],);}}return$n;}functionpa($j){global$d;returnarray("select"=>preg_replace('~^(?:[^`]+|`[^`]*`)* AS ~U','',$d->i($d->b("SHOW CREATE VIEW ".a($j)),1)));}functionbb($a,$u){foreach($uas$o){if($o["type"]=="PRIMARY"||$o["type"]=="UNIQUE"){$n=array();foreach($o["columns"]as$f){if(!isset($a[$f])){continue2;}$n[]=urlencode("where[".j($f)."]")."=".urlencode($a[$f]);}return$n;}}$n=array();foreach($aas$f=>$b){$n[]=(isset($b)?urlencode("where[".j($f)."]")."=".urlencode($b):"null%5B%5D=".urlencode($f));}return$n;}functionaa($s){global$d;$n=array();foreach((array)$s["where"]as$f=>$b){$f=j($f,"back");$n[]=(preg_match('~^[A-Z0-9_]+\\(`(?:[^`]+|``)+`\\)$~',$f)?$f:a($f))." = BINARY '".$d->c($b)."'";}foreach((array)$s["null"]as$f){$f=j($f,"back");$n[]=(preg_match('~^[A-Z0-9_]+\\(`(?:[^`]+|``)+`\\)$~',$f)?$f:a($f))." IS NULL";}return$n;}functionma($z){global$ka;return(preg_match("~^\\s*(?:$ka)(?:\\s*,\\s*(?:$ka))*\\s*\$~",$z)&&preg_match_all("~$ka~",$z,$B)?implode(",",$B[0]):preg_replace('~[^0-9,]~','',$z));}functionoa(){global$d;$n=array();$c=$d->b("SHOW COLLATION");while($a=$c->e()){if($a["Default"]&&$n[$a["Charset"]]){array_unshift($n[$a["Charset"]],$a["Collation"]);}else{$n[$a["Charset"]][]=$a["Collation"];}}$c->d();return$n;}functionva(){return($GLOBALS["TOKENS"][]=rand(1,1e6));}functionab(){if($_POST["token"]&&($Z=array_search($_POST["token"],(array)$GLOBALS["TOKENS"]))!==false){unset($GLOBALS["TOKENS"][$Z]);returntrue;}returnfalse;}functionp($v,$X=null){if(isset($X)){$_SESSION["messages"][]=$X;}ab();if(strlen(SID)){$v.=(strpos($v,"?")===false?"?":"&").SID;}header("Location: ".(strlen($v)?$v:"."));exit;}functiong($m,$v,$X,$Kc=true,$Mc=true,$kc=false){global$d,$k,$i;$Qb="sql-".count($_SESSION["messages"]);$gc=($m?" <a href='#$Qb' onclick=\"return !toggle('$Qb');\">".'SQL command'."</a><span id='$Qb' class='hidden'><br /><code class='jush-sql'>".htmlspecialchars($m).'</code> <a href="'.htmlspecialchars($i).'sql='.urlencode($m).'">'.'Edit'.'</a></span>':"");if($Mc){$kc=!$d->b($m);}if($kc){$k=htmlspecialchars($d->error).$gc;returnfalse;}if($Kc){p($v,$X.$gc);}returntrue;}functionk($m=null){global$d;static$jc=array();if(!isset($m)){returnimplode(";\n",$jc);}$jc[]=$m;return$d->b($m);}functiont($H=""){$H="($H|".session_name().")";returnpreg_replace("~\\?$H=[^&]*&~",'?',preg_replace("~\\?$H=[^&]*\$|&$H=[^&]*~",'',$_SERVER["REQUEST_URI"]));}functionka($Va){echo" ".($Va==$_GET["page"]?$Va+1:'<a href="'.htmlspecialchars(t("page").($Va?"&page=$Va":"")).'">'.($Va+1)."</a>");}functionla($f){if(isset($_POST["files"][$f])){$z=strlen($_POST["files"][$f]);return($z&&$z<4?intval($_POST["files"][$f]):base64_decode($_POST["files"][$f]));}return(!$_FILES[$f]||$_FILES[$f]["error"]?$_FILES[$f]["error"]:file_get_contents($_FILES[$f]["tmp_name"]));}functionha($c){global$i;if(!$c->num_rows){echo"<p class='message'>".'No rows.'."</p>\n";}else{echo"<table border='1' cellspacing='0' cellpadding='2'>\n";$Ua=array();$u=array();$r=array();$fc=array();$W=array();for($h=0;$a=$c->l();$h++){if(!$h){echo"<thead>