is_ad_email() * no javascript; only onload="bodyLoad();" */ /** Adminer - Compact MySQL management * @link http://www.adminer.org/ * @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(6135);$qd=(!ereg('^(unsafe_raw)?$',ini_get("filter.default"))||ini_get("filter.default_flags"));if($qd){foreach(array('_GET','_POST','_COOKIE','_SERVER')as$b){$Kd=filter_input_array(constant("INPUT$b"),FILTER_UNSAFE_RAW);if($Kd){$$b=$Kd;}}}if(isset($_GET["file"])){header("Expires: ".gmdate("D, d M Y H:i:s",time()+365*24*60*60)." GMT");if($_GET["file"]=="favicon.ico"){header("Content-Type: image/x-icon");echo base64_decode("AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAA/wBhTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEQAAAAAAERExAAAAARERExEAABERMREzMQABExMRERMRAAExMRETMRAAATERERMRAAABExERExAAAAETERExEAAAATERETERERARMRETESESEBMTETESEREQExEzESEREhETMxEREhERIREREAARISIRAAAAAAERERD/4z8A/wM/APgDAADAAwAAgAMAAIAHAACADwAAgB8AAIAfAACAAQAAAAEAAAABAAAAAAAAAAAAAAcAAAD/gQAA");}elseif($_GET["file"]=="default.css"){header("Content-Type: text/css");echo'body{color:#000;background:#fff;font:90%/1.25 Verdana,Arial,Helvetica,sans-serif;margin:0;}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;color:#777;background:#eee;}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;}form{margin:0;}table{margin:1em 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;text-align:left;}thead th{text-align:center;}thead td,thead th{background:#ddf;}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;border:0;}td img{max-width:200px;max-height:200px;}code{background:#eee;}tr:hover td,tr:hover th{background:#ddf;}.version{color:#777;font-size:67%;}.js .hidden{display:none;}.nowrap td,.nowrap th,td.nowrap{white-space:pre;}.wrap td{white-space:normal;}.error{color:red;background:#fee;}.message{color:green;background:#efe;}.error,.message{padding:.5em .8em;margin:0 20px 1em 0;}.char{color:#007F00;}.date{color:#7F007F;}.enum{color:#007F7F;}.binary{color:red;}.odd td{background:#F5F5F5;}.time{color:silver;font-size:70%;}.function{text-align:right;}.number{text-align:right;}.datetime{text-align:right;}.type{width:15ex;width:auto\\9;}#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;}#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{white-space:nowrap;position:absolute;top:0;left:21em;background:#eee;height:2em;line-height:1.8em;padding:0 1em;margin:0 0 0 -18px;}#h1{color:#777;text-decoration:none;font-style:italic;}#version{font-size:67%;color:red;}#schema{margin-left:60px;position:relative;}#schema .table{border:1px solid silver;padding:0 2px;cursor:move;position:absolute;}#schema .references{position:absolute;}@media print{#lang,#menu{display:none;}#content{margin-left:1em;}#breadcrumb{left:1em;}}';}elseif($_GET["file"]=="functions.js"){header("Content-Type: text/javascript");?> document.body.className='js';function toggle(id){var el=document.getElementById(id);el.className=(el.className=='hidden'?'':'hidden');return true;} function cookie(assign,days,params){var date=new Date();date.setDate(date.getDate()+days);document.cookie=assign+'; expires='+date+(params||'');} function verifyVersion(){cookie('adminer_version=0',1);var script=document.createElement('script');script.src='https://adminer.svn.sourceforge.net/svnroot/adminer/trunk/version.js';document.body.appendChild(script);} function formCheck(el,name){var elems=el.form.elements;for(var i=0;i=allowed){return false;} var match=/([0-9]+)(\.[0-9]+)?/.exec(button.name);var x=match[0]+(match[2]?added.substr(match[2].length):added)+'1';var row=button.parentNode.parentNode;var row2=row.cloneNode(true);var tags=row.getElementsByTagName('select');var tags2=row2.getElementsByTagName('select');for(var i=0;idivs[i].offsetTop+top*em);} if(!lineSet[id]){var line=document.getElementById(divs[i].id.replace(/^....(.+)-[0-9]+$/,'refl$1'));var shift=ev.clientY-y-that.offsetTop;line.style.left=(left+left1)+'em';if(isTop){line.style.top=(line.offsetTop+shift)/em+'em';} if(divs[i].parentNode!=div2.parentNode){line=line.getElementsByTagName('div')[0];line.style.height=(line.offsetHeight+(isTop?-1:1)*shift)/em+'em';} lineSet[id]=true;}}} that.style.left=left+'em';that.style.top=top+'em';}} function schemaMouseup(ev){if(that!==undefined){ev=ev||event;tablePos[that.firstChild.firstChild.firstChild.data]=[(ev.clientY-y)/em,(ev.clientX-x)/em];that=undefined;var s='';for(var key in tablePos){s+='_'+key+':'+Math.round(tablePos[key][0]*10000)/10000+'x'+Math.round(tablePos[key][1]*10000)/10000;} cookie('adminer_schema='+encodeURIComponent(s.substr(1)),30,'; path="'+location.pathname+location.search+'"');}}=0){$Cb[]=true;}call_user_func_array('session_set_cookie_params',$Cb);session_start();}if(get_magic_quotes_gpc()){$wa=array(&$_GET,&$_POST,&$_COOKIE);while(list($e,$b)=each($wa)){foreach($b as$fa=>$r){unset($wa[$e][$fa]);if(is_array($r)){$wa[$e][stripslashes($fa)]=$r;$wa[]=&$wa[$e][stripslashes($fa)];}else{$wa[$e][stripslashes($fa)]=($qd?$r:stripslashes($r));}}}unset($wa);}if(function_exists("set_magic_quotes_runtime")){set_magic_quotes_runtime(false);}@set_time_limit(0);$qb="2.3.2";function connection(){global$d;return$d;}function idf_escape($ka){return"`".str_replace("`","``",$ka)."`";}function idf_unescape($ka){return str_replace("``","`",$ka);}function escape_string($b){global$d;return substr($d->quote($b),1,-1);}function bracket_escape($ka,$se=false){static$Yc=array(':'=>':1',']'=>':2','['=>':3');return strtr($ka,($se?array_flip($Yc):$Yc));}function h($P){return htmlspecialchars($P,ENT_QUOTES);}function nbsp($P){return(trim($P)!=""?h($P):" ");}function checkbox($h,$q,$ba,$fd="",$bd=""){static$T=0;$T++;$g="";return($fd!=""?"":$g);}function optionlist($Wb,$ce=null,$Md=false){$g="";foreach($Wb as$fa=>$r){if(is_array($r)){$g.='';}foreach((is_array($r)?$r:array($fa=>$r))as$e=>$b){$g.=''.h($b);}if(is_array($r)){$g.='';}}return$g;}function html_select($h,$Wb,$q="",$db=true){if($db){return"";}$g="";foreach($Wb as$e=>$b){$g.="";}return$g;}function get_vals($m,$la=0){global$d;$g=array();$f=$d->query($m);if($f){while($a=$f->fetch_row()){$g[]=$a[$la];}}return$g;}function unique_array($a,$w){foreach($w as$s){if(ereg("PRIMARY|UNIQUE",$s["type"])){$g=array();foreach($s["columns"]as$e){if(!isset($a[$e])){continue 2;}$g[$e]=$a[$e];}return$g;}}$g=array();foreach($a as$e=>$b){if(!preg_match('~^(COUNT\\((\\*|(DISTINCT )?`(?:[^`]|``)+`)\\)|(AVG|GROUP_CONCAT|MAX|MIN|SUM)\\(`(?:[^`]|``)+`\\))$~',$e)){$g[$e]=$b;}}return$g;}function where($D){$g=array();foreach(array("where","null")as$U){foreach((array)$D[$U]as$e=>$b){$e=bracket_escape($e,"back");$g[]=(preg_match('~^[A-Z0-9_]+\\(`(?:[^`]|``)+`\\)$~',$e)?$e:idf_escape($e)).($U=="null"?" IS NULL":(ereg('\\.',$b)?" LIKE ".exact_value(addcslashes($b,"%_")):" = ".exact_value($b)));}}return implode(" AND ",$g);}function where_check($b){parse_str($b,$te);return where($te);}function where_link($i,$la,$q,$ie="="){return"&where%5B$i%5D%5Bcol%5D=".urlencode($la)."&where%5B$i%5D%5Bop%5D=".urlencode($ie)."&where%5B$i%5D%5Bval%5D=".urlencode($q);}function cookie($h,$q){$Cb=array($h,$q,time()+2592000,preg_replace('~\\?.*~','',$_SERVER["REQUEST_URI"]),"",$_SERVER["HTTPS"]&&strcasecmp($_SERVER["HTTPS"],"off"));if(version_compare(PHP_VERSION,'5.2.0')>=0){$Cb[]=true;}return call_user_func_array('setcookie',$Cb);}function restart_session(){if(!ini_get("session.use_cookies")){session_start();}}function redirect($z,$ma=null){if(isset($ma)){restart_session();$_SESSION["messages"][]=$ma;}if(isset($z)){header("Location: ".($z!=""?$z:"."));exit;}}function query_redirect($m,$z,$ma,$bc=true,$je=true,$Bb=false){global$d,$o,$p;if($je){$Bb=!$d->query($m);}$mc="";if($m){$mc=$p->messageQuery($m);}if($Bb){$o=error().$mc;return false;}if($bc){redirect($z,$ma.$mc);}return true;}function queries($m=null){global$d;static$La=array();if(!isset($m)){return implode(";\n",$La);}$La[]=$m;return$d->query($m);}function queries_redirect($z,$ma,$bc){return query_redirect(queries(),$z,$ma,$bc,false,!$bc);}function remove_from_uri($xa=""){return substr(preg_replace("~(?<=[?&])($xa".(SID?"":"|".session_name()).")=[^&]*&~",'',"$_SERVER[REQUEST_URI]&"),0,-1);}function pagination($xb){return" ".($xb==$_GET["page"]?$xb+1:''.($xb+1)."");}function get_file($e,$Gd=false){$Q=$_FILES[$e];if(!$Q||$Q["error"]){return$Q["error"];}return file_get_contents($Gd&&ereg('\\.gz$',$Q["name"])?"compress.zlib://$Q[tmp_name]":($Gd&&ereg('\\.bz2$',$Q["name"])?"compress.bzip2://$Q[tmp_name]":$Q["tmp_name"]));}function upload_error($o){$vd=($o==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):null);return($o?lang(0).($vd?" ".lang(1,$vd):""):lang(2));}function odd($g=' class="odd"'){static$i=0;if(!$g){$i=-1;}return($i++% 2?$g:'');}function is_utf8($b){return(preg_match('~~u',$b)&&!preg_match('~[\\0-\\x8\\xB\\xC\\xE-\\x1F]~',$b));}function shorten_utf8($P,$ua=80,$de=""){if(!preg_match("(^([\t\r\n -\x{FFFF}]{0,$ua})($)?)u",$P,$k)){preg_match("(^([\t\r\n -~]{0,$ua})($)?)",$P,$k);}return h($k[1]).$de.(isset($k[2])?"":"...");}function friendly_url($b){return preg_replace('~[^a-z0-9_]~i','-',$b);}function hidden_fields($wa,$ee=array()){while(list($e,$b)=each($wa)){if(is_array($b)){foreach($b as$fa=>$r){$wa[$e."[$fa]"]=$r;}}elseif(!in_array($e,$ee)){echo'';}}}function column_foreign_keys($n){$g=array();foreach(foreign_keys($n)as$J){foreach($J["source"]as$b){$g[$b][]=$J;}}return$g;}function input($c,$q,$_){global$ra,$p;$h=h(bracket_escape($c["field"]));echo"";$Ka=(isset($_GET["select"])?array("orig"=>lang(3)):array())+$p->editFunctions($c);if($c["type"]=="enum"){echo nbsp($Ka[""])."".($Ka["orig"]?" ":""),$p->editInput($_GET["edit"],$c," name='fields[$h]'",$q);preg_match_all("~'((?:[^']|'')*)'~",$c["length"],$I);foreach($I[1]as$i=>$b){$b=stripcslashes(str_replace("''","'",$b));$ba=(is_int($q)?$q==$i+1:$q===$b);echo" ';}}else{$bb=0;foreach($Ka as$e=>$b){if($e===""||!$b){break;}$bb++;}$db=($bb?" onchange=\"var f = this.form['function[".addcslashes($h,"\r\n'\\")."]']; if ($bb > f.selectedIndex) f.selectedIndex = $bb;\"":"");$hb=" name='fields[$h]'$db";echo(count($Ka)>1?html_select("function[$h]",$Ka,!isset($_)||in_array($_,$Ka)?$_:""):nbsp(reset($Ka))).'';$rd=$p->editInput($_GET["edit"],$c,$hb,$q);if($rd!=""){echo$rd;}elseif($c["type"]=="set"){preg_match_all("~'((?:[^']|'')*)'~",$c["length"],$I);foreach($I[1]as$i=>$b){$b=stripcslashes(str_replace("''","'",$b));$ba=(is_int($q)?($q>>$i)&1:in_array($b,explode(",",$q),true));echo" ';}}elseif(ereg('binary|blob',$c["type"])&&ini_get("file_uploads")){echo"";}elseif(ereg('text|blob',$c["type"])){echo"';}else{$yd=(!ereg('int',$c["type"])&&preg_match('~^([0-9]+)(,([0-9]+))?$~',$c["length"],$k)?($k[1]+($k[3]?1:0)+($k[2]&&!$c["unsigned"]?1:0)):($ra[$c["type"]]?$ra[$c["type"]]+($c["unsigned"]?0:1):0));echo"20?" size='40'":"")."$hb>";}}}function process_input($c){global$d,$p;$ka=bracket_escape($c["field"]);$_=$_POST["function"][$ka];$q=$_POST["fields"][$ka];if($c["type"]=="enum"?$q==-1:$_=="orig"){return false;}elseif($c["type"]=="enum"||$c["auto_increment"]?$q=="":$_=="NULL"){return"NULL";}elseif($c["type"]=="enum"){return intval($q);}elseif($c["type"]=="set"){return array_sum((array)$q);}elseif(ereg('binary|blob',$c["type"])&&ini_get("file_uploads")){$Q=get_file("fields-$ka");if(!is_string($Q)){return false;}return$d->quote($Q);}else{return$p->processInput($c,$q,$_);}}function search_tables(){global$p,$d;$O=false;foreach(table_status()as$n=>$Y){$h=$p->tableName($Y);if(isset($Y["Engine"])&&$h!=""&&(!$_POST["tables"]||in_array($n,$_POST["tables"]))){$f=$d->query("SELECT 1 FROM ".idf_escape($n)." WHERE ".implode(" AND ",$p->selectSearchProcess(fields($n),array()))." LIMIT 1");if($f->num_rows){if(!$O){echo"":"

".lang(4))."\n";}function dump_csv($a){foreach($a as$e=>$b){if(preg_match("~[\"\n,]~",$b)||$b===""){$a[$e]='"'.str_replace('"','""',$b).'"';}}echo implode(",",$a)."\n";}function apply_sql_function($_,$la){return($_?($_=="count distinct"?"COUNT(DISTINCT ":strtoupper("$_("))."$la)":$la);}function is_ad_email($oe){$zd='[-a-z0-9!#$%&\'*+/=?^_`{|}~]';$Fb='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';return preg_match("(^$zd+(\\.$zd+)*@($Fb?\\.)+$Fb\$)i",$oe);}function is_url($P){$Fb='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';return preg_match("~^https?://($Fb?\\.)+$Fb(:[0-9]+)?(/.*)?(\\?.*)?(#.*)?\$~i",$P);}function print_fieldset($T,$xe,$me=false){echo"

$xe
\n";}function selectSearchPrint($D,$t,$w){print_fieldset("search",lang(22),$D);foreach($w as$i=>$s){if($s["type"]=="FULLTEXT"){echo"(".implode(", ",array_map('h',$s["columns"])).") AGAINST"," ",checkbox("boolean[$i]",1,isset($_GET["boolean"][$i]),"BOOL"),"
\n";}}$i=0;foreach((array)$_GET["where"]as$b){if("$b[col]$b[val]"!=""&&in_array($b["op"],$this->operators)){echo"
",html_select("where[$i][op]",$this->operators,$b["op"]),"
\n";$i++;}}echo"
",html_select("where[$i][op]",$this->operators),"
\n","\n";}function selectOrderPrint($Ja,$t,$w){print_fieldset("sort",lang(24),$Ja);$i=0;foreach((array)$_GET["order"]as$e=>$b){if(isset($t[$b])){echo"
",checkbox("desc[$i]",1,isset($_GET["desc"][$e]),lang(25))."
\n";$i++;}}echo"
",checkbox("desc[$i]",1,0,lang(25))."
\n","\n";}function selectLimitPrint($oa){echo"
".lang(26)."
";echo"","
\n";}function selectLengthPrint($Oa){if(isset($Oa)){echo"
".lang(27)."
",'',"
\n";}}function selectActionPrint(){echo"
".lang(28)."
","","
\n";}function selectEmailPrint($Fe,$t){}function selectColumnsProcess($t,$w){$v=array();$ga=array();foreach((array)$_GET["columns"]as$e=>$b){if($b["fun"]=="count"||(isset($t[$b["col"]])&&(!$b["fun"]||in_array($b["fun"],$this->functions)||in_array($b["fun"],$this->grouping)))){$v[$e]=apply_sql_function($b["fun"],(isset($t[$b["col"]])?idf_escape($b["col"]):"*"));if(!in_array($b["fun"],$this->grouping)){$ga[]=$v[$e];}}}return array($v,$ga);}function selectSearchProcess($l,$w){global$d;$g=array();foreach($w as$i=>$s){if($s["type"]=="FULLTEXT"&&$_GET["fulltext"][$i]!=""){$g[]="MATCH (".implode(", ",array_map('idf_escape',$s["columns"])).") AGAINST (".$d->quote($_GET["fulltext"][$i]).(isset($_GET["boolean"][$i])?" IN BOOLEAN MODE":"").")";}}foreach((array)$_GET["where"]as$b){if("$b[col]$b[val]"!=""&&in_array($b["op"],$this->operators)){$cb=process_length($b["val"]);$Fc=" $b[op]".(ereg('NULL$',$b["op"])?"":(ereg('IN$',$b["op"])?" (".($cb!=""?$cb:"NULL").")":" ".$this->processInput($l[$b["col"]],$b["val"])));if($b["col"]!=""){$g[]=idf_escape($b["col"]).$Fc;}else{$Ta=array();foreach($l as$h=>$c){if(is_numeric($b["val"])||!ereg('int|float|double|decimal',$c["type"])){$h=idf_escape($h);$Ta[]=(ereg('char|text|enum|set',$c["type"])&&!ereg('^utf8',$c["collation"])?"CONVERT($h USING utf8)":$h);}}$g[]=($Ta?"(".implode("$Fc OR ",$Ta)."$Fc)":"0");}}}return$g;}function selectOrderProcess($l,$w){$g=array();foreach((array)$_GET["order"]as$e=>$b){if(isset($l[$b])||preg_match('~^((COUNT\\(DISTINCT |[A-Z0-9_]+\\()`(?:[^`]|``)+`\\)|COUNT\\(\\*\\))$~',$b)){$g[]=idf_escape($b).(isset($_GET["desc"][$e])?" DESC":"");}}return$g;}function selectLimitProcess(){return(isset($_GET["limit"])?$_GET["limit"]:"30");}function selectLengthProcess(){return(isset($_GET["text_length"])?$_GET["text_length"]:"100");}function selectEmailProcess($D,$ye){return false;}function messageQuery($m){restart_session();$T="sql-".count($_SESSION["messages"]);$_SESSION["history"][$_GET["server"]][DB][]=(strlen($m)>1e6?ereg_replace('[\x80-\xFF]+$','',substr($m,0,1e6))."\n...":$m);return" ".lang(29)."';}function editFunctions($c){$g=array("");if(ereg('char|date|time',$c["type"])){$g=(ereg('char',$c["type"])?array("","md5","sha1","password","encrypt","uuid"):array("","now"));}if(!isset($_GET["call"])&&(isset($_GET["select"])||where($_GET))){if(ereg('int|float|double|decimal',$c["type"])){$g=array("","+","-");}if(ereg('date',$c["type"])){$g[]="+ interval";$g[]="- interval";}if(ereg('time',$c["type"])){$g[]="addtime";$g[]="subtime";}if(ereg('char|text',$c["type"])){$g[]="concat";}}if($c["null"]){array_unshift($g,"NULL");}return$g;}function editInput($n,$c,$hb,$q){if($c["type"]=="enum"){return($c["null"]?" ":"")."";}return"";}function processInput($c,$q,$_=""){global$d;$h=$c["field"];$g=$d->quote($q);if(ereg('^(now|uuid)$',$_)){$g="$_()";}elseif(ereg('^[+-]$',$_)){$g=idf_escape($h)." $_ $g";}elseif(ereg('^[+-] interval$',$_)){$g=idf_escape($h)." $_ ".(preg_match("~^([0-9]+|'[0-9.: -]') [A-Z_]+$~i",$q)?$q:$g);}elseif(ereg('^(addtime|subtime|concat)$',$_)){$g="$_(".idf_escape($h).", $g)";}elseif(ereg('^(md5|sha1|password|encrypt)$',$_)){$g="$_($g)";}return$g;}function dumpOutput($v){$g=array('text'=>lang(30),'file'=>lang(31));if(function_exists('gzencode')){$g['gz']='gzip';}if(function_exists('bzcompress')){$g['bz2']='bzip2';}return html_select("output",$g,"text",$v);}function dumpFormat($v){return html_select("format",array('sql'=>'SQL','csv'=>'CSV'),"sql",$v);}function navigation($ac){global$qb,$d;echo'

',$this->name(),' ',$qb,' ',(version_compare($qb,$_COOKIE["adminer_version"])<0?h($_COOKIE["adminer_version"]):""),'

';if($ac!="auth"){$Ea=get_databases();echo'

',bold(lang(29),isset($_GET["sql"])),' ',bold(lang(32),isset($_GET["dump"])),'

',SID_FORM;if($_GET["server"]!=""){echo'';}echo($Ea?html_select("db",array(""=>"(".lang(34).")")+$Ea,DB,"this.form.submit();"):'');if(isset($_GET["sql"])){echo'';}if(isset($_GET["schema"])){echo'';}if(isset($_GET["dump"])){echo'';}echo'

';if($ac!="db"&&DB!=""&&$d->select_db(DB)){$gc=tables_list();if(!$gc){echo"

".lang(4)."\n";}else{$this->tablesPrint($gc);}echo'

'.bold(lang(35),$_GET["create"]==="")."\n";}}}function tablesPrint($gc){echo"

\n";foreach($gc as$n){echo''.bold(lang(36),$_GET["select"]==$n).' ',''.bold($this->tableName(array("Name"=>$n)),$_GET["table"]==$n)."
\n";}}}$p=(function_exists('adminer_object')?adminer_object():new Adminer);function page_header($wd,$o="",$nc=array(),$nd=""){global$qa,$qb,$p,$d;header("Content-Type: text/html; charset=utf-8");header("X-Frame-Options: deny");$Ld=$wd.($nd!=""?": ".h($nd):"");echo' ',$Ld.($_GET["server"]!=""&&$_GET["server"]!="localhost"?h(" - $_GET[server]"):"")." - ".$p->name(),' ';if(file_exists("adminer.css")){echo' ';}echo'

';if(isset($nc)){$y=substr(preg_replace('~db=[^&]*&~','',ME),0,-1);echo'

$Ld

\n";restart_session();if($_SESSION["messages"]){echo"
".implode("
\n
",$_SESSION["messages"])."
\n";$_SESSION["messages"]=array();}if(!$_POST&&!isset($_SESSION["passwords"])){$_SESSION["passwords"]=array();}$Ea=&$_SESSION["databases"][$_GET["server"]];if(DB!=""&&$Ea&&!in_array(DB,$Ea,true)){$Ea=null;}if($o){echo"
$o
\n";}}function page_footer($ac=false){global$p;echo'
';switch_lang();echo' ';}if(extension_loaded('pdo')){class Min_PDO extends PDO{var$_result,$server_info,$affected_rows,$error;function __construct(){}function dsn($ae,$A,$ya){set_exception_handler('auth_error');parent::__construct($ae,$A,$ya);restore_exception_handler();$this->setAttribute(13,array('Min_PDOStatement'));}function select_db($ic){return$this->query("USE ".idf_escape($ic));}function query($m,$Jb=false){$f=parent::query($m);if(!$f){$_e=$this->errorInfo();$this->error=$_e[2];return false;}$this->store_result($f);return$f;}function multi_query($m){return$this->_result=$this->query($m);}function store_result($f=null){if(!$f){$f=$this->_result;}if($f->columnCount()){$f->num_rows=$f->rowCount();return$f;}$this->affected_rows=$f->rowCount();return true;}function next_result(){return$this->_result->nextRowset();}function result($f,$c=0){if(!$f){return false;}$a=$f->fetch();return$a[$c];}}class Min_PDOStatement extends PDOStatement{var$_offset=0,$num_rows;function fetch_assoc(){return$this->fetch(2);}function fetch_row(){return$this->fetch(3);}function fetch_field(){$a=(object)$this->getColumnMeta($this->_offset++);$a->orgtable=$a->table;$a->orgname=$a->name;$a->charsetnr=(in_array("blob",$a->flags)?63:0);return$a;}}}if(extension_loaded("mysqli")){class Min_DB extends MySQLi{var$extension="MySQLi";function Min_DB(){parent::init();}function connect($K,$A,$ya){list($ze,$ec)=explode(":",$K,2);return@$this->real_connect(($K!=""?$ze:ini_get("mysqli.default_host")),("$K$A"!=""?$A:ini_get("mysqli.default_user")),("$K$A$ya"!=""?$ya:ini_get("mysqli.default_pw")),null,(is_numeric($ec)?$ec:ini_get("mysqli.default_port")),(!is_numeric($ec)?$ec:null));}function result($f,$c=0){if(!$f){return false;}$a=$f->fetch_array();return$a[$c];}function quote($P){return"'".$this->escape_string($P)."'";}}}elseif(extension_loaded("mysql")){class Min_DB{var$extension="MySQL",$_link,$_result,$server_info,$affected_rows,$error;function connect($K,$A,$ya){$this->_link=@mysql_connect(($K!=""?$K:ini_get("mysql.default_host")),("$K$A"!=""?$A:ini_get("mysql.default_user")),("$K$A$ya"!=""?$ya:ini_get("mysql.default_password")),true,131072);if($this->_link){$this->server_info=mysql_get_server_info($this->_link);}else{$this->error=mysql_error();}return(bool)$this->_link;}function quote($P){return"'".mysql_real_escape_string($P,$this->_link)."'";}function select_db($ic){return mysql_select_db($ic,$this->_link);}function query($m,$Jb=false){$f=@($Jb?mysql_unbuffered_query($m,$this->_link):mysql_query($m,$this->_link));if(!$f){$this->error=mysql_error($this->_link);return false;}if($f===true){$this->affected_rows=mysql_affected_rows($this->_link);$this->info=mysql_info($this->_link);return true;}return new Min_Result($f);}function multi_query($m){return$this->_result=$this->query($m);}function store_result(){return$this->_result;}function next_result(){return false;}function result($f,$c=0){if(!$f){return false;}return mysql_result($f->_result,0,$c);}}class Min_Result{var$_result,$_offset=0,$num_rows;function Min_Result($f){$this->_result=$f;$this->num_rows=mysql_num_rows($f);}function fetch_assoc(){return mysql_fetch_assoc($this->_result);}function fetch_row(){return mysql_fetch_row($this->_result);}function fetch_field(){$a=mysql_fetch_field($this->_result,$this->_offset++);$a->orgtable=$a->table;$a->orgname=$a->name;$a->charsetnr=($a->blob?63:0);return$a;}function __destruct(){mysql_free_result($this->_result);}}}elseif(extension_loaded("pdo_mysql")){class Min_DB extends Min_PDO{var$extension="PDO_MySQL";function connect($K,$A,$ya){$this->dsn("mysql:host=".str_replace(":",";unix_socket=",preg_replace('~:([0-9])~',';port=\\1',$K)),$A,$ya);$this->server_info=$this->result($this->query("SELECT VERSION()"));return true;}function query($m,$Jb=false){$this->setAttribute(1000,!$Jb);return parent::query($m,$Jb);}}}else{page_header(lang(37),lang(38,'MySQLi, MySQL, PDO_MySQL'),null);page_footer("auth");exit;}function connect(){global$p;$d=new Min_DB;$sc=$p->credentials();if($d->connect($sc[0],$sc[1],$sc[2])){$d->query("SET SQL_QUOTE_SHOW_CREATE=1");$d->query("SET NAMES utf8");return$d;}return$d->error;}function get_databases($we=true){$g=&$_SESSION["databases"][$_GET["server"]];if(!isset($g)){restart_session();$g=get_vals("SHOW DATABASES");if($we){ob_flush();flush();}}return$g;}function db_collation($x,$N){global$d;$g=null;$f=$d->query("SHOW CREATE DATABASE ".idf_escape($x));if($f){$aa=$d->result($f,1);if(preg_match('~ COLLATE ([^ ]+)~',$aa,$k)){$g=$k[1];}elseif(preg_match('~ CHARACTER SET ([^ ]+)~',$aa,$k)){$g=$N[$k[1]][0];}}return$g;}function engines(){global$d;$g=array();$f=$d->query("SHOW ENGINES");while($a=$f->fetch_assoc()){if(ereg("YES|DEFAULT",$a["Support"])){$g[]=$a["Engine"];}}return$g;}function tables_list(){return get_vals("SHOW TABLES");}function table_status($h=""){global$d;$g=array();$f=$d->query("SHOW TABLE STATUS".($h!=""?" LIKE ".$d->quote(addcslashes($h,"%_")):""));while($a=$f->fetch_assoc()){if($a["Engine"]=="InnoDB"){$a["Comment"]=preg_replace('~(?:(.+); )?InnoDB free: .*~','\\1',$a["Comment"]);}if($h!=""){return$a;}$g[$a["Name"]]=$a;}return$g;}function table_status_referencable(){$g=array();foreach(table_status()as$h=>$a){if($a["Engine"]=="InnoDB"){$g[$h]=$a;}}return$g;}function fields($n){global$d;$g=array();$f=$d->query("SHOW FULL COLUMNS FROM ".idf_escape($n));if($f){while($a=$f->fetch_assoc()){preg_match('~^([^( ]+)(?:\\((.+)\\))?( unsigned)?( zerofill)?$~',$a["Type"],$k);$g[$a["Field"]]=array("field"=>$a["Field"],"full_type"=>$a["Type"],"type"=>$k[1],"length"=>$k[2],"unsigned"=>ltrim($k[3].$k[4]),"default"=>($a["Default"]!=""||ereg("char",$k[1])?$a["Default"]:null),"null"=>($a["Null"]=="YES"),"auto_increment"=>($a["Extra"]=="auto_increment"),"on_update"=>(eregi('^on update (.+)',$a["Extra"],$k)?$k[1]:""),"collation"=>$a["Collation"],"privileges"=>array_flip(explode(",",$a["Privileges"])),"comment"=>$a["Comment"],"primary"=>($a["Key"]=="PRI"),);}}return$g;}function indexes($n,$pa=null){global$d;if(!is_object($pa)){$pa=$d;}$g=array();$f=$pa->query("SHOW INDEX FROM ".idf_escape($n));if($f){while($a=$f->fetch_assoc()){$g[$a["Key_name"]]["type"]=($a["Key_name"]=="PRIMARY"?"PRIMARY":($a["Index_type"]=="FULLTEXT"?"FULLTEXT":($a["Non_unique"]?"INDEX":"UNIQUE")));$g[$a["Key_name"]]["columns"][$a["Seq_in_index"]]=$a["Column_name"];$g[$a["Key_name"]]["lengths"][$a["Seq_in_index"]]=$a["Sub_part"];}}return$g;}function foreign_keys($n){global$d,$Wa;static$_a='(?:[^`]|``)+';$g=array();$f=$d->query("SHOW CREATE TABLE ".idf_escape($n));if($f){$De=$d->result($f,1);preg_match_all("~CONSTRAINT `($_a)` FOREIGN KEY \\(((?:`$_a`,? ?)+)\\) REFERENCES `($_a)`(?:\\.`($_a)`)? \\(((?:`$_a`,? ?)+)\\)(?: ON DELETE (".implode("|",$Wa)."))?(?: ON UPDATE (".implode("|",$Wa)."))?~",$De,$I,PREG_SET_ORDER);foreach($I as$k){preg_match_all("~`($_a)`~",$k[2],$ca);preg_match_all("~`($_a)`~",$k[5],$Qa);$g[$k[1]]=array("db"=>idf_unescape($k[4]!=""?$k[3]:$k[4]),"table"=>idf_unescape($k[4]!=""?$k[4]:$k[3]),"source"=>array_map('idf_unescape',$ca[1]),"target"=>array_map('idf_unescape',$Qa[1]),"on_delete"=>$k[6],"on_update"=>$k[7],);}}return$g;}function view($h){global$d;return array("select"=>preg_replace('~^(?:[^`]|`[^`]*`)* AS ~U','',$d->result($d->query("SHOW CREATE VIEW ".idf_escape($h)),1)));}function collations(){global$d;$g=array();$f=$d->query("SHOW COLLATION");while($a=$f->fetch_assoc()){$g[$a["Charset"]][]=$a["Collation"];}ksort($g);foreach($g as$e=>$b){sort($g[$e]);}return$g;}function information_schema($x){global$d;return($d->server_info>=5&&$x=="information_schema");}function error(){global$d;return h(preg_replace('~^You have an error.*syntax to use~U',"Syntax error",$d->error));}function exact_value($b){global$d;return"BINARY ".$d->quote($b);}$ra=array();$jc=array();foreach(array(lang(39)=>array("tinyint"=>3,"smallint"=>5,"mediumint"=>8,"int"=>10,"bigint"=>20,"decimal"=>66,"float"=>12,"double"=>21),lang(40)=>array("date"=>10,"datetime"=>19,"timestamp"=>19,"time"=>10,"year"=>4),lang(41)=>array("char"=>255,"varchar"=>65535,"tinytext"=>255,"text"=>65535,"mediumtext"=>16777215,"longtext"=>4294967295),lang(42)=>array("binary"=>255,"varbinary"=>65535,"tinyblob"=>255,"blob"=>65535,"mediumblob"=>16777215,"longblob"=>4294967295),lang(43)=>array("enum"=>65535,"set"=>64),)as$e=>$b){$ra+=$b;$jc[$e]=array_keys($b);}$sb=array("unsigned","zerofill","unsigned zerofill");function int32($G){while($G>=2147483648){$G-=4294967296;}while($G<=-2147483649){$G+=4294967296;}return(int)$G;}function long2str($r,$hc){$C='';foreach($r as$b){$C.=pack('V',$b);}if($hc){return substr($C,0,end($r));}return$C;}function str2long($C,$hc){$r=array_values(unpack('V*',str_pad($C,4*ceil(strlen($C)/4),"\0")));if($hc){$r[]=strlen($C);}return$r;}function xxtea_mx($S,$R,$Z,$fa){return int32((($S>>5&0x7FFFFFF)^$R<<2)+(($R>>3&0x1FFFFFFF)^$S<<4))^int32(($Z^$R)+($fa^$S));}function encrypt_string($yb,$e){if($yb==""){return"";}$e=array_values(unpack("V*",pack("H*",md5($e))));$r=str2long($yb,true);$G=count($r)-1;$S=$r[$G];$R=$r[0];$ha=floor(6+52/($G+1));$Z=0;while($ha-->0){$Z=int32($Z+0x9E3779B9);$Ib=$Z>>2&3;for($W=0;$W<$G;$W++){$R=$r[$W+1];$ab=xxtea_mx($S,$R,$Z,$e[$W&3^$Ib]);$S=int32($r[$W]+$ab);$r[$W]=$S;}$R=$r[0];$ab=xxtea_mx($S,$R,$Z,$e[$W&3^$Ib]);$S=int32($r[$G]+$ab);$r[$G]=$S;}return long2str($r,false);}function decrypt_string($yb,$e){if($yb==""){return"";}$e=array_values(unpack("V*",pack("H*",md5($e))));$r=str2long($yb,false);$G=count($r)-1;$S=$r[$G];$R=$r[0];$ha=floor(6+52/($G+1));$Z=int32($ha*0x9E3779B9);while($Z){$Ib=$Z>>2&3;for($W=$G;$W>0;$W--){$S=$r[$W-1];$ab=xxtea_mx($S,$R,$Z,$e[$W&3^$Ib]);$R=int32($r[$W]-$ab);$r[$W]=$R;}$S=$r[$G];$ab=xxtea_mx($S,$R,$Z,$e[$W&3^$Ib]);$R=int32($r[0]-$ab);$r[0]=$R;$Z=int32($Z-0x9E3779B9);}return long2str($r,true);}if(isset($_POST["server"])){session_regenerate_id();$_SESSION["usernames"][$_POST["server"]]=$_POST["username"];$_SESSION["passwords"][$_POST["server"]]=$_POST["password"];if($_POST["permanent"]){cookie("adminer_permanent",base64_encode($_POST["server"]).":".base64_encode($_POST["username"]).":".base64_encode(encrypt_string($_POST["password"],$p->permanentLogin())));}if(count($_POST)==($_POST["permanent"]?4:3)){$z=((string)$_GET["server"]===$_POST["server"]?remove_from_uri(session_name()):preg_replace('~^([^?]*).*~','\\1',ME).($_POST["server"]!=""?'?server='.urlencode($_POST["server"]):''));if(SID_FORM){$Na=strpos($z,'?');$z=($Na?substr_replace($z,SID."&",$Na+1,0):"$z?".SID);}redirect($z);}$_GET["server"]=$_POST["server"];}elseif($_POST["logout"]){$E=$_SESSION["tokens"][$_GET["server"]];if($E&&$_POST["token"]!=$E){page_header(lang(33),lang(44));page_footer("db");exit;}else{foreach(array("usernames","passwords","databases","tokens","history")as$b){unset($_SESSION[$b][$_GET["server"]]);}if(!isset($_SESSION["passwords"])){$_SESSION["passwords"]=array();}cookie("adminer_permanent","");redirect(substr(preg_replace('~db=[^&]*&~','',ME),0,-1),lang(45));}}elseif($_COOKIE["adminer_permanent"]&&!isset($_SESSION["usernames"][$_GET["server"]])){list($K,$A,$pe)=array_map('base64_decode',explode(":",$_COOKIE["adminer_permanent"]));if(($_GET["server"]==""&&!$_POST)||$K==$_GET["server"]){session_regenerate_id();$_SESSION["usernames"][$K]=$A;$_SESSION["passwords"][$K]=decrypt_string($pe,$p->permanentLogin());if($K!=$_GET["server"]){redirect(preg_replace('~^([^?]*).*~','\\1',ME).'?server='.urlencode($K));}}}function auth_error($Ed=null){global$d,$p;$fc=session_name();$A=$_SESSION["usernames"][$_GET["server"]];unset($_SESSION["usernames"][$_GET["server"]]);page_header(lang(10),(isset($A)?h($Ed?$Ed->getMessage():(is_string($d)?$d:lang(46))):(!$_COOKIE[$fc]&&$_GET[$fc]&&ini_get("session.use_only_cookies")?lang(47):(($_COOKIE[$fc]||$_GET[$fc])&&!isset($_SESSION["passwords"])?lang(48):""))),null);echo"
\n";$p->loginForm($A);echo"
";hidden_fields($_POST,array("server","username","password"));echo"
\n","
\n";page_footer("auth");}$A=&$_SESSION["usernames"][$_GET["server"]];if(!isset($A)){$A=$_GET["username"];}$d=(isset($A)?connect():'');if(is_string($d)||!$p->login($A,$_SESSION["passwords"][$_GET["server"]])){auth_error();exit;}unset($A);if(!$_SESSION["tokens"][$_GET["server"]]){$_SESSION["tokens"][$_GET["server"]]=rand(1,1e6);}if(isset($_POST["server"])&&$_POST["token"]){$_POST["token"]=$_SESSION["tokens"][$_GET["server"]];}$E=$_SESSION["tokens"][$_GET["server"]];$o=($_POST?($_POST["token"]==$E?"":lang(44)):($_SERVER["REQUEST_METHOD"]!="POST"?"":lang(49,'"post_max_size"')));function connect_error(){global$d,$qb,$E,$o;if(DB!=""){page_header(lang(50).": ".h(DB),lang(51),false);}else{if($_POST["db"]&&!$o){unset($_SESSION["databases"][$_GET["server"]]);foreach($_POST["db"]as$x){if(!queries("DROP DATABASE ".idf_escape($x))){break;}}queries_redirect(substr(ME,0,-1),lang(52),!$d->error);}page_header(lang(53),$o,null);echo"

";foreach(array('database'=>lang(54),'privileges'=>lang(55),'processlist'=>lang(56),'variables'=>lang(57),'status'=>lang(58),)as$e=>$b){echo"$b\n";}echo"

".lang(59,"server_info<4.1?" class='binary'":"").">$d->server_info","$d->extension")."\n","

".lang(60,"".h($d->result($d->query("SELECT USER()")))."")."\n";$Ea=get_databases();if($Ea){$N=collations();echo"

\n","\n","\n";foreach($Ea as$x){$Cd=h(ME)."db=".urlencode($x);echo"
 ".lang(50)."".lang(61)."
".checkbox("db[]",$x,in_array($x,(array)$_POST["db"])),"".h($x)."","".nbsp(db_collation($x,$N))."","\n";}echo"
\n","

\n","

\n";}}page_footer("db");}if(isset($_GET["status"])){$_GET["variables"]=$_GET["status"];}if(!(DB!=""?$d->select_db(DB):isset($_GET["sql"])||isset($_GET["dump"])||isset($_GET["database"])||isset($_GET["processlist"])||isset($_GET["privileges"])||isset($_GET["user"])||isset($_GET["variables"]))){if(DB!=""){unset($_SESSION["databases"][$_GET["server"]]);}connect_error();exit;}function select($f,$pa=null){if(!$f->num_rows){echo"

".lang(64)."\n";}else{echo"\n";$Ca=array();$w=array();$t=array();$Bd=array();$ra=array();odd('');for($i=0;$a=$f->fetch_row();$i++){if(!$i){echo"";for($M=0;$Mfetch_field();$da=$c->orgtable;$Kb=$c->orgname;if($da!=""){if(!isset($w[$da])){$w[$da]=array();foreach(indexes($da,$pa)as$s){if($s["type"]=="PRIMARY"){$w[$da]=array_flip($s["columns"]);break;}}$t[$da]=$w[$da];}if(isset($t[$da][$Kb])){unset($t[$da][$Kb]);$w[$da][$Kb]=$M;$Ca[$M]=$da;}}if($c->charsetnr==63){$Bd[$M]=true;}$ra[$M]=$c->type;echo"name!=$Kb?" title='".h(($da!=""?"$da.":"").$Kb)."'":"").">".h($c->name);}echo"\n";}echo"";foreach($a as$e=>$b){if(!isset($b)){$b="NULL";}else{if($Bd[$e]&&!is_utf8($b)){$b="".lang(18,strlen($b))."";}elseif($b==""){$b=" ";}else{$b=h($b);if($ra[$e]==254){$b="$b";}}if(isset($Ca[$e])&&!$t[$Ca[$e]]){$y="edit=".urlencode($Ca[$e]);foreach($w[$Ca[$e]]as$Ob=>$M){$y.="&where".urlencode("[".bracket_escape($Ob)."]")."=".urlencode($a[$M]);}$b="$b";}}echo"
$b";}}echo"
\n";}}function referencable_primary($ne){$g=array();foreach(table_status_referencable()as$X=>$n){if($X!=$ne){foreach(fields($X)as$c){if($c["primary"]){if($g[$X]){unset($g[$X]);break;}$g[$X]=$c;}}}}return$g;}function edit_type($e,$c,$N,$F=array()){global$jc,$sb,$eb;echo' ',"',($sb?" ':' ');}function process_length($ua){global$Xa;return(preg_match("~^\\s*(?:$Xa)(?:\\s*,\\s*(?:$Xa))*\\s*\$~",$ua)&&preg_match_all("~$Xa~",$ua,$I)?implode(",",$I[0]):preg_replace('~[^0-9,+-]~','',$ua));}function process_type($c,$Db="COLLATE"){global$d,$sb;return" $c[type]".($c["length"]!=""&&!ereg('^date|time$',$c["type"])?"(".process_length($c["length"]).")":"").(ereg('int|float|double|decimal',$c["type"])&&in_array($c["unsigned"],$sb)?" $c[unsigned]":"").(ereg('char|text|enum|set',$c["type"])&&$c["collation"]?" $Db ".$d->quote($c["collation"]):"");}function process_field($c,$Hb){global$d;return idf_escape($c["field"]).process_type($Hb).($c["null"]?" NULL":" NOT NULL").(!isset($c["default"])?"":" DEFAULT ".($c["type"]=="timestamp"&&eregi("^CURRENT_TIMESTAMP$",$c["default"])?$c["default"]:$d->quote($c["default"]))).($c["on_update"]?" ON UPDATE $c[on_update]":"")." COMMENT ".$d->quote($c["comment"]);}function type_class($U){foreach(array('char'=>'text','date'=>'time|year','binary'=>'blob','enum'=>'set',)as$e=>$b){if(ereg("$e|$b",$U)){return" class='$e'";}}}function edit_fields($l,$N,$U="TABLE",$Fd=0,$F=array()){global$eb;$nb=false;foreach($l as$c){if($c["comment"]!=""){$nb=true;break;}}echo' ';if($U=="PROCEDURE"){echo' ';}echo'',($U=="TABLE"?lang(67):lang(68)),'',lang(69),' ',lang(70),'',lang(71);if($U=="TABLE"){echo'NULL A_I ',lang(73),'

".lang(82)."

\n";$w=indexes($j);if($w){echo"\n";foreach($w as$h=>$s){ksort($s["columns"]);$vb=array();foreach($s["columns"]as$e=>$b){$vb[]="".h($b)."".($s["lengths"][$e]?"(".$s["lengths"][$e].")":"");}echo"
$s[type]".implode(", ",$vb)."\n";}echo"
\n";}echo'

'.lang(83)."\n";if($Y["Engine"]=="InnoDB"){echo"

".lang(65)."

\n";$F=foreign_keys($j);if($F){echo"\n";foreach($F as$h=>$J){$y=($J["db"]!=""?"".h($J["db"]).".":"").h($J["table"]);echo"","
".implode(", ",array_map('h',$J["source"]))."","$y","(".implode(", ",array_map('h',$J["target"])).")",''.lang(84).'';}echo"
\n";}echo'

'.lang(85)."\n";}if($d->server_info>=5){echo"

".lang(86)."

\n";$f=$d->query("SHOW TRIGGERS LIKE ".$d->quote(addcslashes($j,"%_")));if($f->num_rows){echo"\n";while($a=$f->fetch_assoc()){echo"
$a[Timing]$a[Event]".h($a["Trigger"])."".lang(84)."\n";}echo"
\n";}echo'

'.lang(87)."\n";}}}}elseif(isset($_GET["schema"])){page_header(lang(88),"",array(),DB);$Ga=array();$Sd=array();preg_match_all('~([^:]+):([-0-9.]+)x([-0-9.]+)(_|$)~',$_COOKIE["adminer_schema"],$I,PREG_SET_ORDER);foreach($I as$i=>$k){$Ga[$k[1]]=array($k[2],$k[3]);$Sd[]="\n\t'".addcslashes($k[1],"\r\n'\\")."': [ $k[2], $k[3] ]";}$lb=0;$Vd=-1;$Ha=array();$Xd=array();$Wd=array();foreach(table_status()as$a){if(!isset($a["Engine"])){continue;}$Na=0;$Ha[$a["Name"]]["fields"]=array();foreach(fields($a["Name"])as$h=>$c){$Na+=1.25;$c["pos"]=$Na;$Ha[$a["Name"]]["fields"][$h]=$c;}$Ha[$a["Name"]]["pos"]=($Ga[$a["Name"]]?$Ga[$a["Name"]]:array($lb,0));if($a["Engine"]=="InnoDB"){foreach(foreign_keys($a["Name"])as$b){if(!$b["db"]){$V=$Vd;if($Ga[$a["Name"]][1]||$Ga[$b["table"]][1]){$V=min(floatval($Ga[$a["Name"]][1]),floatval($Ga[$b["table"]][1]))-1;}else{$Vd-=.1;}while($Wd[(string)$V]){$V-=.0001;}$Ha[$a["Name"]]["references"][$b["table"]][(string)$V]=array($b["source"],$b["target"]);$Xd[$b["table"]][$a["Name"]][(string)$V]=$b["target"];$Wd[(string)$V]=true;}}}$lb=max($lb,$Ha[$a["Name"]]["pos"][0]+2.5+$Na);}echo'

';foreach($Ha as$h=>$n){echo"
",''.h($h)."
\n";foreach($n["fields"]as$c){$b=''.h($c["field"]).'';echo($c["primary"]?"$b":$b)."
\n";}foreach((array)$n["references"]as$ib=>$tb){foreach($tb as$V=>$Xb){$Ab=$V-$Ga[$h][1];$i=0;foreach($Xb[0]as$ca){echo"
\n";}}}foreach((array)$Xd[$h]as$ib=>$tb){foreach($tb as$V=>$t){$Ab=$V-$Ga[$h][1];$i=0;foreach($t as$Qa){echo"
\n";}}}echo"
\n";}foreach($Ha as$h=>$n){foreach((array)$n["references"]as$ib=>$tb){foreach($tb as$V=>$Xb){$Qb=$lb;$yc=-10;foreach($Xb[0]as$e=>$ca){$Jd=$n["pos"][0]+$n["fields"][$ca]["pos"];$Id=$Ha[$ib]["pos"][0]+$Ha[$ib]["fields"][$Xb[1][$e]]["pos"];$Qb=min($Qb,$Jd,$Id);$yc=max($yc,$Jd,$Id);}echo"
\n";}}}echo'
';}elseif(isset($_GET["dump"])){$j=$_GET["dump"];if($_POST){$Ma=dump_headers(($j!=""?$j:DB),(DB==""||count((array)$_POST["tables"]+(array)$_POST["data"])>1));if($_POST["format"]=="sql"){echo"-- Adminer $qb dump SET NAMES utf8; SET foreign_key_checks = 0; SET time_zone = ".$d->quote($d->result($d->query("SELECT @@time_zone")))."; SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; ";}$B=$_POST["db_style"];foreach((DB!=""?array(DB):(array)$_POST["databases"])as$x){if($d->select_db($x)){if($_POST["format"]=="sql"&&ereg('CREATE',$B)&&($f=$d->query("SHOW CREATE DATABASE ".idf_escape($x)))){if($B=="DROP+CREATE"){echo"DROP DATABASE IF EXISTS ".idf_escape($x).";\n";}$aa=$d->result($f,1);echo($B=="CREATE+ALTER"?preg_replace('~^CREATE DATABASE ~','\\0IF NOT EXISTS ',$aa):$aa).";\n";}if($_POST["format"]=="sql"){if($B){echo"USE ".idf_escape($x).";\n\n";}if(in_array("CREATE+ALTER",array($B,$_POST["table_style"]))){echo"SET @adminer_alter = '';\n\n";}$Da="";if($_POST["routines"]){foreach(array("FUNCTION","PROCEDURE")as$na){$f=$d->query("SHOW $na STATUS WHERE Db = ".$d->quote($x));while($a=$f->fetch_assoc()){$Da.=($B!='DROP+CREATE'?"DROP $na IF EXISTS ".idf_escape($a["Name"]).";;\n":"").$d->result($d->query("SHOW CREATE $na ".idf_escape($a["Name"])),2).";;\n\n";}}}if($_POST["events"]){$f=$d->query("SHOW EVENTS");if($f){while($a=$f->fetch_assoc()){$Da.=($B!='DROP+CREATE'?"DROP EVENT IF EXISTS ".idf_escape($a["Name"]).";;\n":"").$d->result($d->query("SHOW CREATE EVENT ".idf_escape($a["Name"])),3).";;\n\n";}}}if($Da){echo"DELIMITER ;;\n\n$Da"."DELIMITER ;\n\n";}}if($_POST["table_style"]||$_POST["data_style"]){$Lb=array();foreach(table_status()as$a){$n=(DB==""||in_array($a["Name"],(array)$_POST["tables"]));$Nd=(DB==""||in_array($a["Name"],(array)$_POST["data"]));if($n||$Nd){if(isset($a["Engine"])){if($Ma=="tar"){ob_start();}dump_table($a["Name"],($n?$_POST["table_style"]:""));if($Nd){dump_data($a["Name"],$_POST["data_style"]);}if($n){dump_triggers($a["Name"],$_POST["table_style"]);}if($Ma=="tar"){echo tar_file((DB!=""?"":"$x/")."$a[Name].csv",ob_get_clean());}elseif($_POST["format"]=="sql"){echo"\n";}}elseif($_POST["format"]=="sql"){$Lb[]=$a["Name"];}}}foreach($Lb as$ue){dump_table($ue,$_POST["table_style"],true);}if($Ma=="tar"){echo pack("x512");}}if($B=="CREATE+ALTER"&&$_POST["format"]=="sql"){$m="SELECT TABLE_NAME, ENGINE, TABLE_COLLATION, TABLE_COMMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE()";echo"DELIMITER ;; CREATE PROCEDURE adminer_alter (INOUT alter_command text) BEGIN DECLARE _table_name, _engine, _table_collation varchar(64); DECLARE _table_comment varchar(64); DECLARE done bool DEFAULT 0; DECLARE tables CURSOR FOR $m; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN tables; REPEAT FETCH tables INTO _table_name, _engine, _table_collation, _table_comment; IF NOT done THEN CASE _table_name";$f=$d->query($m);while($a=$f->fetch_assoc()){$Zb=$d->quote($a["ENGINE"]=="InnoDB"?preg_replace('~(?:(.+); )?InnoDB free: .*~','\\1',$a["TABLE_COMMENT"]):$a["TABLE_COMMENT"]);echo" WHEN ".$d->quote($a["TABLE_NAME"])." THEN ".(isset($a["ENGINE"])?"IF _engine != '$a[ENGINE]' OR _table_collation != '$a[TABLE_COLLATION]' OR _table_comment != $Zb THEN ALTER TABLE ".idf_escape($a["TABLE_NAME"])." ENGINE=$a[ENGINE] COLLATE=$a[TABLE_COLLATION] COMMENT=$Zb; END IF":"BEGIN END").";";}echo" ELSE SET alter_command = CONCAT(alter_command, 'DROP TABLE `', REPLACE(_table_name, '`', '``'), '`;\\n'); END CASE; END IF; UNTIL done END REPEAT; CLOSE tables; END;; DELIMITER ; CALL adminer_alter(@adminer_alter); DROP PROCEDURE adminer_alter; ";}if(in_array("CREATE+ALTER",array($B,$_POST["table_style"]))&&$_POST["format"]=="sql"){echo"SELECT @adminer_alter;\n";}}}exit;}page_header(lang(89),"",($_GET["export"]!=""?array("table"=>$_GET["export"]):array()),DB);echo'
';$ed=array('','USE','DROP+CREATE','CREATE');$Uc=array('','DROP+CREATE','CREATE');$ve=array('','TRUNCATE+INSERT','INSERT','INSERT+UPDATE');if($d->server_info>=5){$ed[]='CREATE+ALTER';$Uc[]='CREATE+ALTER';}echo"
".lang(90)."".$p->dumpOutput(0)."\n";echo"
".lang(91)."".$p->dumpFormat(0)."\n","
".lang(50)."".html_select('db_style',$ed,(DB!=""?'':'CREATE'));if($d->server_info>=5){$ba=$_GET["dump"]=="";echo checkbox("routines",1,$ba,lang(92));if($d->server_info>=5.1){echo checkbox("events",1,$ba,lang(93));}}echo"
".lang(94)."".html_select('table_style',$Uc,'DROP+CREATE'),"
".lang(95)."".html_select('data_style',$ve,'INSERT'),'

';$vc=array();if(DB!=""){$ba=($j!=""?"":" checked");echo"","\n";$Lb="";foreach(table_status()as$a){$h=$a["Name"];$Mb=ereg_replace("_.*","",$h);$ba=($j==""||$j==(substr($j,-1)=="%"?"$Mb%":$h));$vb="\n";foreach(get_databases()as$x){if(!information_schema($x)){$Mb=ereg_replace("_.*","",$x);echo"
","","
".checkbox("tables[]",$h,$ba,$h,"formUncheck('check-tables');");if(!$a["Engine"]){$Lb.="$vb\n";}else{echo"$vb\n";}$vc[$Mb]++;}echo$Lb;}else{echo"
".checkbox("databases[]",$x,$j==""||$j=="$Mb%",$x,"formUncheck('check-databases');")."\n";$vc[$Mb]++;}}}echo'

';$bb=true;foreach($vc as$e=>$b){if($e!=""&&$b>1){echo($bb?"

":" ")."".h($e)."";$bb=false;}}}elseif(isset($_GET["privileges"])){page_header(lang(55));$f=$d->query("SELECT User, Host FROM mysql.user ORDER BY Host, User");if(!$f){echo'

',SID_FORM;if($_GET["server"]!=""){echo'';}echo lang(8),': ',lang(7),':

';$f=$d->query("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1) AS User, SUBSTRING_INDEX(CURRENT_USER, '@', -1) AS Host");}echo"\n","\n";while($a=$f->fetch_assoc()){echo'
 ".lang(8)."".lang(7)."
'.lang(97).''.h($a["User"])."".h($a["Host"])."\n";}echo"
\n",'

'.lang(98)."";}elseif(isset($_GET["sql"])){restart_session();$Ya=&$_SESSION["history"][$_GET["server"]][DB];if(!$o&&$_POST["clear"]){$Ya=array();redirect(remove_from_uri("history"));}page_header(lang(29),$o);if(!$o&&$_POST){$Ia=false;$m=$_POST["query"];if($_POST["webfile"]){$Ia=@fopen((file_exists("adminer.sql")?"adminer.sql":(file_exists("adminer.sql.gz")?"compress.zlib://adminer.sql.gz":"compress.bzip2://adminer.sql.bz2")),"rb");$m=($Ia?fread($Ia,1e6):false);}elseif($_POST["file"]){$m=get_file("sql_file",true);}if(is_string($m)){if(function_exists('memory_get_usage')){@ini_set("memory_limit",2*strlen($m)+memory_get_usage()+8e6);}if($m!=""&&strlen($m)<1e6&&(!$Ya||end($Ya)!=$m)){$Ya[]=$m;}$tc="(\\s|/\\*.*\\*/|(#|-- )[^\n]*\n|--\n)";$Be="(CREATE|DROP)$tc+(DATABASE|SCHEMA)\\b~isU";if(!ini_get("session.use_cookies")){session_write_close();}$xc=";";$ja=0;$Wc=true;$pa=(DB!=""?connect():null);if(is_object($pa)){$pa->select_db(DB);}$La=0;$Bc="";while($m!=""){if(!$ja&&preg_match('~^\\s*DELIMITER\\s+(.+)~i',$m,$k)){$xc=$k[1];$m=substr($m,strlen($k[0]));}else{preg_match('('.preg_quote($xc).'|[\'`"]|/\\*|-- |#|$)',$m,$k,PREG_OFFSET_CAPTURE,$ja);$O=$k[0][0];$ja=$k[0][1]+strlen($O);if(!$O&&$Ia&&!feof($Ia)){$m.=fread($Ia,1e5);}else{if(!$O&&rtrim($m)==""){break;}if(!$O||$O==$xc){$Wc=false;$ha=substr($m,0,$k[0][1]);$La++;echo"

".shorten_utf8(trim($ha),1000)."
\n";ob_flush();flush();$Ac=explode(" ",microtime());if(!$d->multi_query($ha)){echo"

".lang(99).": ".error()."\n";$Bc.=" $La";if($_POST["error_stops"]){break;}}else{do{$f=$d->store_result();$rc=explode(" ",microtime());$id=" (".lang(100,max(0,$rc[0]-$Ac[0]+$rc[1]-$Ac[1])).")";if(is_object($f)){select($f,$pa);echo"

".($f->num_rows?lang(101,$f->num_rows):"").$id;if($pa&&preg_match("~^($tc|\\()*SELECT\\b~isU",$ha)){$T="explain-$La";echo", EXPLAIN\n","

\n";}}else{if(preg_match("~^$tc*$Be",$m)){restart_session();$_SESSION["databases"][$_GET["server"]]=null;session_write_close();}echo"

".lang(102,$d->affected_rows)."$id\n";}unset($f);$Ac=$rc;}while($d->next_result());}$m=substr($m,$ja);$ja=0;}else{while(preg_match('~'.($O=='/*'?'\\*/':(ereg('-- |#',$O)?"\n":"$O|\\\\.")).'|$~s',$m,$k,PREG_OFFSET_CAPTURE,$ja)){$C=$k[0][0];$ja=$k[0][1]+strlen($C);if(!$C&&$Ia&&!feof($Ia)){$m.=fread($Ia,1e6);}elseif($C[0]!="\\"){break;}}}}}}if($Bc&&$La>1){echo"

".lang(99).": $Bc\n";}if($Wc){echo"

".lang(103)."\n";}}else{echo"

".upload_error($m)."\n";}}echo'

',checkbox("error_stops",1,$_POST["error_stops"],lang(105)),'

';if(!ini_get("file_uploads")){echo lang(106);}else{echo lang(107),': ';}echo'

';$Cc=array();foreach(array("gz"=>"zlib","bz2"=>"bz2")as$e=>$b){if(extension_loaded($b)){$Cc[]=".$e";}}echo lang(109,"adminer.sql".($Cc?"[".implode("|",$Cc)."]":"").""),' ';if($Ya){print_fieldset("history",lang(110),$_GET["history"]!="");foreach($Ya as$e=>$b){echo''.lang(17).' '.shorten_utf8(ltrim(str_replace("\n"," ",str_replace("\r","",preg_replace('~^(#|-- ).*~m','',$b)))),80,"")."
\n";}echo"\n","\n";}echo'

';}elseif(isset($_GET["edit"])){$j=$_GET["edit"];$D=(isset($_GET["select"])?(count($_POST["check"])==1?where_check($_POST["check"][0]):""):where($_GET));$Ua=(isset($_GET["select"])?$_POST["edit"]:$D);$l=fields($j);foreach($l as$h=>$c){if(!isset($c["privileges"][$Ua?"update":"insert"])||$p->fieldName($c)==""){unset($l[$h]);}}if($_POST&&!$o&&!isset($_GET["select"])){$z=$_POST["referer"];if($_POST["insert"]){$z=($Ua?null:$_SERVER["REQUEST_URI"]);}elseif(!ereg('^.+&select=.+$',$z)){$z=ME."select=".urlencode($j);$i=0;foreach((array)$_GET["set"]as$e=>$b){if($b==$_POST["fields"][$e]){$z.=where_link($i++,bracket_escape($e,"back"),$b);}}}if(isset($_POST["delete"])){query_redirect("DELETE FROM ".idf_escape($_GET["edit"])." WHERE $D LIMIT 1",$z,lang(112));}else{$u=array();foreach($l as$h=>$c){$b=process_input($c);if(!$Ua){$u[idf_escape($h)]=($b!==false?$b:"''");}elseif($b!==false){$u[]="\n".idf_escape($h)." = $b";}}if(!$u){redirect($z);}if($Ua){query_redirect("UPDATE ".idf_escape($j)." SET".implode(",",$u)."\nWHERE $D\nLIMIT 1",$z,lang(113));}else{query_redirect("INSERT INTO ".idf_escape($j)." (".implode(", ",array_keys($u)).")\nVALUES (".implode(", ",$u).")",$z,lang(114));}}}$X=$p->tableName(table_status($j));page_header(($Ua?lang(17):lang(115)),$o,array("select"=>array($j,$X)),$X);unset($a);if($_POST["save"]){$a=(array)$_POST["fields"];}elseif($D){$v=array();foreach($l as$h=>$c){if(isset($c["privileges"]["select"])){$v[]=($_POST["clone"]&&$c["auto_increment"]?"'' AS ":(ereg("enum|set",$c["type"])?"1*".idf_escape($h)." AS ":"")).idf_escape($h);}}$a=array();if($v){$f=$d->query("SELECT ".implode(", ",$v)." FROM ".idf_escape($j)." WHERE $D ".(isset($_GET["select"])?"HAVING COUNT(*) = 1":"LIMIT 1"));$a=$f->fetch_assoc();}}echo'
';if($l){unset($aa);echo"\n";foreach($l as$h=>$c){echo"
".$p->fieldName($c);$sa=$_GET["set"][bracket_escape($h)];$q=(isset($a)?($a[$h]!=""&&ereg("enum|set",$c["type"])?intval($a[$h]):$a[$h]):($_POST["clone"]&&$c["auto_increment"]?"":(isset($_GET["select"])?false:(isset($sa)?$sa:$c["default"]))));if(!$_POST["save"]&&is_string($q)){$q=$p->editVal($q,$c);}$_=($_POST["save"]?(string)$_POST["function"][$h]:($D&&$c["on_update"]=="CURRENT_TIMESTAMP"?"now":($q===false?null:(isset($q)?'':'NULL'))));if($c["type"]=="timestamp"&&$q=="CURRENT_TIMESTAMP"){$q="";$_="now";}input($c,$q,$_);echo"\n";}echo"
\n";}echo'

';if(isset($_GET["select"])){hidden_fields(array("check"=>(array)$_POST["check"],"clone"=>$_POST["clone"],"all"=>$_POST["all"]));}if($l){echo"\n";if(!isset($_GET["select"])){echo"\n";}}if($Ua){echo"\n";}echo'

';}elseif(isset($_GET["create"])){$j=$_GET["create"];$ld=array('HASH','LINEAR HASH','KEY','LINEAR KEY','RANGE','LIST');$hd=referencable_primary($j);$F=array();foreach($hd as$X=>$c){$F[idf_escape($X).".".idf_escape($c["field"])]=$X;}$Vb=array();$Rb=array();if($j!=""){$Vb=fields($j);$Rb=table_status($j);}if($_POST&&!$o&&!$_POST["add"]&&!$_POST["drop_col"]&&!$_POST["up"]&&!$_POST["down"]){if($_POST["drop"]){query_redirect("DROP TABLE ".idf_escape($_GET["create"]),substr(ME,0,-1),lang(120));}else{$qc=" PRIMARY KEY";if($j!=""&&$_POST["auto_increment_col"]){foreach(indexes($j)as$s){if(in_array($_POST["fields"][$_POST["auto_increment_col"]]["orig"],$s["columns"],true)){$qc="";break;}if($s["type"]=="PRIMARY"){$qc=" UNIQUE";}}}$l="";ksort($_POST["fields"]);$Sb=reset($Vb);$Za="FIRST";foreach($_POST["fields"]as$e=>$c){$Hb=(isset($ra[$c["type"]])?$c:$hd[$F[$c["type"]]]);if($c["field"]!=""){if($Hb){if(!$c["has_default"]){$c["default"]=null;}$sa=eregi_replace(" *on update CURRENT_TIMESTAMP","",$c["default"]);if($sa!=$c["default"]){$c["on_update"]="CURRENT_TIMESTAMP";$c["default"]=$sa;}$dd=process_field($c,$Hb);$kd=($e==$_POST["auto_increment_col"]);if($dd!=process_field($Sb,$Sb)||$Sb["auto_increment"]!=$kd){$l.="\n".($j!=""?($c["orig"]!=""?"CHANGE ".idf_escape($c["orig"]):"ADD"):" ")." $dd".($kd?" AUTO_INCREMENT$qc":"").($j!=""?" $Za":"").",";}if(!isset($ra[$c["type"]])){$l.=($j!=""?"\nADD":"")." FOREIGN KEY (".idf_escape($c["field"]).") REFERENCES ".idf_escape($F[$c["type"]])." (".idf_escape($Hb["field"])."),";}}$Za="AFTER ".idf_escape($c["field"]);}elseif($c["orig"]!=""){$l.="\nDROP ".idf_escape($c["orig"]).",";}if($c["orig"]!=""){$Sb=next($Vb);}}$Sa="COMMENT=".$d->quote($_POST["Comment"]).($_POST["Engine"]&&$_POST["Engine"]!=$Rb["Engine"]?" ENGINE=".$d->quote($_POST["Engine"]):"").($_POST["Collation"]&&$_POST["Collation"]!=$Rb["Collation"]?" COLLATE ".$d->quote($_POST["Collation"]):"").($_POST["Auto_increment"]!=""?" AUTO_INCREMENT=".preg_replace('~[^0-9]+~','',$_POST["Auto_increment"]):"");if(in_array($_POST["partition_by"],$ld)){$Qc=array();if($_POST["partition_by"]=='RANGE'||$_POST["partition_by"]=='LIST'){foreach(array_filter($_POST["partition_names"])as$e=>$b){$q=$_POST["partition_values"][$e];$Qc[]="\nPARTITION ".idf_escape($b)." VALUES ".($_POST["partition_by"]=='RANGE'?"LESS THAN":"IN").($q!=""?" ($q)":" MAXVALUE");}}$Sa.="\nPARTITION BY $_POST[partition_by]($_POST[partition])".($Qc?" (".implode(",",$Qc)."\n)":($_POST["partitions"]?" PARTITIONS ".intval($_POST["partitions"]):""));}elseif($d->server_info>=5.1&&$j!=""){$Sa.="\nREMOVE PARTITIONING";}$z=ME."table=".urlencode($_POST["name"]);if($j!=""){query_redirect("ALTER TABLE ".idf_escape($j)."$l\nRENAME TO ".idf_escape($_POST["name"]).",\n$Sa",$z,lang(121));}else{cookie("adminer_engine",$_POST["Engine"]);query_redirect("CREATE TABLE ".idf_escape($_POST["name"])." (".substr($l,0,-1)."\n) $Sa",$z,lang(122));}}}page_header(($j!=""?lang(14):lang(123)),$o,array("table"=>$j),$j);$a=array("Engine"=>$_COOKIE["adminer_engine"],"fields"=>array(array("field"=>"")),"partition_names"=>array(""),);if($_POST){$a=$_POST;if($a["auto_increment_col"]){$a["fields"][$a["auto_increment_col"]]["auto_increment"]=true;}process_fields($a["fields"]);}elseif($j!=""){$a=$Rb;$a["name"]=$j;$a["fields"]=array();if(!$_GET["auto_increment"]){$a["Auto_increment"]="";}foreach($Vb as$c){$c["has_default"]=isset($c["default"]);if($c["on_update"]){$c["default"].=" ON UPDATE $c[on_update]";}$a["fields"][]=$c;}if($d->server_info>=5.1){$fb="FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = ".$d->quote(DB)." AND TABLE_NAME = ".$d->quote($j);$f=$d->query("SELECT PARTITION_METHOD, PARTITION_ORDINAL_POSITION, PARTITION_EXPRESSION $fb ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");list($a["partition_by"],$a["partitions"],$a["partition"])=$f->fetch_row();$a["partition_names"]=array();$a["partition_values"]=array();$f=$d->query("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $fb AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION");while($gd=$f->fetch_assoc()){$a["partition_names"][]=$gd["PARTITION_NAME"];$a["partition_values"][]=$gd["PARTITION_DESCRIPTION"];}$a["partition_names"][]="";}}$N=collations();$Mc=floor(extension_loaded("suhosin")?(min(ini_get("suhosin.request.max_vars"),ini_get("suhosin.post.max_vars"))-13)/10:0);if($Mc&&count($a["fields"])>$Mc){echo"

".h(lang(124,'suhosin.post.max_vars','suhosin.request.max_vars'))."\n";}$Gc=engines();foreach($Gc as$jd){if(!strcasecmp($jd,$a["Engine"])){$a["Engine"]=$jd;break;}}echo'

',lang(125),': ',($Gc?html_select("Engine",array(""=>"(".lang(126).")")+$Gc,$a["Engine"]):""),' ',html_select("Collation",array(""=>"(".lang(66).")")+$N,$a["Collation"]),' ';$nb=edit_fields($a["fields"],$N,"TABLE",$Mc,$F);echo'

',lang(72),': ',lang(74),':

';if(strlen($_GET["create"])){echo'';}if($d->server_info>=5.1){$md=ereg('RANGE|LIST',$a["partition_by"]);print_fieldset("partition",lang(128),$a["partition_by"]);echo'

',html_select("partition_by",array(-1=>"")+$ld,$a["partition_by"],"partitionByChange(this);"),'() ',lang(129),': ';foreach($a["partition_names"]as$e=>$b){echo'',' ';}echo'

';}elseif(isset($_GET["indexes"])){$j=$_GET["indexes"];$ad=array("PRIMARY","UNIQUE","INDEX","FULLTEXT");$w=indexes($j);if($_POST&&!$o&&!$_POST["add"]){$Tb=array();foreach($_POST["indexes"]as$s){if(in_array($s["type"],$ad)){$t=array();$Hc=array();$u=array();ksort($s["columns"]);foreach($s["columns"]as$e=>$la){if($la!=""){$ua=$s["lengths"][$e];$u[]=idf_escape($la).($ua?"(".intval($ua).")":"");$t[count($t)+1]=$la;$Hc[count($Hc)+1]=($ua?$ua:null);}}if($t){foreach($w as$h=>$gb){ksort($gb["columns"]);ksort($gb["lengths"]);if($s["type"]==$gb["type"]&&$gb["columns"]===$t&&$gb["lengths"]===$Hc){unset($w[$h]);continue 2;}}$Tb[]="\nADD $s[type]".($s["type"]=="PRIMARY"?" KEY":"")." (".implode(", ",$u).")";}}}foreach($w as$h=>$gb){$Tb[]="\nDROP INDEX ".idf_escape($h);}if(!$Tb){redirect(ME."table=".urlencode($j));}query_redirect("ALTER TABLE ".idf_escape($j).implode(",",$Tb),ME."table=".urlencode($j),lang(132));}page_header(lang(82),$o,array("table"=>$j),$j);$l=array_keys(fields($j));$a=array("indexes"=>$w);if($_POST){$a=$_POST;if($_POST["add"]){foreach($a["indexes"]as$e=>$s){if($s["columns"][count($s["columns"])]!=""){$a["indexes"][$e]["columns"][]="";}}$s=end($a["indexes"]);if($s["type"]||array_filter($s["columns"],'strlen')||array_filter($s["lengths"],'strlen')){$a["indexes"][]=array("columns"=>array(1=>""));}}}else{foreach($a["indexes"]as$e=>$s){$a["indexes"][$e]["columns"][]="";}$a["indexes"][]=array("columns"=>array(1=>""));}echo'
';$M=0;foreach($a["indexes"]as$s){echo"
',lang(133),'',lang(134),'
".html_select("indexes[$M][type]",array(-1=>"")+$ad,$s["type"],($M==count($a["indexes"])-1?"indexesAddRow(this);":1))."\n";ksort($s["columns"]);foreach($s["columns"]as$i=>$la){echo"".html_select("indexes[$M][columns][$i]",array(-1=>"")+$l,$la,($i==count($s["columns"])?"indexesAddColumn(this);":1))," \n";}echo"\n";$M++;}echo'

';}elseif(isset($_GET["database"])){if($_POST&&!$o&&!isset($_POST["add_x"])){restart_session();if($_POST["drop"]){unset($_SESSION["databases"][$_GET["server"]]);query_redirect("DROP DATABASE ".idf_escape(DB),remove_from_uri("db|database"),lang(52));}elseif(DB!==$_POST["name"]){unset($_SESSION["databases"][$_GET["server"]]);$mb=explode("\n",str_replace("\r","",$_POST["name"]));$Bb=false;$Nb="";foreach($mb as$x){if(count($mb)==1||$x!=""){if(!queries("CREATE DATABASE ".idf_escape($x).($_POST["collation"]?" COLLATE ".$d->quote($_POST["collation"]):""))){$Bb=true;}$Nb=$x;}}if(query_redirect(queries(),ME."db=".urlencode($Nb),lang(135),DB=="",false,$Bb)){$f=$d->query("SHOW TABLES");while($a=$f->fetch_row()){if(!queries("RENAME TABLE ".idf_escape($a[0])." TO ".idf_escape($_POST["name"]).".".idf_escape($a[0]))){break;}}if(!$a){queries("DROP DATABASE ".idf_escape(DB));}queries_redirect(preg_replace('~db=[^&]*&~','',ME)."db=".urlencode($_POST["name"]),lang(136),!$a);}}else{if(!$_POST["collation"]){redirect(substr(ME,0,-1));}query_redirect("ALTER DATABASE ".idf_escape($_POST["name"])." COLLATE ".$d->quote($_POST["collation"]),substr(ME,0,-1),lang(137));}}page_header(DB!=""?lang(138):lang(139),$o,array(),DB);$N=collations();$h=DB;$Db=null;if($_POST){$h=$_POST["name"];$Db=$_POST["collation"];}elseif(DB==""){$f=$d->query("SHOW GRANTS");while($a=$f->fetch_row()){if(preg_match('~ ON (`(([^\\\\`]|``|\\\\.)*)%`\\.\\*)?~',$a[0],$k)&&$k[1]){$h=stripcslashes(idf_unescape($k[2]));break;}}}else{$Db=db_collation(DB,$N);}echo'

',($_POST["add_x"]||strpos($h,"\n")?'
':'')."\n",html_select("collation",array(""=>"(".lang(66).")")+$N,$Db),' ';if(strlen(DB)){echo"\n";}elseif(!$_POST["add_x"]&&$_GET["db"]==""){echo"\n";}echo'

';}elseif(isset($_GET["call"])){$ia=$_GET["call"];page_header(lang(140).": ".h($ia),$o);$na=routine($ia,(isset($_GET["callf"])?"FUNCTION":"PROCEDURE"));$cb=array();$Da=array();foreach($na["fields"]as$i=>$c){if(substr($c["inout"],-3)=="OUT"){$Da[$i]="@".idf_escape($c["field"])." AS ".idf_escape($c["field"]);}if(!$c["inout"]||substr($c["inout"],0,2)=="IN"){$cb[]=$i;}}if(!$o&&$_POST){$Xc=array();foreach($na["fields"]as$e=>$c){if(in_array($e,$cb)){$b=process_input($c);if($b===false){$b="''";}if(isset($Da[$e])){$d->query("SET @".idf_escape($c["field"])." = $b");}}$Xc[]=(isset($Da[$e])?"@".idf_escape($c["field"]):$b);}if(!$d->multi_query((isset($_GET["callf"])?"SELECT":"CALL")." ".idf_escape($ia)."(".implode(", ",$Xc).")")){echo"

".error()."\n";}else{do{$f=$d->store_result();if(is_object($f)){select($f);}else{echo"

".lang(141,$d->affected_rows)."\n";}}while($d->next_result());if($Da){select($d->query("SELECT ".implode(", ",$Da)));}}}echo'

';if($cb){echo"\n";foreach($cb as$e){$c=$na["fields"][$e];echo"
".h($c["field"]);$q=$_POST["fields"][$e];if($q!=""&&ereg("enum|set",$c["type"])){$q=intval($q);}input($c,$q,(string)$_POST["function"][$h]);echo"\n";}echo"
\n";}echo'

';}elseif(isset($_GET["foreign"])){$j=$_GET["foreign"];if($_POST&&!$o&&!$_POST["add"]&&!$_POST["change"]&&!$_POST["change-js"]){if($_POST["drop"]){query_redirect("ALTER TABLE ".idf_escape($j)."\nDROP FOREIGN KEY ".idf_escape($_GET["name"]),ME."table=".urlencode($j),lang(142));}else{$ca=array_filter($_POST["source"],'strlen');ksort($ca);$Qa=array();foreach($ca as$e=>$b){$Qa[$e]=$_POST["target"][$e];}query_redirect("ALTER TABLE ".idf_escape($j).($_GET["name"]!=""?"\nDROP FOREIGN KEY ".idf_escape($_GET["name"]).",":"")."\nADD FOREIGN KEY (".implode(", ",array_map('idf_escape',$ca)).") REFERENCES ".idf_escape($_POST["table"])." (".implode(", ",array_map('idf_escape',$Qa)).")".(in_array($_POST["on_delete"],$Wa)?" ON DELETE $_POST[on_delete]":"").(in_array($_POST["on_update"],$Wa)?" ON UPDATE $_POST[on_update]":""),ME."table=".urlencode($j),($_GET["name"]!=""?lang(143):lang(144)));$o=lang(145)."
$o";}}page_header(lang(146),$o,array("table"=>$j),$j);$a=array("table"=>$j,"source"=>array(""));if($_POST){$a=$_POST;ksort($a["source"]);if($_POST["add"]){$a["source"][]="";}elseif($_POST["change"]||$_POST["change-js"]){$a["target"]=array();}}elseif($_GET["name"]!=""){$F=foreign_keys($j);$a=$F[$_GET["name"]];$a["source"][]="";}$ca=array_keys(fields($j));$Qa=($j===$a["table"]?$ca:array_keys(fields($a["table"])));echo'

';if($a["db"]==""){echo lang(147),': ',html_select("table",array_keys(table_status_referencable()),$a["table"],"this.form['change-js'].value = '1'; this.form.submit();"),'

';$M=0;foreach($a["source"]as$e=>$b){echo"","
',lang(149),'',lang(150),'
".html_select("source[".intval($e)."]",array(-1=>"")+$ca,$b,($M==count($a["source"])-1?"foreignAddRow(this);":1)),"".html_select("target[".intval($e)."]",$Qa,$a["target"][$e]);$M++;}echo'

',lang(151),': ',html_select("on_delete",array(-1=>"")+$Wa,$a["on_delete"]),' ',lang(152),': ',html_select("on_update",array(-1=>"")+$Wa,$a["on_update"]),'

';}if($_GET["name"]!=""){echo'';}echo'

';}elseif(isset($_GET["view"])){$j=$_GET["view"];$va=false;if($_POST&&!$o){$va=drop_create("DROP VIEW ".idf_escape($j),"CREATE VIEW ".idf_escape($_POST["name"])." AS\n$_POST[select]",substr(ME,0,-1),lang(154),lang(155),lang(156),$j);}page_header(($j!=""?lang(15):lang(157)),$o,array("table"=>$j),$j);$a=array();if($_POST){$a=$_POST;}elseif($j!=""){$a=view($j);$a["name"]=$j;}echo'

';if($va){echo'';}echo lang(158),':

';}elseif(isset($_GET["event"])){$Aa=$_GET["event"];$Ud=array("YEAR","QUARTER","MONTH","DAY","HOUR","MINUTE","WEEK","SECOND","YEAR_MONTH","DAY_HOUR","DAY_MINUTE","DAY_SECOND","HOUR_MINUTE","HOUR_SECOND","MINUTE_SECOND");$Pc=array("ENABLED"=>"ENABLE","DISABLED"=>"DISABLE","SLAVESIDE_DISABLED"=>"DISABLE ON SLAVE");if($_POST&&!$o){if($_POST["drop"]){query_redirect("DROP EVENT ".idf_escape($Aa),substr(ME,0,-1),lang(159));}elseif(in_array($_POST["INTERVAL_FIELD"],$Ud)&&isset($Pc[$_POST["STATUS"]])){$Vc="\nON SCHEDULE ".($_POST["INTERVAL_VALUE"]?"EVERY ".$d->quote($_POST["INTERVAL_VALUE"])." $_POST[INTERVAL_FIELD]".($_POST["STARTS"]?" STARTS ".$d->quote($_POST["STARTS"]):"").($_POST["ENDS"]?" ENDS ".$d->quote($_POST["ENDS"]):""):"AT ".$d->quote($_POST["STARTS"]))." ON COMPLETION".($_POST["ON_COMPLETION"]?"":" NOT")." PRESERVE";query_redirect(($Aa!=""?"ALTER EVENT ".idf_escape($Aa).$Vc.($Aa!=$_POST["EVENT_NAME"]?"\nRENAME TO ".idf_escape($_POST["EVENT_NAME"]):""):"CREATE EVENT ".idf_escape($_POST["EVENT_NAME"]).$Vc)."\n".$Pc[$_POST["STATUS"]]." COMMENT ".$d->quote($_POST["EVENT_COMMENT"])." DO\n$_POST[EVENT_DEFINITION]",substr(ME,0,-1),($Aa!=""?lang(160):lang(161)));}}page_header(($Aa!=""?lang(162).": ".h($Aa):lang(163)),$o);$a=array();if($_POST){$a=$_POST;}elseif($Aa!=""){$f=$d->query("SELECT * FROM information_schema.EVENTS WHERE EVENT_SCHEMA = ".$d->quote(DB)." AND EVENT_NAME = ".$d->quote($Aa));$a=$f->fetch_assoc();}echo'
',lang(158),'
',lang(164),'
',lang(165),'
',lang(166),' ',html_select("INTERVAL_FIELD",$Ud,$a["INTERVAL_FIELD"]),'
',lang(58),'',html_select("STATUS",$Pc,$a["STATUS"]),'
',lang(74),'
 ',checkbox("ON_COMPLETION","PRESERVE",$a["ON_COMPLETION"]=="PRESERVE",lang(167)),'

';if($Aa!=""){echo'';}echo'

';}elseif(isset($_GET["procedure"])){$ia=$_GET["procedure"];$na=(isset($_GET["function"])?"FUNCTION":"PROCEDURE");$va=false;if($_POST&&!$o&&!$_POST["add"]&&!$_POST["drop_col"]&&!$_POST["up"]&&!$_POST["down"]){$u=array();$l=(array)$_POST["fields"];ksort($l);foreach($l as$c){if($c["field"]!=""){$u[]=(in_array($c["inout"],$eb)?"$c[inout] ":"").idf_escape($c["field"]).process_type($c,"CHARACTER SET");}}$va=drop_create("DROP $na ".idf_escape($ia),"CREATE $na ".idf_escape($_POST["name"])." (".implode(", ",$u).")".(isset($_GET["function"])?" RETURNS".process_type($_POST["returns"],"CHARACTER SET"):"")."\n$_POST[definition]",substr(ME,0,-1),lang(168),lang(169),lang(170),$ia);}page_header(($ia!=""?(isset($_GET["function"])?lang(171):lang(172)).": ".h($ia):(isset($_GET["function"])?lang(173):lang(174))),$o);$N=get_vals("SHOW CHARACTER SET");sort($N);$a=array("fields"=>array());if($_POST){$a=$_POST;$a["fields"]=(array)$a["fields"];process_fields($a["fields"]);}elseif($ia!=""){$a=routine($ia,$na);$a["name"]=$ia;}echo'
';edit_fields($a["fields"],$N,$na);if(isset($_GET["function"])){echo"
".lang(175);edit_type("returns",$a["returns"],$N);}echo'

';if($va){echo'';}echo lang(158),': ';if($ia!=""){echo'';}echo'

';}elseif(isset($_GET["trigger"])){$j=$_GET["trigger"];$Zc=array("BEFORE","AFTER");$Tc=array("INSERT","UPDATE","DELETE");$va=false;if($_POST&&!$o&&in_array($_POST["Timing"],$Zc)&&in_array($_POST["Event"],$Tc)){$va=drop_create("DROP TRIGGER ".idf_escape($_GET["name"]),"CREATE TRIGGER ".idf_escape($_POST["Trigger"])." $_POST[Timing] $_POST[Event] ON ".idf_escape($j)." FOR EACH ROW\n$_POST[Statement]",ME."table=".urlencode($j),lang(176),lang(177),lang(178),$_GET["name"]);}page_header(($_GET["name"]!=""?lang(179).": ".h($_GET["name"]):lang(180)),$o,array("table"=>$j));$a=array("Trigger"=>$j."_bi");if($_POST){$a=$_POST;}elseif($_GET["name"]!=""){$f=$d->query("SHOW TRIGGERS WHERE `Trigger` = ".$d->quote($_GET["name"]));$a=$f->fetch_assoc();}echo'
',lang(181),'',html_select("Timing",$Zc,$a["Timing"],"if (/^".h(preg_quote($j,"/"))."_[ba][iud]$/.test(this.form['Trigger'].value)) this.form['Trigger'].value = '".h(addcslashes($j,"\r\n'\\"))."_' + selectValue(this).charAt(0).toLowerCase() + selectValue(this.form['Event']).charAt(0).toLowerCase();"),'
',lang(182),'',html_select("Event",$Tc,$a["Event"],"this.form['Timing'].onchange();"),'
',lang(158),'

';if($va){echo'';}echo' ';if($_GET["name"]!=""){echo'';}echo'

';}elseif(isset($_GET["user"])){$pc=$_GET["user"];$L=array(""=>array("All privileges"=>""));$f=$d->query("SHOW PRIVILEGES");while($a=$f->fetch_assoc()){foreach(explode(",",($a["Privilege"]=="Grant option"?"":$a["Context"]))as$Ub){$L[$Ub][$a["Privilege"]]=$a["Comment"];}}$L["Server Admin"]+=$L["File access on server"];$L["Databases"]["Create routine"]=$L["Procedures"]["Create routine"];unset($L["Procedures"]["Create routine"]);$L["Columns"]=array();foreach(array("Select","Insert","Update","References")as$b){$L["Columns"][$b]=$L["Tables"][$b];}unset($L["Server Admin"]["Usage"]);foreach($L["Tables"]as$e=>$b){unset($L["Databases"][$e]);}$Gb=array();if($_POST){foreach($_POST["objects"]as$e=>$b){$Gb[$b]=(array)$Gb[$b]+(array)$_POST["grants"][$e];}}$Fa=array();$uc="";if(isset($_GET["host"])&&($f=$d->query("SHOW GRANTS FOR ".$d->quote($pc)."@".$d->quote($_GET["host"])))){while($a=$f->fetch_row()){if(preg_match('~GRANT (.*) ON (.*) TO ~',$a[0],$k)&&preg_match_all('~ *([^(,]*[^ ,(])( *\\([^)]+\\))?~',$k[1],$I,PREG_SET_ORDER)){foreach($I as$b){if($b[1]!="USAGE"){$Fa["$k[2]$b[2]"][$b[1]]=true;}if(ereg(' WITH GRANT OPTION',$a[0])){$Fa["$k[2]$b[2]"]["GRANT OPTION"]=true;}}}if(preg_match("~ IDENTIFIED BY PASSWORD '([^']+)~",$a[0],$k)){$uc=$k[1];}}}if($_POST&&!$o){$ob=(isset($_GET["host"])?$d->quote($pc)."@".$d->quote($_GET["host"]):"''");$za=$d->quote($_POST["user"])."@".$d->quote($_POST["host"]);$wc=$d->quote($_POST["pass"]);if($_POST["drop"]){query_redirect("DROP USER $ob",ME."privileges=",lang(183));}else{if($ob!=$za){$o=!queries(($d->server_info<5?"GRANT USAGE ON *.* TO":"CREATE USER")." $za IDENTIFIED BY".($_POST["hashed"]?" PASSWORD":"")." $wc");}elseif($_POST["pass"]!=$uc||!$_POST["hashed"]){queries("SET PASSWORD FOR $za = ".($_POST["hashed"]?$wc:"PASSWORD($wc)"));}if(!$o){$ub=array();foreach($Gb as$ta=>$H){if(isset($_GET["grant"])){$H=array_filter($H);}$H=array_keys($H);if(isset($_GET["grant"])){$ub=array_diff(array_keys(array_filter($Gb[$ta],'strlen')),$H);}elseif($ob==$za){$Qd=array_keys((array)$Fa[$ta]);$ub=array_diff($Qd,$H);$H=array_diff($H,$Qd);unset($Fa[$ta]);}if(preg_match('~^(.+)\\s*(\\(.*\\))?$~U',$ta,$k)&&(!grant("REVOKE",$ub,$k[2]," ON $k[1] FROM $za")||!grant("GRANT",$H,$k[2]," ON $k[1] TO $za"))){$o=true;break;}}}if(!$o&&isset($_GET["host"])){if($ob!=$za){queries("DROP USER $ob");}elseif(!isset($_GET["grant"])){foreach($Fa as$ta=>$ub){if(preg_match('~^(.+)(\\(.*\\))?$~U',$ta,$k)){grant("REVOKE",array_keys($ub),$k[2]," ON $k[1] FROM $za");}}}}queries_redirect(ME."privileges=",(isset($_GET["host"])?lang(184):lang(185)),!$o);if($ob!=$za){$d->query("DROP USER $za");}}}page_header((isset($_GET["host"])?lang(8).": ".h("$pc@$_GET[host]"):lang(98)),$o,array("privileges"=>array('',lang(55))));if($_POST){$a=$_POST;$Fa=$Gb;}else{$a=$_GET+array("host"=>$d->result($d->query("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', -1)")));$a["pass"]=$uc;$a["hashed"]=true;$Fa[""]=true;}echo'
',lang(8),'
',lang(7),'
',lang(9),' ';if(!$a["hashed"]){echo'';}echo checkbox("hashed",1,$a["hashed"],lang(186),"typePassword(this.form['pass'], this.checked);"),'
';echo"\n","\n";foreach(array(""=>"","Server Admin"=>lang(7),"Databases"=>lang(50),"Tables"=>lang(80),"Columns"=>lang(81),"Procedures"=>lang(187),)as$Ub=>$wb){foreach((array)$L[$Ub]as$rb=>$Zb){echo"$wb'.h($rb);$i=0;foreach($Fa as$ta=>$H){$h="'grants[$i][".h(strtoupper($rb))."]'";$q=$H[strtoupper($rb)];if($Ub=="Server Admin"&&$ta!=(isset($Fa["*.*"])?"*.*":"")){echo"
".lang(55)."";$i=0;foreach($Fa as$ta=>$H){echo''.($ta!="*.*"?"":"*.*");$i++;}echo"
 ";}elseif(isset($_GET["grant"])){echo"";}else{echo"";}$i++;}}}echo"
\n",'

';if(isset($_GET["host"])){echo'';}echo'

';}elseif(isset($_GET["processlist"])){if($_POST&&!$o){$_c=0;foreach((array)$_POST["kill"]as$b){if(queries("KILL ".ereg_replace("[^0-9]+","",$b))){$_c++;}}queries_redirect(ME."processlist=",lang(190,$_c),$_c||!$_POST["kill"]);}page_header(lang(56),$o);echo'
';$f=$d->query("SHOW PROCESSLIST");for($i=0;$a=$f->fetch_assoc();$i++){if(!$i){echo"\n";}echo"
 ".implode("",array_keys($a))."
".checkbox("kill[]",$a["Id"],0)."".implode("",array_map('nbsp',$a))."\n";}echo'

';}elseif(isset($_GET["select"])){$j=$_GET["select"];$Y=table_status($j);$w=indexes($j);$l=fields($j);$F=column_foreign_keys($j);$Yd=array();$t=array();unset($Oa);foreach($l as$e=>$c){$h=$p->fieldName($c);if(isset($c["privileges"]["select"])&&$h!=""){$t[$e]=html_entity_decode(strip_tags($h));if(ereg('text|blob',$c["type"])){$Oa=$p->selectLengthProcess();}}$Yd+=$c["privileges"];}list($v,$ga)=$p->selectColumnsProcess($t,$w);$D=$p->selectSearchProcess($l,$w);$Ja=$p->selectOrderProcess($l,$w);$oa=$p->selectLimitProcess();$fb=($v?implode(", ",$v):"*")."\nFROM ".idf_escape($j).($D?"\nWHERE ".implode(" AND ",$D):"");$oc=($ga&&count($ga)$b){$b=$_GET["columns"][$e];if(!$b["fun"]){unset($lc[$b["col"]]);}}if($_POST["export"]){dump_headers($j);dump_table($j,"");if($_POST["format"]!="sql"){$a=array_keys($l);if($v){$a=array();foreach($v as$b){$a[]=(ereg('^`(.*)`$',$b,$k)?idf_unescape($k[1]):$b);}}dump_csv($a);}if(!is_array($_POST["check"])||$lc===array()){dump_data($j,"INSERT","SELECT $fb".(is_array($_POST["check"])?($D?" AND ":" WHERE ")."($Rd)":"").$oc);}else{$Td=array();foreach($_POST["check"]as$b){$Td[]="(SELECT $fb ".($D?"AND ":"WHERE ").where_check($b).$oc." LIMIT 1)";}dump_data($j,"INSERT",implode(" UNION ALL ",$Td));}exit;}if(!$p->selectEmailProcess($D,$F)){if(!$_POST["import"]){$f=true;$pb=0;$kc=($_POST["delete"]?"DELETE FROM ":($_POST["clone"]?"INSERT INTO ":"UPDATE ")).idf_escape($j);$u=array();if(!$_POST["delete"]){foreach($t as$h=>$b){$b=process_input($l[$h]);if($_POST["clone"]){$u[idf_escape($h)]=($b!==false?$b:idf_escape($h));}elseif($b!==false){$u[]=idf_escape($h)." = $b";}}$kc.=($_POST["clone"]?" (".implode(", ",array_keys($u)).")\nSELECT ".implode(", ",$u)."\nFROM ".idf_escape($j):" SET\n".implode(",\n",$u));}if($_POST["delete"]||$u){if($_POST["all"]||($lc===array()&&$_POST["check"])){$f=queries($kc.($_POST["all"]?($D?"\nWHERE ".implode(" AND ",$D):""):"\nWHERE $Rd"));$pb=$d->affected_rows;}else{foreach((array)$_POST["check"]as$b){$f=queries($kc."\nWHERE ".where_check($b).(count($ga)affected_rows;}}}queries_redirect(remove_from_uri("page"),lang(192,$pb),$f);}elseif(is_string($Q=get_file("csv_file",true))){$Q=preg_replace("~^\xEF\xBB\xBF~",'',$Q);$f=true;$Ta=array_keys($l);preg_match_all('~(?>"[^"]*"|[^"\\r\\n]+)+~',$Q,$I);$pb=count($I[0]);queries("START TRANSACTION");foreach($I[0]as$e=>$b){preg_match_all('~(("[^"]*")+|[^,]*),~',"$b,",$Dc);if(!$e&&!array_diff($Dc[1],$Ta)){$Ta=$Dc[1];$pb--;}else{$u="";foreach($Dc[1]as$i=>$Ob){$u.=", ".idf_escape($Ta[$i])." = ".($Ob==""&&$l[$Ta[$i]]["null"]?"NULL":$d->quote(str_replace('""','"',preg_replace('~^"|"$~','',$Ob))));}$u=substr($u,1);$f=queries("INSERT INTO ".idf_escape($_GET["select"])." SET$u ON DUPLICATE KEY UPDATE$u");if(!$f){break;}}}if($f){queries("COMMIT");}queries_redirect(remove_from_uri("page"),lang(193,$pb),$f);queries("ROLLBACK");}else{$o=upload_error($Q);}}}$X=$p->tableName($Y);page_header(lang(19).": $X",$o);$u=null;if(isset($Yd["insert"])){$u="";foreach((array)$_GET["where"]as$b){if(count($F[$b["col"]])==1&&($b["op"]=="="||(!$b["op"]&&!ereg('[_%]',$b["val"])))){$u.="&set".urlencode("[".bracket_escape($b["col"])."]")."=".urlencode($b["val"]);}}}$p->selectLinks($Y,$u);if(!$t){echo"

".lang(194).($l?"":": ".error()).".\n";}else{echo"

\n","
",($_GET["server"]!=""?'':""),(DB!=""?'':"");echo'',"
\n";$p->selectColumnsPrint($v,$t);$p->selectSearchPrint($D,$t,$w);$p->selectOrderPrint($Ja,$t,$w);$p->selectLimitPrint($oa);$p->selectLengthPrint($Oa);$p->selectActionPrint($Oa);echo"
\n";$m="SELECT ".(intval($oa)&&$ga&&count($ga)selectQuery($m);$f=$d->query($m);if(!$f){echo"

".error()."\n";}else{$Yb=array();echo"

\n";if(!$f->num_rows){echo"

".lang(64)."\n";}else{$Ra=array();while($a=$f->fetch_assoc()){$Ra[]=$a;}$Eb=(intval($oa)&&$ga&&count($ga)result($d->query(" SELECT FOUND_ROWS()")):count($Ra));$sd=$p->backwardKeys($j,$X);echo"\n","\n";foreach($p->rowDescriptions($Ra,$F)as$G=>$a){$Lc=unique_array($a,$w);$zb="";foreach($Lc as$e=>$b){$zb.="&".(isset($b)?urlencode("where[".bracket_escape($e)."]")."=".urlencode($b):"null%5B%5D=".urlencode($e));}echo"\n";}echo"
";$Sc=array();reset($v);$Ja=1;foreach($Ra[0]as$e=>$b){$b=$_GET["columns"][key($v)];$c=$l[$v?$b["col"]:$e];$h=($c?$p->fieldName($c,$Ja):"*");if($h!=""){$Ja++;$Sc[$e]=$h;echo''.apply_sql_function($b["fun"],$h)."";}next($v);}echo($sd?"".lang(195):"")."
".checkbox("check[]",substr($zb,1),in_array(substr($zb,1),(array)$_POST["check"]),"","this.form['all'].checked = false; formUncheck('all-page');").(count($v)!=count($ga)||information_schema(DB)?'':" ".lang(97)."");foreach($a as$e=>$b){if(isset($Sc[$e])){$c=$l[$e];if($b!=""&&(!isset($Yb[$e])||$Yb[$e]!="")){$Yb[$e]=(is_ad_email($b)?$Sc[$e]:"");}$y="";$b=$p->editVal($b,$c);if(!isset($b)){$b="NULL";}else{if(ereg('blob|binary',$c["type"])&&$b!=""){$y=h(ME.'download='.urlencode($j).'&field='.urlencode($e).$zb);}if($b==""){$b=" ";}elseif($Oa!=""&&ereg('text|blob',$c["type"])&&is_utf8($b)){$b=shorten_utf8($b,max(0,intval($Oa)));}else{$b=h($b);}if(!$y){foreach((array)$F[$e]as$J){if(count($F[$e])==1||count($J["source"])==1){foreach($J["source"]as$i=>$ca){$y.=where_link($i,$J["target"][$i],$Ra[$G][$ca]);}$y=h(($J["db"]!=""?preg_replace('~([?&]db=)[^&]+~','\\1'.urlencode($J["db"]),ME):ME).'select='.urlencode($J["table"]).$y);break;}}}if($e=="COUNT(*)"){$y=h(ME."select=".urlencode($j));$i=0;foreach((array)$_GET["where"]as$r){if(!array_key_exists($r["col"],$Lc)){$y.=h(where_link($i++,$r["col"],$r["val"],urlencode($r["op"])));}}foreach($Lc as$fa=>$r){$y.=h(where_link($i++,$fa,$r,(isset($r)?"=":"IS NULL")));}}}if(!$y&&is_ad_email($b)){$y="mailto:$b";}if(!$y&&is_url($a[$e])){$y="http://www.adminer.org/redirect/?url=".urlencode($a[$e]);}$b=$p->selectVal($b,$y,$c);echo"$b";}}$p->backwardKeysPrint($sd,$Ra[$G]);echo"
\n";if(intval($oa)&&count($ga)>=count($v)){ob_flush();flush();$Eb=$d->result($d->query("SELECT COUNT(*) FROM ".idf_escape($j).($D?" WHERE ".implode(" AND ",$D):"")));}echo"

";if(intval($oa)&&$Eb>$oa){$Jc=floor(($Eb-1)/$oa);echo lang(196).":".pagination(0).($_GET["page"]>3?" ...":"");for($i=max(1,$_GET["page"]-2);$i".lang(17)."

\n");print_fieldset("export",lang(89));echo$p->dumpOutput(1)." ".$p->dumpFormat(1);echo" \n","\n";}print_fieldset("import",lang(199),!$f->num_rows);echo" \n","\n";$p->selectEmailPrint(array_filter($Yb,'strlen'),$t);echo"
\n";}}}elseif(isset($_GET["variables"])){$Sa=isset($_GET["status"]);page_header($Sa?lang(58):lang(57));$f=$d->query($Sa?"SHOW STATUS":"SHOW VARIABLES");echo"\n";while($a=$f->fetch_assoc()){echo"","
".h($a["Variable_name"])."","".nbsp($a["Value"]);}echo"
\n";}else{$Ec=array_merge((array)$_POST["tables"],(array)$_POST["views"]);if($Ec&&!$o&&!$_POST["search"]){$f=true;$ma="";if(count($_POST["tables"])>1&&($_POST["drop"]||$_POST["truncate"])){queries("SET foreign_key_checks = 0");}if(isset($_POST["truncate"])){foreach((array)$_POST["tables"]as$n){if(!queries("TRUNCATE ".idf_escape($n))){$f=false;break;}}$ma=lang(201);}elseif(isset($_POST["move"])){$_d=array();foreach($Ec as$n){$_d[]=idf_escape($n)." TO ".idf_escape($_POST["target"]).".".idf_escape($n);}$f=queries("RENAME TABLE ".implode(", ",$_d));$ma=lang(202);}elseif((!isset($_POST["drop"])||!$_POST["views"]||queries("DROP VIEW ".implode(", ",array_map('idf_escape',$_POST["views"]))))&&(!$_POST["tables"]||($f=queries((isset($_POST["optimize"])?"OPTIMIZE":(isset($_POST["check"])?"CHECK":(isset($_POST["repair"])?"REPAIR":(isset($_POST["drop"])?"DROP":"ANALYZE"))))." TABLE ".implode(", ",array_map('idf_escape',$_POST["tables"])))))){if(isset($_POST["drop"])){$ma=lang(203);}else{while($a=$f->fetch_assoc()){$ma.=h("$a[Table]: $a[Msg_text]")."
";}}}queries_redirect(substr(ME,0,-1),$ma,$f);}page_header(lang(50).": ".h(DB),$o,false);echo'

'.lang(138)."\n",''.lang(88)."\n","

".lang(204)."

\n";$Y=table_status();if(!$Y){echo"

".lang(4)."\n";}else{echo"

\n","

\n";if($_POST["search"]&&$_POST["query"]!=""){$_GET["where"][0]["op"]="LIKE";$_GET["where"][0]["val"]="%$_POST[query]%";search_tables();}echo"\n",'\n";$Ad=array();foreach($Y as$a){$h=$a["Name"];echo'
'.lang(80).''.lang(205).''.lang(61).''.lang(206).''.lang(207).''.lang(208).''.lang(72).''.lang(209).''.lang(74)."
'.checkbox((isset($a["Rows"])?"tables[]":"views[]"),$h,in_array($h,$Ec,true),"","formUncheck('check-all');"),''.h($h).'';if(isset($a["Rows"])){echo"$a[Engine]$a[Collation]";foreach(array("Data_length"=>"create","Index_length"=>"indexes","Data_free"=>"edit","Auto_increment"=>"auto_increment=1&create","Rows"=>"select")as$e=>$y){$b=number_format($a[$e],0,'.',lang(210));echo''.($a[$e]!=""?''.str_replace(" "," ",($e=="Rows"&&$a["Engine"]=="InnoDB"&&$b?lang(96,$b):$b)).'':' ');$Ad[$y]+=($a["Engine"]!="InnoDB"||$y!="edit"?$a[$e]:0);}echo"".nbsp($a["Comment"]);}else{echo''.lang(79).'','?',' ';}}echo"
 ".lang(211,count($Y)),"".$d->result($d->query("SELECT @@storage_engine")),"".db_collation(DB,collations());foreach(array("create","indexes","edit")as$b){echo"".number_format($Ad[$b],0,'.',lang(210));}echo"
\n";if(!information_schema(DB)){echo"

\n";$mb=get_databases();if(count($mb)!=1){$x=(isset($_POST["target"])?$_POST["target"]:DB);echo"

".lang(217).($mb?": ".html_select("target",$mb,$x):': ')." \n";}}echo"

\n";}echo'

'.lang(123)."\n";if($d->server_info>=5){echo''.lang(157)."\n","

".lang(92)."

\n";$f=$d->query("SELECT * FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = ".$d->quote(DB));if($f->num_rows){echo"\n";while($a=$f->fetch_assoc()){echo"","
".h($a["ROUTINE_TYPE"]),''.h($a["ROUTINE_NAME"]).'',''.lang(84)."";}echo"
\n";}echo'

'.lang(174).' '.lang(173)."\n";}if($d->server_info>=5.1&&($f=$d->query("SHOW EVENTS"))){echo"

".lang(93)."

\n";if($f->num_rows){echo"\n","\n";while($a=$f->fetch_assoc()){echo"",'
".lang(158)."".lang(219)."".lang(164)."".lang(165)."
'.h($a["Name"])."","".($a["Execute at"]?lang(220)."".$a["Execute at"]:lang(166)." ".$a["Interval value"]." ".$a["Interval field"]."$a[Starts]"),"$a[Ends]";}echo"
\n";}echo'

'.lang(163)."\n";}}page_footer();