is_ad_email() * no javascript; only onload="body_load();" */ /** 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);$pd=(!ereg('^(unsafe_raw)?$',ini_get("filter.default"))||ini_get("filter.default_flags"));if($pd){foreach(array('_GET','_POST','_COOKIE','_SERVER')as$b){$Gd=filter_input_array(constant("INPUT$b"),FILTER_UNSAFE_RAW);if($Gd){$$b=$Gd;}}}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: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;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;}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%;float:right;margin-top:-3em;}.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 verifyVersion(){document.cookie='adminer_version=0';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 date=new Date();date.setMonth(date.getMonth()+1);var s='';for(var key in tablePos){s+='_'+key+':'+Math.round(tablePos[key][0]*10000)/10000+'x'+Math.round(tablePos[key][1]*10000)/10000;} document.cookie='adminer_schema='+encodeURIComponent(s.substr(1))+'; expires='+date+'; path="'+location.pathname+location.search+'"';}}=0){$Eb[]=true;}call_user_func_array('session_set_cookie_params',$Eb);session_start();if(get_magic_quotes_gpc()){$wa=array(&$_GET,&$_POST,&$_COOKIE);while(list($e,$b)=each($wa)){foreach($b as$na=>$s){unset($wa[$e][$na]);if(is_array($s)){$wa[$e][stripslashes($na)]=$s;$wa[]=&$wa[$e][stripslashes($na)];}else{$wa[$e][stripslashes($na)]=($pd?$s:stripslashes($s));}}}unset($wa);}if(function_exists("set_magic_quotes_runtime")){set_magic_quotes_runtime(false);}@set_time_limit(0);$gb="2.3.0";function connection(){global$d;return$d;}function idf_escape($ia){return"`".str_replace("`","``",$ia)."`";}function idf_unescape($ia){return str_replace("``","`",$ia);}function escape_string($b){global$d;return substr($d->quote($b),1,-1);}function bracket_escape($ia,$oe=false){static$od=array(':'=>':1',']'=>':2','['=>':3');return strtr($ia,($oe?array_flip($od):$od));}function h($P){return htmlspecialchars($P,ENT_QUOTES);}function nbsp($P){return(trim($P)!=""?h($P):" ");}function checkbox($h,$q,$Z,$vd="",$wd=""){static$V=0;$V++;$g="";return($vd!=""?"":$g);}function optionlist($Qb,$ie=null,$Dd=false){$g="";foreach($Qb as$na=>$s){if(is_array($s)){$g.='';}foreach((is_array($s)?$s:array($na=>$s))as$e=>$b){$g.=''.h($b);}if(is_array($s)){$g.='';}}return$g;}function html_select($h,$Qb,$q="",$Wa=true){if($Wa){return"";}$g="";foreach($Qb 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_idf($a,$w){foreach($w as$r){if(ereg("PRIMARY|UNIQUE",$r["type"])){$g=array();foreach($r["columns"]as$e){if(!isset($a[$e])){continue 2;}$g[]=urlencode("where[".bracket_escape($e)."]")."=".urlencode($a[$e]);}return$g;}}$g=array();foreach($a as$e=>$b){if(!preg_match('~^(COUNT\\((\\*|(DISTINCT )?`(?:[^`]|``)+`)\\)|(AVG|GROUP_CONCAT|MAX|MIN|SUM)\\(`(?:[^`]|``)+`\\))$~',$e)){$g[]=(isset($b)?urlencode("where[".bracket_escape($e)."]")."=".urlencode($b):"null%5B%5D=".urlencode($e));}}return$g;}function where($B){$g=array();foreach((array)$B["where"]as$e=>$b){$e=bracket_escape($e,"back");$g[]=(preg_match('~^[A-Z0-9_]+\\(`(?:[^`]|``)+`\\)$~',$e)?$e:idf_escape($e)).(ereg('\\.',$b)?" LIKE ".exact_value(addcslashes($b,"%_")):" = ".exact_value($b));}foreach((array)$B["null"]as$e){$e=bracket_escape($e,"back");$g[]=(preg_match('~^[A-Z0-9_]+\\(`(?:[^`]|``)+`\\)$~',$e)?$e:idf_escape($e))." IS NULL";}return implode(" AND ",$g);}function where_check($b){parse_str($b,$Zd);return where($Zd);}function where_link($i,$la,$q){return"&where%5B$i%5D%5Bcol%5D=".urlencode($la)."&where%5B$i%5D%5Bop%5D=%3D&where%5B$i%5D%5Bval%5D=".urlencode($q);}function cookie($h,$q){$Eb=array($h,$q,time()+2592000,preg_replace('~\\?.*~','',$_SERVER["REQUEST_URI"]),"",$_SERVER["HTTPS"]&&$_SERVER["HTTPS"]!="off");if(version_compare(PHP_VERSION,'5.2.0')>=0){$Eb[]=true;}return call_user_func_array('setcookie',$Eb);}function restart_session(){if(!ini_get("session.use_cookies")){session_start();}}function redirect($_,$ma=null){if(isset($ma)){restart_session();$_SESSION["messages"][]=$ma;}header("Location: ".($_!=""?$_:"."));exit;}function query_redirect($m,$_,$ma,$Yb=true,$ce=true,$Db=false){global$d,$o,$p;if($ce){$Db=!$d->query($m);}$pc="";if($m){$pc=$p->messageQuery($m);}if($Db){$o=error().$pc;return false;}if($Yb){redirect($_,$ma.$pc);}return true;}function queries($m=null){global$d;static$Ga=array();if(!isset($m)){return implode(";\n",$Ga);}$Ga[]=$m;return$d->query($m);}function queries_redirect($_,$ma,$Yb){return query_redirect(queries(),$_,$ma,$Yb,false,!$Yb);}function remove_from_uri($_a=""){return substr(preg_replace("~(?<=[?&])($_a".(SID?"":"|".session_name()).")=[^&]*&~",'',"$_SERVER[REQUEST_URI]&"),0,-1);}function pagination($Ab){return" ".($Ab==$_GET["page"]?$Ab+1:''.($Ab+1)."");}function get_file($e,$Td=false){$O=$_FILES[$e];if(!$O||$O["error"]){return$O["error"];}return file_get_contents($Td&&ereg('\\.gz$',$O["name"])?"compress.zlib://$O[tmp_name]":($Td&&ereg('\\.bz2$',$O["name"])?"compress.bzip2://$O[tmp_name]":$O["tmp_name"]));}function upload_error($o){$Jd=($o==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):null);return($o?lang(0).($Jd?" ".lang(1,$Jd):""):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,$ra=80,$Wd=""){if(!preg_match("(^([\t\r\n -\x{FFFF}]{0,$ra})($)?)u",$P,$k)){preg_match("(^([\t\r\n -~]{0,$ra})($)?)",$P,$k);}return h($k[1]).$Wd.(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$na=>$s){$wa[$e."[$na]"]=$s;}}elseif(!in_array($e,$ee)){echo'';}}}function column_foreign_keys($n){$g=array();foreach(foreign_keys($n)as$H){foreach($H["source"]as$b){$g[$b][]=$H;}}return$g;}function input($c,$q,$y){global$ua,$p;$h=h(bracket_escape($c["field"]));echo"";$Fa=(isset($_GET["select"])?array("orig"=>lang(3)):array())+$p->editFunctions($c);if($c["type"]=="enum"){echo nbsp($Fa[""])."".($Fa["orig"]?" ":""),$p->editInput($_GET["edit"],$c," name='fields[$h]'",$q);preg_match_all("~'((?:[^']|'')*)'~",$c["length"],$J);foreach($J[1]as$i=>$b){$b=stripcslashes(str_replace("''","'",$b));$Z=(is_int($q)?$q==$i+1:$q===$b);echo" ';}}else{$Za=0;foreach($Fa as$e=>$b){if($e===""||!$b){break;}$Za++;}$Wa=($Za?" onchange=\"var f = this.form['function[".addcslashes($h,"\r\n'\\")."]']; if ($Za > f.selectedIndex) f.selectedIndex = $Za;\"":"");$pb=" name='fields[$h]'$Wa";echo(count($Fa)>1?html_select("function[$h]",$Fa,!isset($y)||in_array($y,$Fa)?$y:""):nbsp(reset($Fa))).'';$Qd=$p->editInput($_GET["edit"],$c,$pb,$q);if($Qd!=""){echo$Qd;}elseif($c["type"]=="set"){preg_match_all("~'((?:[^']|'')*)'~",$c["length"],$J);foreach($J[1]as$i=>$b){$b=stripcslashes(str_replace("''","'",$b));$Z=(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{$Ud=(!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)):($ua[$c["type"]]?$ua[$c["type"]]+($c["unsigned"]?0:1):0));echo"20?" size='40'":"")."$pb>";}}}function process_input($c){global$d,$p;$ia=bracket_escape($c["field"]);$y=$_POST["function"][$ia];$q=$_POST["fields"][$ia];if($c["type"]=="enum"?$q==-1:$y=="orig"){return false;}elseif($c["type"]=="enum"||$c["auto_increment"]?$q=="":$y=="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")){$O=get_file("fields-$ia");if(!is_string($O)){return false;}return$d->quote($O);}else{return$p->processInput($c,$q,$y);}}function search_tables(){global$p,$d;$Q=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(!$Q){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($y,$la){return($y?($y=="count distinct"?"COUNT(DISTINCT ":strtoupper("$y("))."$la)":$la);}function is_ad_email($be){$td='[-a-z0-9!#$%&\'*+/=?^_`{|}~]';$Fb='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';return preg_match("(^$td+(\\.$td+)*@($Fb?\\.)+$Fb\$)i",$be);}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($V,$Vd,$Yd=false){echo"

$Vd
\n";}function selectSearchPrint($B,$t,$w){print_fieldset("search",lang(22),$B);foreach($w as$i=>$r){if($r["type"]=="FULLTEXT"){echo"(".implode(", ",array_map('h',$r["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($Ka,$t,$w){print_fieldset("sort",lang(24),$Ka);$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($ja){echo"
".lang(26)."
";echo"","
\n";}function selectLengthPrint($Qa){if(isset($Qa)){echo"
".lang(27)."
",'',"
\n";}}function selectActionPrint(){echo"
".lang(28)."
","","
\n";}function selectEmailPrint($Be,$t){}function selectColumnsProcess($t,$w){$u=array();$ca=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)))){$u[$e]=apply_sql_function($b["fun"],(isset($t[$b["col"]])?idf_escape($b["col"]):"*"));if(!in_array($b["fun"],$this->grouping)){$ca[]=$u[$e];}}}return array($u,$ca);}function selectSearchProcess($l,$w){global$d;$g=array();foreach($w as$i=>$r){if($r["type"]=="FULLTEXT"&&$_GET["fulltext"][$i]!=""){$g[]="MATCH (".implode(", ",array_map('idf_escape',$r["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)){$ab=process_length($b["val"]);$_c=" $b[op]".(ereg('NULL$',$b["op"])?"":(ereg('IN$',$b["op"])?" (".($ab!=""?$ab:"NULL").")":" ".$this->processInput($l[$b["col"]],$b["val"])));if($b["col"]!=""){$g[]=idf_escape($b["col"]).$_c;}else{$Oa=array();foreach($l as$h=>$c){if(is_numeric($b["val"])||!ereg('int|float|double|decimal',$c["type"])){$h=idf_escape($h);$Oa[]=(ereg('char|text|enum|set',$c["type"])&&!ereg('^utf8',$c["collation"])?"CONVERT($h USING utf8)":$h);}}$g[]=($Oa?"(".implode("$_c OR ",$Oa)."$_c)":"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($B,$de){return false;}function messageQuery($m){restart_session();$V="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","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,$pb,$q){if($c["type"]=="enum"){return($c["null"]?" ":"")."";}return"";}function processInput($c,$q,$y=""){global$d;$h=$c["field"];$g=$d->quote($q);if(ereg('^(now|uuid)$',$y)){$g="$y()";}elseif(ereg('^[+-]$',$y)){$g=idf_escape($h)." $y $g";}elseif(ereg('^[+-] interval$',$y)){$g=idf_escape($h)." $y ".(preg_match("~^([0-9]+|'[0-9.: -]') [A-Z_]+$~i",$q)?$q:$g);}elseif(ereg('^(addtime|subtime|concat)$',$y)){$g="$y(".idf_escape($h).", $g)";}elseif(ereg('^(md5|sha1|password)$',$y)){$g="$y($g)";}return$g;}function dumpOutput($u){$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",$u);}function dumpFormat($u){return html_select("format",array('sql'=>'SQL','csv'=>'CSV'),"sql",$u);}function navigation($Mb){global$gb,$d;echo'

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

';if($Mb!="auth"){$ya=get_databases();echo'

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

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

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

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

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

\n";foreach($cc 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($_d,$o="",$Bc=array(),$xd=""){global$oa,$gb,$p,$d;header("Content-Type: text/html; charset=utf-8");header("X-Frame-Options: deny");$yd=$_d.($xd!=""?": ".h($xd):"");echo' ',$yd.($_GET["server"]!=""&&$_GET["server"]!="localhost"?h(" - $_GET[server]"):"")." - ".$p->name(),' ';if(file_exists("adminer.css")){echo' ';}echo'

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

$yd

\n";restart_session();if($_SESSION["messages"]){echo"
".implode("
\n
",$_SESSION["messages"])."
\n";$_SESSION["messages"]=array();}if(!$_POST&&!isset($_SESSION["passwords"])){$_SESSION["passwords"]=array();}$ya=&$_SESSION["databases"][$_GET["server"]];if(DB!=""&&$ya&&!in_array(DB,$ya,true)){$ya=null;}if($o){echo"
$o
\n";}}function page_footer($Mb=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($te,$A,$Aa){set_exception_handler('auth_error');parent::__construct($te,$A,$Aa);restore_exception_handler();$this->setAttribute(13,array('Min_PDOStatement'));}function select_db($Fc){return$this->query("USE ".idf_escape($Fc));}function query($m,$Kb=false){$f=parent::query($m);if(!$f){$se=$this->errorInfo();$this->error=$se[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,$Aa){list($ye,$Vb)=explode(":",$K,2);return@$this->real_connect(($K!=""?$ye:ini_get("mysqli.default_host")),("$K$A"!=""?$A:ini_get("mysqli.default_user")),("$K$A$Aa"!=""?$Aa:ini_get("mysqli.default_pw")),null,(is_numeric($Vb)?$Vb:ini_get("mysqli.default_port")),(!is_numeric($Vb)?$Vb: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,$Aa){$this->_link=@mysql_connect(($K!=""?$K:ini_get("mysql.default_host")),("$K$A"!=""?$A:ini_get("mysql.default_user")),("$K$A$Aa"!=""?$Aa: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($Fc){return mysql_select_db($Fc,$this->_link);}function query($m,$Kb=false){$f=@($Kb?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,$Aa){$this->dsn("mysql:host=".str_replace(":",";unix_socket=",preg_replace('~:([0-9])~',';port=\\1',$K)),$A,$Aa);$this->server_info=$this->result($this->query("SELECT VERSION()"));return true;}function query($m,$Kb=false){$this->setAttribute(1000,!$Kb);return parent::query($m,$Kb);}}}else{page_header(lang(37),lang(38,'MySQLi, MySQL, PDO_MySQL'),null);page_footer("auth");exit;}function connect(){global$p;$d=new Min_DB;$tc=$p->credentials();if($d->connect($tc[0],$tc[1],$tc[2])){$d->query("SET SQL_QUOTE_SHOW_CREATE=1");$d->query("SET NAMES utf8");return$d;}return$d->error;}function get_databases($fe=true){$g=&$_SESSION["databases"][$_GET["server"]];if(!isset($g)){restart_session();$g=get_vals("SHOW DATABASES");if($fe){ob_flush();flush();}}return$g;}function db_collation($x,$M){global$d;$g=null;$f=$d->query("SHOW CREATE DATABASE ".idf_escape($x));if($f){$X=$d->result($f,1);if(preg_match('~ COLLATE ([^ ]+)~',$X,$k)){$g=$k[1];}elseif(preg_match('~ CHARACTER SET ([^ ]+)~',$X,$k)){$g=$M[$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,$sa=null){global$d;if(!is_object($sa)){$sa=$d;}$g=array();$f=$sa->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,$Ya;static$za='(?:[^`]|``)+';$g=array();$f=$d->query("SHOW CREATE TABLE ".idf_escape($n));if($f){$ke=$d->result($f,1);preg_match_all("~CONSTRAINT `($za)` FOREIGN KEY \\(((?:`$za`,? ?)+)\\) REFERENCES `($za)`(?:\\.`($za)`)? \\(((?:`$za`,? ?)+)\\)(?: ON DELETE (".implode("|",$Ya)."))?(?: ON UPDATE (".implode("|",$Ya)."))?~",$ke,$J,PREG_SET_ORDER);foreach($J as$k){preg_match_all("~`($za)`~",$k[2],$ba);preg_match_all("~`($za)`~",$k[5],$Ma);$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',$ba[1]),"target"=>array_map('idf_unescape',$Ma[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);}$ua=array();$sc=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){$ua+=$b;$sc[$e]=array_keys($b);}$Ib=array("unsigned","zerofill","unsigned zerofill");function int32($F){while($F>=2147483648){$F-=4294967296;}while($F<=-2147483649){$F+=4294967296;}return(int)$F;}function long2str($s,$Ac){$D='';foreach($s as$b){$D.=pack('V',$b);}if($Ac){return substr($D,0,end($s));}return$D;}function str2long($D,$Ac){$s=array_values(unpack('V*',str_pad($D,4*ceil(strlen($D)/4),"\0")));if($Ac){$s[]=strlen($D);}return$s;}function xxtea_mx($R,$S,$aa,$na){return int32((($R>>5&0x7FFFFFF)^$S<<2)+(($S>>3&0x1FFFFFFF)^$R<<4))^int32(($aa^$S)+($na^$R));}function encrypt_string($rb,$e){if($rb==""){return"";}$e=array_values(unpack("V*",pack("H*",md5($e))));$s=str2long($rb,true);$F=count($s)-1;$R=$s[$F];$S=$s[0];$da=floor(6+52/($F+1));$aa=0;while($da-->0){$aa=int32($aa+0x9E3779B9);$sb=$aa>>2&3;for($U=0;$U<$F;$U++){$S=$s[$U+1];$Va=xxtea_mx($R,$S,$aa,$e[$U&3^$sb]);$R=int32($s[$U]+$Va);$s[$U]=$R;}$S=$s[0];$Va=xxtea_mx($R,$S,$aa,$e[$U&3^$sb]);$R=int32($s[$F]+$Va);$s[$F]=$R;}return long2str($s,false);}function decrypt_string($rb,$e){if($rb==""){return"";}$e=array_values(unpack("V*",pack("H*",md5($e))));$s=str2long($rb,false);$F=count($s)-1;$R=$s[$F];$S=$s[0];$da=floor(6+52/($F+1));$aa=int32($da*0x9E3779B9);while($aa){$sb=$aa>>2&3;for($U=$F;$U>0;$U--){$R=$s[$U-1];$Va=xxtea_mx($R,$S,$aa,$e[$U&3^$sb]);$S=int32($s[$U]-$Va);$s[$U]=$S;}$R=$s[$F];$Va=xxtea_mx($R,$S,$aa,$e[$U&3^$sb]);$S=int32($s[0]-$Va);$s[0]=$S;$aa=int32($aa-0x9E3779B9);}return long2str($s,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)){$_=((string)$_GET["server"]===$_POST["server"]?remove_from_uri(session_name()):preg_replace('~^([^?]*).*~','\\1',ME).($_POST["server"]!=""?'?server='.urlencode($_POST["server"]):''));if(SID_FORM){$Pa=strpos($_,'?');$_=($Pa?substr_replace($_,SID."&",$Pa+1,0):"$_?".SID);}redirect($_);}$_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(ME,0,-1),lang(45));}}elseif($_COOKIE["adminer_permanent"]&&!isset($_SESSION["usernames"][$_GET["server"]])){list($K,$A,$le)=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($le,$p->permanentLogin());if($K!=$_GET["server"]){redirect(preg_replace('~^([^?]*).*~','\\1',ME).'?server='.urlencode($K));}}}function auth_error($nd=null){global$d,$p;$dc=session_name();$A=$_SESSION["usernames"][$_GET["server"]];unset($_SESSION["usernames"][$_GET["server"]]);page_header(lang(10),(isset($A)?h($nd?$nd->getMessage():(is_string($d)?$d:lang(46))):(!$_COOKIE[$dc]&&$_GET[$dc]&&ini_get("session.use_only_cookies")?lang(47):(($_COOKIE[$dc]||$_GET[$dc])&&!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,$gb,$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";$ya=get_databases();if($ya){$M=collations();echo"

\n","\n","\n";foreach($ya as$x){$qd=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,$M))."","\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,$sa=null){if(!$f->num_rows){echo"

".lang(64)."\n";}else{echo"\n";$Ca=array();$w=array();$t=array();$rd=array();$ua=array();odd('');for($i=0;$a=$f->fetch_row();$i++){if(!$i){echo"";for($N=0;$Nfetch_field();if($c->orgtable!=""){if(!isset($w[$c->orgtable])){$w[$c->orgtable]=array();foreach(indexes($c->orgtable,$sa)as$r){if($r["type"]=="PRIMARY"){$w[$c->orgtable]=array_flip($r["columns"]);break;}}$t[$c->orgtable]=$w[$c->orgtable];}if(isset($t[$c->orgtable][$c->orgname])){unset($t[$c->orgtable][$c->orgname]);$w[$c->orgtable][$c->orgname]=$N;$Ca[$N]=$c->orgtable;}}if($c->charsetnr==63){$rd[$N]=true;}$ua[$N]=$c->type;echo"\n";}echo"";foreach($a as$e=>$b){if(!isset($b)){$b="NULL";}else{if($rd[$e]&&!is_utf8($b)){$b="".lang(18,strlen($b))."";}elseif($b==""){$b=" ";}else{$b=h($b);if($ua[$e]==254){$b="$b";}}if(isset($Ca[$e])&&!$t[$Ca[$e]]){$z="edit=".urlencode($Ca[$e]);foreach($w[$Ca[$e]]as$ec=>$N){$z.="&where".urlencode("[".bracket_escape($ec)."]")."=".urlencode($a[$N]);}$b="$b";}}echo"
".h($c->name);}echo"
$b";}}echo"
\n";}}function referencable_primary($ne){$g=array();foreach(table_status_referencable()as$W=>$n){if($W!=$ne){foreach(fields($W)as$c){if($c["primary"]){if($g[$W]){unset($g[$W]);break;}$g[$W]=$c;}}}}return$g;}function edit_type($e,$c,$M,$G=array()){global$sc,$Ib,$ib;echo' ',"',($Ib?"':'');}function process_length($ra){global$Xa;return(preg_match("~^\\s*(?:$Xa)(?:\\s*,\\s*(?:$Xa))*\\s*\$~",$ra)&&preg_match_all("~$Xa~",$ra,$J)?implode(",",$J[0]):preg_replace('~[^0-9,+-]~','',$ra));}function process_type($c,$ub="COLLATE"){global$d,$Ib;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"],$Ib)?" $c[unsigned]":"").(ereg('char|text|enum|set',$c["type"])&&$c["collation"]?" $ub ".$d->quote($c["collation"]):"");}function process_field($c,$qb){global$d;return idf_escape($c["field"]).process_type($qb).($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($fa){foreach(array('char'=>'text','date'=>'time|year','binary'=>'blob','enum'=>'set',)as$e=>$b){if(ereg("$e|$b",$fa)){return" class='$e'";}}}function edit_fields($l,$M,$fa="TABLE",$ud=0,$G=array()){global$ib;$bb=false;foreach($l as$c){if($c["comment"]!=""){$bb=true;break;}}echo' ';if($fa=="PROCEDURE"){echo' ';}echo'',($fa=="TABLE"?lang(67):lang(68)),'',lang(69),' ',lang(70),'',lang(71);if($fa=="TABLE"){echo'NULL A_I ',lang(73),'

".lang(82)."

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

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

".lang(65)."

\n";$G=foreign_keys($j);if($G){echo"\n";foreach($G as$h=>$H){$z=($H["db"]!=""?"".h($H["db"]).".":"").h($H["table"]);echo"","
".implode(", ",array_map('h',$H["source"]))."","$z","(".implode(", ",array_map('h',$H["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);$La=array();$Od=array();preg_match_all('~([^:]+):([-0-9.]+)x([-0-9.]+)(_|$)~',$_COOKIE["adminer_schema"],$J,PREG_SET_ORDER);foreach($J as$i=>$k){$La[$k[1]]=array($k[2],$k[3]);$Od[]="\n\t'".addcslashes($k[1],"\r\n'\\")."': [ $k[2], $k[3] ]";}$db=0;$Pd=-1;$Ja=array();$Id=array();$Hd=array();foreach(table_status()as$a){if(!isset($a["Engine"])){continue;}$Pa=0;$Ja[$a["Name"]]["fields"]=array();foreach(fields($a["Name"])as$h=>$c){$Pa+=1.25;$c["pos"]=$Pa;$Ja[$a["Name"]]["fields"][$h]=$c;}$Ja[$a["Name"]]["pos"]=($La[$a["Name"]]?$La[$a["Name"]]:array($db,0));if($a["Engine"]=="InnoDB"){foreach(foreign_keys($a["Name"])as$b){if(!$b["db"]){$T=$Pd;if($La[$a["Name"]][1]||$La[$b["table"]][1]){$T=min(floatval($La[$a["Name"]][1]),floatval($La[$b["table"]][1]))-1;}else{$Pd-=.1;}while($Hd[(string)$T]){$T-=.0001;}$Ja[$a["Name"]]["references"][$b["table"]][(string)$T]=array($b["source"],$b["target"]);$Id[$b["table"]][$a["Name"]][(string)$T]=$b["target"];$Hd[(string)$T]=true;}}}$db=max($db,$Ja[$a["Name"]]["pos"][0]+2.5+$Pa);}echo'

';foreach($Ja 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$eb=>$xb){foreach($xb as$T=>$Ub){$yb=$T-$La[$h][1];$i=0;foreach($Ub[0]as$ba){echo"
\n";}}}foreach((array)$Id[$h]as$eb=>$xb){foreach($xb as$T=>$t){$yb=$T-$La[$h][1];$i=0;foreach($t as$Ma){echo"
\n";}}}echo"
\n";}foreach($Ja as$h=>$n){foreach((array)$n["references"]as$eb=>$xb){foreach($xb as$T=>$Ub){$Xb=$db;$gc=-10;foreach($Ub[0]as$e=>$ba){$Kd=$n["pos"][0]+$n["fields"][$ba]["pos"];$Nd=$Ja[$eb]["pos"][0]+$Ja[$eb]["fields"][$Ub[1][$e]]["pos"];$Xb=min($Xb,$Kd,$Nd);$gc=max($gc,$Kd,$Nd);}echo"
\n";}}}echo'
';}elseif(isset($_GET["dump"])){$j=$_GET["dump"];if($_POST){$Na=dump_headers(($j!=""?$j:DB),(DB==""||count((array)$_POST["tables"]+(array)$_POST["data"])>1));if($_POST["format"]=="sql"){echo"-- Adminer $gb 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'; ";}$C=$_POST["db_style"];foreach((DB!=""?array(DB):(array)$_POST["databases"])as$x){if($d->select_db($x)){if($_POST["format"]=="sql"&&ereg('CREATE',$C)&&($f=$d->query("SHOW CREATE DATABASE ".idf_escape($x)))){if($C=="DROP+CREATE"){echo"DROP DATABASE IF EXISTS ".idf_escape($x).";\n";}$X=$d->result($f,1);echo($C=="CREATE+ALTER"?preg_replace('~^CREATE DATABASE ~','\\0IF NOT EXISTS ',$X):$X).";\n";}if($_POST["format"]=="sql"){if($C){echo"USE ".idf_escape($x).";\n\n";}if(in_array("CREATE+ALTER",array($C,$_POST["table_style"]))){echo"SET @adminer_alter = '';\n\n";}$Ba="";if($_POST["routines"]){foreach(array("FUNCTION","PROCEDURE")as$ga){$f=$d->query("SHOW $ga STATUS WHERE Db = ".$d->quote($x));while($a=$f->fetch_assoc()){$Ba.=($C!='DROP+CREATE'?"DROP $ga IF EXISTS ".idf_escape($a["Name"]).";;\n":"").$d->result($d->query("SHOW CREATE $ga ".idf_escape($a["Name"])),2).";;\n\n";}}}if($_POST["events"]){$f=$d->query("SHOW EVENTS");if($f){while($a=$f->fetch_assoc()){$Ba.=($C!='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($Ba){echo"DELIMITER ;;\n\n$Ba"."DELIMITER ;\n\n";}}if($_POST["table_style"]||$_POST["data_style"]){$zb=array();foreach(table_status()as$a){$n=(DB==""||in_array($a["Name"],(array)$_POST["tables"]));$Md=(DB==""||in_array($a["Name"],(array)$_POST["data"]));if($n||$Md){if(isset($a["Engine"])){if($Na=="tar"){ob_start();}dump_table($a["Name"],($n?$_POST["table_style"]:""));if($Md){dump_data($a["Name"],$_POST["data_style"]);}if($n){dump_triggers($a["Name"],$_POST["table_style"]);}if($Na=="tar"){echo tar_file((DB!=""?"":"$x/")."$a[Name].csv",ob_get_clean());}elseif($_POST["format"]=="sql"){echo"\n";}}elseif($_POST["format"]=="sql"){$zb[]=$a["Name"];}}}foreach($zb as$ve){dump_table($ve,$_POST["table_style"],true);}if($Na=="tar"){echo pack("x512");}}if($C=="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()){$Rb=$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 != $Rb THEN ALTER TABLE ".idf_escape($a["TABLE_NAME"])." ENGINE=$a[ENGINE] COLLATE=$a[TABLE_COLLATION] COMMENT=$Rb; 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($C,$_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'
';$Ld=array('','USE','DROP+CREATE','CREATE');$bd=array('','DROP+CREATE','CREATE');$we=array('','TRUNCATE+INSERT','INSERT','INSERT+UPDATE');if($d->server_info>=5){$Ld[]='CREATE+ALTER';$bd[]='CREATE+ALTER';}echo"
".lang(90)."".$p->dumpOutput(0)."\n";echo"
".lang(91)."".$p->dumpFormat(0)."\n","
".lang(50)."".html_select('db_style',$Ld,(DB!=""?'':'CREATE'));if($d->server_info>=5){$Z=$_GET["dump"]=="";echo checkbox("routines",1,$Z,lang(92));if($d->server_info>=5.1){echo checkbox("events",1,$Z,lang(93));}}echo"
".lang(94)."".html_select('table_style',$bd,'DROP+CREATE'),"
".lang(95)."".html_select('data_style',$we,'INSERT'),'

';$Ec=array();if(DB!=""){$Z=($j!=""?"":" checked");echo"","\n";$zb="";foreach(table_status()as$a){$h=$a["Name"];$_b=ereg_replace("_.*","",$h);$Z=($j==""||$j==(substr($j,-1)=="%"?"$_b%":$h));$Bb="\n";foreach(get_databases()as$x){if(!information_schema($x)){$_b=ereg_replace("_.*","",$x);echo"
","","
".checkbox("tables[]",$h,$Z,$h,"formUncheck('check-tables');");if(!$a["Engine"]){$zb.="$Bb\n";}else{echo"$Bb\n";}$Ec[$_b]++;}echo$zb;}else{echo"
".checkbox("databases[]",$x,$j==""||$j=="$_b%",$x,"formUncheck('check-databases');")."\n";$Ec[$_b]++;}}}echo'
';$Za=true;foreach($Ec as$e=>$b){if($e!=""&&$b>1){echo($Za?"

":" ")."".h($e)."";$Za=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();$Ta=&$_SESSION["history"][$_GET["server"]][DB];if(!$o&&$_POST["clear"]){$Ta=array();redirect(remove_from_uri("history"));}page_header(lang(29),$o);if(!$o&&$_POST){$Ha=false;$m=$_POST["query"];if($_POST["webfile"]){$Ha=@fopen((file_exists("adminer.sql")?"adminer.sql":(file_exists("adminer.sql.gz")?"compress.zlib://adminer.sql.gz":"compress.bzip2://adminer.sql.bz2")),"rb");$m=($Ha?fread($Ha,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&&(!$Ta||end($Ta)!=$m)){$Ta[]=$m;}$lc="(\\s|/\\*.*\\*/|(#|-- )[^\n]*\n|--\n)";$xe="(CREATE|DROP)$lc+(DATABASE|SCHEMA)\\b~isU";if(!ini_get("session.use_cookies")){session_write_close();}$oc=";";$ha=0;$Pc=true;$sa=(DB!=""?connect():null);if(is_object($sa)){$sa->select_db(DB);}$Ga=0;$qc="";while($m!=""){if(!$ha&&preg_match('~^\\s*DELIMITER\\s+(.+)~i',$m,$k)){$oc=$k[1];$m=substr($m,strlen($k[0]));}else{preg_match('('.preg_quote($oc).'|[\'`"]|/\\*|-- |#|$)',$m,$k,PREG_OFFSET_CAPTURE,$ha);$Q=$k[0][0];$ha=$k[0][1]+strlen($Q);if(!$Q&&$Ha&&!feof($Ha)){$m.=fread($Ha,1e5);}else{if(!$Q&&rtrim($m)==""){break;}if(!$Q||$Q==$oc){$Pc=false;$da=substr($m,0,$k[0][1]);$Ga++;echo"

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

".lang(99).": ".error()."\n";$qc.=" $Ga";if($_POST["error_stops"]){break;}}else{$gd=explode(" ",microtime());echo"

".lang(100,max(0,$gd[0]-$ld[0]+$gd[1]-$ld[1]))."

\n";do{$f=$d->store_result();if(is_object($f)){select($f,$sa);if($sa&&preg_match("~^($lc|\\()*SELECT\\b~isU",$da)){$V="explain-$Ga";echo"

".($f->num_rows?lang(101,$f->num_rows).", ":""),"EXPLAIN\n","

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

".lang(102,$d->affected_rows)."\n";}unset($f);}while($d->next_result());}$m=substr($m,$ha);$ha=0;}else{while(preg_match('~'.($Q=='/*'?'\\*/':(ereg('-- |#',$Q)?"\n":"$Q|\\\\.")).'|$~s',$m,$k,PREG_OFFSET_CAPTURE,$ha)){$D=$k[0][0];$ha=$k[0][1]+strlen($D);if(!$D&&$Ha&&!feof($Ha)){$m.=fread($Ha,1e6);}elseif($D[0]!="\\"){break;}}}}}}if($qc&&$Ga>1){echo"

".lang(99).": $qc\n";}if($Pc){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'

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

';}elseif(isset($_GET["create"])){$j=$_GET["create"];$Vc=array('HASH','LINEAR HASH','KEY','LINEAR KEY','RANGE','LIST');$ed=referencable_primary($j);$G=array();foreach($ed as$W=>$c){$G[idf_escape($W).".".idf_escape($c["field"])]=$W;}$Zb=array();$ac=array();if($j!=""){$Zb=fields($j);$ac=table_status($j);}if($_POST&&!$o&&!$_POST["add"]&&!$_POST["drop_col"]&&!$_POST["up"]&&!$_POST["down"]){$Kc=" PRIMARY KEY";if($j!=""&&$_POST["auto_increment_col"]){foreach(indexes($j)as$r){if(in_array($_POST["fields"][$_POST["auto_increment_col"]]["orig"],$r["columns"],true)){$Kc="";break;}if($r["type"]=="PRIMARY"){$Kc=" UNIQUE";}}}$l="";ksort($_POST["fields"]);$Lb=reset($Zb);$Ua="FIRST";foreach($_POST["fields"]as$e=>$c){$qb=(isset($ua[$c["type"]])?$c:$ed[$G[$c["type"]]]);if($c["field"]!=""){if($qb){$ta=eregi_replace(" *on update CURRENT_TIMESTAMP","",$c["default"]);if($ta!=$c["default"]){$c["on_update"]="CURRENT_TIMESTAMP";$c["default"]=$ta;}if(!$c["has_default"]){$c["default"]=null;}$Xc=process_field($c,$qb);$Wc=($e==$_POST["auto_increment_col"]);if($Xc!=process_field($Lb,$Lb)||$Lb["auto_increment"]!=$Wc){$l.="\n".($j!=""?($c["orig"]!=""?"CHANGE ".idf_escape($c["orig"]):"ADD"):" ")." $Xc".($Wc?" AUTO_INCREMENT$Kc":"").($j!=""?" $Ua":"").",";}if(!isset($ua[$c["type"]])){$l.=($j!=""?"\nADD":"")." FOREIGN KEY (".idf_escape($c["field"]).") REFERENCES ".idf_escape($G[$c["type"]])." (".idf_escape($qb["field"])."),";}}$Ua="AFTER ".idf_escape($c["field"]);}elseif($c["orig"]!=""){$l.="\nDROP ".idf_escape($c["orig"]).",";}if($c["orig"]!=""){$Lb=next($Zb);}}$Ra="COMMENT=".$d->quote($_POST["Comment"]).($_POST["Engine"]&&$_POST["Engine"]!=$ac["Engine"]?" ENGINE=".$d->quote($_POST["Engine"]):"").($_POST["Collation"]&&$_POST["Collation"]!=$ac["Collation"]?" COLLATE ".$d->quote($_POST["Collation"]):"").($_POST["Auto_increment"]!=""?" AUTO_INCREMENT=".preg_replace('~[^0-9]+~','',$_POST["Auto_increment"]):"");if(in_array($_POST["partition_by"],$Vc)){$yc=array();if($_POST["partition_by"]=='RANGE'||$_POST["partition_by"]=='LIST'){foreach(array_filter($_POST["partition_names"])as$e=>$b){$q=$_POST["partition_values"][$e];$yc[]="\nPARTITION ".idf_escape($b)." VALUES ".($_POST["partition_by"]=='RANGE'?"LESS THAN":"IN").($q!=""?" ($q)":" MAXVALUE");}}$Ra.="\nPARTITION BY $_POST[partition_by]($_POST[partition])".($yc?" (".implode(",",$yc)."\n)":($_POST["partitions"]?" PARTITIONS ".intval($_POST["partitions"]):""));}elseif($d->server_info>=5.1&&$j!=""){$Ra.="\nREMOVE PARTITIONING";}$_=ME."table=".urlencode($_POST["name"]);if($j!=""){query_redirect("ALTER TABLE ".idf_escape($j)."$l\nRENAME TO ".idf_escape($_POST["name"]).",\n$Ra",$_,lang(120));}else{cookie("adminer_engine",$_POST["Engine"]);query_redirect("CREATE TABLE ".idf_escape($_POST["name"])." (".substr($l,0,-1)."\n) $Ra",$_,lang(121));}}page_header(($j!=""?lang(14):lang(122)),$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=$ac;$a["name"]=$j;$a["fields"]=array();if(!$_GET["auto_increment"]){$a["Auto_increment"]="";}foreach($Zb 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){$hb="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 $hb 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 $hb AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION");while($Zc=$f->fetch_assoc()){$a["partition_names"][]=$Zc["PARTITION_NAME"];$a["partition_values"][]=$Zc["PARTITION_DESCRIPTION"];}$a["partition_names"][]="";}}$M=collations();$Ic=floor(extension_loaded("suhosin")?(min(ini_get("suhosin.request.max_vars"),ini_get("suhosin.post.max_vars"))-13)/10:0);if($Ic&&count($a["fields"])>$Ic){echo"

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

',lang(124),': ',($Jc?html_select("Engine",array(""=>"(".lang(125).")")+$Jc,$a["Engine"]):""),' ',html_select("Collation",array(""=>"(".lang(66).")")+$M,$a["Collation"]),'

';$bb=edit_fields($a["fields"],$M,"TABLE",$Ic,$G);echo'

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

';if($d->server_info>=5.1){$dd=ereg('RANGE|LIST',$a["partition_by"]);print_fieldset("partition",lang(127),$a["partition_by"]);echo'

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

';}elseif(isset($_GET["indexes"])){$j=$_GET["indexes"];$jd=array("PRIMARY","UNIQUE","INDEX","FULLTEXT");$w=indexes($j);if($_POST&&!$o&&!$_POST["add"]){$bc=array();foreach($_POST["indexes"]as$r){if(in_array($r["type"],$jd)){$t=array();$mc=array();$v=array();ksort($r["columns"]);foreach($r["columns"]as$e=>$la){if($la!=""){$ra=$r["lengths"][$e];$v[]=idf_escape($la).($ra?"(".intval($ra).")":"");$t[count($t)+1]=$la;$mc[count($mc)+1]=($ra?$ra:null);}}if($t){foreach($w as$h=>$jb){ksort($jb["columns"]);ksort($jb["lengths"]);if($r["type"]==$jb["type"]&&$jb["columns"]===$t&&$jb["lengths"]===$mc){unset($w[$h]);continue 2;}}$bc[]="\nADD $r[type]".($r["type"]=="PRIMARY"?" KEY":"")." (".implode(", ",$v).")";}}}foreach($w as$h=>$jb){$bc[]="\nDROP INDEX ".idf_escape($h);}if(!$bc){redirect(ME."table=".urlencode($j));}query_redirect("ALTER TABLE ".idf_escape($j).implode(",",$bc),ME."table=".urlencode($j),lang(131));}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=>$r){if($r["columns"][count($r["columns"])]!=""){$a["indexes"][$e]["columns"][]="";}}$r=end($a["indexes"]);if($r["type"]||array_filter($r["columns"],'strlen')||array_filter($r["lengths"],'strlen')){$a["indexes"][]=array("columns"=>array(1=>""));}}}else{foreach($a["indexes"]as$e=>$r){$a["indexes"][$e]["columns"][]="";}$a["indexes"][]=array("columns"=>array(1=>""));}echo'
';$N=0;foreach($a["indexes"]as$r){echo"
',lang(132),'',lang(133),'
".html_select("indexes[$N][type]",array(-1=>"")+$jd,$r["type"],($N==count($a["indexes"])-1?"indexesAddRow(this);":1))."\n";ksort($r["columns"]);foreach($r["columns"]as$i=>$la){echo"".html_select("indexes[$N][columns][$i]",array(-1=>"")+$l,$la,($i==count($r["columns"])?"indexesAddColumn(this);":1))," \n";}echo"\n";$N++;}echo'

';}elseif(isset($_GET["database"])){if($_POST&&!$o&&!isset($_POST["add_x"])){if(DB!==$_POST["name"]){restart_session();unset($_SESSION["databases"][$_GET["server"]]);$kb=explode("\n",str_replace("\r","",$_POST["name"]));$Db=false;$Gb="";foreach($kb as$x){if(count($kb)==1||$x!=""){if(!queries("CREATE DATABASE ".idf_escape($x).($_POST["collation"]?" COLLATE ".$d->quote($_POST["collation"]):""))){$Db=true;}$Gb=$x;}}if(query_redirect(queries(),ME."db=".urlencode($Gb),lang(134),DB=="",false,$Db)){$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(135),!$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(136));}}page_header(DB!=""?lang(137):lang(138),$o,array(),DB);$M=collations();$h=DB;$ub=null;if($_POST){$h=$_POST["name"];$ub=$_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{$ub=db_collation(DB,$M);}echo'

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

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

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

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

';if($ab){echo"\n";foreach($ab as$e){$c=$ga["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(141));}else{$ba=array_filter($_POST["source"],'strlen');ksort($ba);$Ma=array();foreach($ba as$e=>$b){$Ma[$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',$ba)).") REFERENCES ".idf_escape($_POST["table"])." (".implode(", ",array_map('idf_escape',$Ma)).")".(in_array($_POST["on_delete"],$Ya)?" ON DELETE $_POST[on_delete]":"").(in_array($_POST["on_update"],$Ya)?" ON UPDATE $_POST[on_update]":""),ME."table=".urlencode($j),($_GET["name"]!=""?lang(142):lang(143)));$o=lang(144)."
$o";}}page_header(lang(145),$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"]!=""){$G=foreign_keys($j);$a=$G[$_GET["name"]];$a["source"][]="";}$ba=array_keys(fields($j));$Ma=($j===$a["table"]?$ba:array_keys(fields($a["table"])));echo'

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