is_ad_email() * no javascript; only - * line 80: no sourceforge-url, change: in var jushRoot='' * line 954: remove: header("X-Frame-Options: deny"); * js_escape --> js_ad_escape */ /** Adminer - Compact database management * @link http://www.adminer.org/ * @author Jakub Vrana, http://www.vrana.cz/ * @copyright 2007 Jakub Vrana * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other) */error_reporting(6135);$ze=(!ereg('^(unsafe_raw)?$',ini_get("filter.default"))||ini_get("filter.default_flags"));if($ze){foreach(array('_GET','_POST','_COOKIE','_SERVER')as$b){$ge=filter_input_array(constant("INPUT$b"),FILTER_UNSAFE_RAW);if($ge){$$b=$ge;}}}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/wBhTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERERAAAAAAETMzEQAAAAATERExAAAAABMRETEAAAAAExERMQAAAAATERExAAAAABMRETEAAAAAEzMzMREREQATERExEhEhABEzMxEhEREAAREREhERIRAAAAARIRESEAAAAAESEiEQAAAAABEREQAAAAAAAAAAD//9UAwP/VAIB/AACAf/AAgH+kAIB/gACAfwAAgH8AAIABAACAAf8AgAH/AMAA/wD+AP8A/wAIAf+B1QD//9UA");}elseif($_GET["file"]=="default.css"){header("Content-Type: text/css; charset=utf-8");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:1em 0 0;}form{margin:0;}table{margin:1em 20px 0 0;border:0;border-top:1px solid #999;border-left:1px solid #999;font-size:90%;}td,th{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:.8em .5em 0 0;border:1px solid #999;}p{margin:.8em 20px 0 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;}pre{margin:1em 0 0;}.version{color:#777;font-size:67%;}.js .hidden,.nojs .jsonly{display:none;}.nowrap td,.nowrap th,td.nowrap{white-space:pre;}.wrap td{white-space:normal;}.error{color:red;background:#fee;}.error b{background:#fff;font-weight:normal;}.message{color:green;background:#efe;}.error,.message{padding:.5em .8em;margin:1em 20px 0 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;}.options select{width:20ex;width:auto\\9;}.active{font-weight:bold;}.sqlarea{width:98%;}#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;}#loader{position:fixed;top:0;left:18em;}#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;}.rtl h2{margin:0 -18px 20px 0;}.rtl p,.rtl table,.rtl .error,.rtl .message{margin:1em 0 0 20px;}.rtl #content{margin:2em 21em 0 0;padding:10px 0 20px 20px;}.rtl #breadcrumb{left:auto;right:21em;margin:0 -18px 0 0;}.rtl #lang,.rtl #menu{left:auto;right:0;}@media print{#lang,#menu{display:none;}#content{margin-left:1em;}#breadcrumb{left:1em;}.nowrap td,.nowrap th,td.nowrap{white-space:normal;}}';}elseif($_GET["file"]=="functions.js"){header("Content-Type: text/javascript; charset=utf-8");?> document.body.className=document.body.className.replace(/(^|\s)nojs(\s|$)/,'$1js$2');function toggle(id){var el=document.getElementById(id);el.className=(el.className=='hidden'?'':'hidden');return true;} function cookie(assign,days){var date=new Date();date.setDate(date.getDate()+days);document.cookie=assign+'; expires='+date;} function verifyVersion(){cookie('adminer_version=0',1);var script=document.createElement('script');script.src=location.protocol+'//www.adminer.org/version.php';document.body.appendChild(script);} function selectValue(select){var selected=select.options[select.selectedIndex];return((selected.attributes.value||{}).specified?selected.value:selected.text);} function formCheck(el,name){var elems=el.form.elements;for(var i=0;i.*<\/noscript>/i,'');}}} function nodePosition(el){var pos=0;while(el=el.previousSibling){pos++;} return pos;} function pageClick(href,page,event){if(!isNaN(page)&&page){href+=(page!=1?'&page='+(page-1):'');if(!ajaxSend(href)){location.href=href;}}} function selectAddRow(field){field.onchange=function(){};var row=field.parentNode.cloneNode(true);var selects=row.getElementsByTagName('select');for(var i=0;i=0){input.maxLength=input.origMaxLength;}} function ajax(url,callback,data){var xmlhttp=(window.XMLHttpRequest?new XMLHttpRequest():(window.ActiveXObject?new ActiveXObject('Microsoft.XMLHTTP'):false));if(xmlhttp){xmlhttp.open((data?'POST':'GET'),url);if(data){xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');} xmlhttp.setRequestHeader('X-Requested-With','XMLHttpRequest');xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4){callback(xmlhttp);}};xmlhttp.send(data);} return xmlhttp;} function ajaxSetHtml(url){return ajax(url,function(xmlhttp){if(xmlhttp.status){var data=eval('('+xmlhttp.responseText+')');for(var key in data){setHtml(key,data[key]);}}});} function replaceFavicon(href){var favicon=document.getElementById('favicon');favicon.href=href;favicon.parentNode.appendChild(favicon);} var ajaxState=0;function ajaxSend(url,data,popState){if(!history.pushState){return false;} var currentState=++ajaxState;onblur=function(){replaceFavicon(location.pathname+'?file=loader.gif&version=3.2.1');};setHtml('loader','');return ajax(url,function(xmlhttp){if(currentState==ajaxState){var title=xmlhttp.getResponseHeader('X-AJAX-Title');if(title){document.title=decodeURIComponent(title);} var redirect=xmlhttp.getResponseHeader('X-AJAX-Redirect');if(redirect){return ajaxSend(redirect,'',popState);} onblur=function(){};replaceFavicon(location.pathname+'?file=favicon.ico&version=3.2.1');if(!xmlhttp.status){setHtml('loader','');}else{if(!popState){if(data||url!=location.href){history.pushState(data,'',url);} scrollTo(0,0);} setHtml('content',xmlhttp.responseText);var content=document.getElementById('content');var scripts=content.getElementsByTagName('script');var length=scripts.length;for(var i=0;i=allowed){return false;} var match=/(\d+)(\.\d+)?/.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(/^....(.+)-\d+$/,'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,db){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;} s=encodeURIComponent(s.substr(1));var link=document.getElementById('schema-link');link.href=link.href.replace(/[^=]+$/,'')+s;cookie('adminer_schema-'+db+'='+s,30);}}$y){unset($vb[$d][$Na]);if(is_array($y)){$vb[$d][stripslashes($Na)]=$y;$vb[]=&$vb[$d][stripslashes($Na)];}else{$vb[$d][stripslashes($Na)]=($ze?$y:stripslashes($y));}}}}}function bracket_escape($M,$tf=false){static$ae=array(':'=>':1',']'=>':2','['=>':3');return strtr($M,($tf?array_flip($ae):$ae));}function h($I){return htmlspecialchars($I,ENT_QUOTES);}function nbsp($I){return(trim($I)!=""?h($I):" ");}function nl_br($I){return str_replace("\n","
",$I);}function checkbox($f,$q,$eb,$de="",$me=""){static$R=0;$R++;$c="";return($de!=""?"":$c);}function optionlist($Nc,$Tf=null,$we=false){$c="";foreach($Nc as$Na=>$y){$se=array($Na=>$y);if(is_array($y)){$c.='';$se=$y;}foreach($se as$d=>$b){$c.=''.h($b);}if(is_array($y)){$c.='';}}return$c;}function html_select($f,$Nc,$q="",$Lb=true){if($Lb){return"";}$c="";foreach($Nc as$d=>$b){$c.="";}return$c;}function confirm($Zc="",$If=false){return" onclick=\"".($If?"eventStop(event); ":"")."return confirm('".lang(0).($Zc?" (' + $Zc + ')":"")."');\"";}function js_ad_escape($I){return addcslashes($I,"\r\n'\\/");}function ini_bool($Hf){$b=ini_get($Hf);return(eregi('^(on|true|yes)$',$b)||(int)$b);}function sid(){static$c;if(!isset($c)){$c=(SID&&!($_COOKIE&&ini_bool("session.use_cookies")));}return$c;}function q($I){global$g;return$g->quote($I);}function get_vals($j,$C=0){global$g;$c=array();$i=$g->query($j);if(is_object($i)){while($a=$i->fetch_row()){$c[]=$a[$C];}}return$c;}function get_key_vals($j,$H=null){global$g;if(!is_object($H)){$H=$g;}$c=array();$i=$H->query($j);if(is_object($i)){while($a=$i->fetch_row()){$c[$a[0]]=$a[1];}}return$c;}function get_rows($j,$H=null,$n="

"){global$g;if(!is_object($H)){$H=$g;}$c=array();$i=$H->query($j);if(is_object($i)){while($a=$i->fetch_assoc()){$c[]=$a;}}elseif(!$i&&$g->error&&$n&&defined("PAGE_HEADER")){echo$n.error()."\n";}return$c;}function unique_array($a,$J){foreach($J as$x){if(ereg("PRIMARY|UNIQUE",$x["type"])){$c=array();foreach($x["columns"]as$d){if(!isset($a[$d])){continue 2;}$c[$d]=$a[$d];}return$c;}}$c=array();foreach($a as$d=>$b){if(!preg_match('~^(COUNT\\((\\*|(DISTINCT )?`(?:[^`]|``)+`)\\)|(AVG|GROUP_CONCAT|MAX|MIN|SUM)\\(`(?:[^`]|``)+`\\))$~',$d)){$c[$d]=$b;}}return$c;}function where($s){global$v;$c=array();foreach((array)$s["where"]as$d=>$b){$c[]=idf_escape(bracket_escape($d,1)).(ereg('\\.',$b)||$v=="mssql"?" LIKE ".exact_value(addcslashes($b,"%_")):" = ".exact_value($b));}foreach((array)$s["null"]as$d){$c[]=idf_escape($d)." IS NULL";}return implode(" AND ",$c);}function where_check($b){parse_str($b,$Yd);remove_slashes(array(&$Yd));return where($Yd);}function where_link($l,$C,$q,$xf="="){return"&where%5B$l%5D%5Bcol%5D=".urlencode($C)."&where%5B$l%5D%5Bop%5D=".urlencode((isset($q)?$xf:"IS NULL"))."&where%5B$l%5D%5Bval%5D=".urlencode($q);}function cookie($f,$q){global$Ec;$Dc=array($f,(ereg("\n",$q)?"":$q),time()+2592000,preg_replace('~\\?.*~','',$_SERVER["REQUEST_URI"]),"",$Ec);if(version_compare(PHP_VERSION,'5.2.0')>=0){$Dc[]=true;}return call_user_func_array('setcookie',$Dc);}function restart_session(){if(!ini_bool("session.use_cookies")){session_start();}}function&get_session($d){return$_SESSION[$d][DRIVER][SERVER][$_GET["username"]];}function set_session($d,$b){$_SESSION[$d][DRIVER][SERVER][$_GET["username"]]=$b;}function auth_url($Kb,$F,$P){global$ma;preg_match('~([^?]*)\\??(.*)~',remove_from_uri(implode("|",array_keys($ma))."|username|".session_name()),$k);return"$k[1]?".(sid()?SID."&":"").($Kb!="server"||$F!=""?urlencode($Kb)."=".urlencode($F)."&":"")."username=".urlencode($P).($k[2]?"&$k[2]":"");}function is_ajax(){return($_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest");}function redirect($fa,$ua=null){if(isset($ua)){restart_session();$_SESSION["messages"][preg_replace('~^[^?]*~','',(isset($fa)?$fa:$_SERVER["REQUEST_URI"]))][]=$ua;}if(isset($fa)){if($fa==""){$fa=".";}header((is_ajax()?"X-AJAX-Redirect":"Location").": $fa");exit;}}function query_redirect($j,$fa,$ua,$Xc=true,$Gf=true,$hf=false){global$g,$n,$o;if($Gf){$hf=!$g->query($j);}$td="";if($j){$td=$o->messageQuery("$j;");}if($hf){$n=error().$td;return false;}if($Xc){redirect($fa,$ua.$td);}return true;}function queries($j=null){global$g;static$jb=array();if(!isset($j)){return implode(";\n",$jb);}$jb[]=(ereg(';$',$j)?"DELIMITER ;;\n$j;\nDELIMITER ":$j);return$g->query($j);}function apply_queries($j,$D,$yf='table'){foreach($D as$h){if(!queries("$j ".$yf($h))){return false;}}return true;}function queries_redirect($fa,$ua,$Xc){return query_redirect(queries(),$fa,$ua,$Xc,false,!$Xc);}function remove_from_uri($db=""){return substr(preg_replace("~(?<=[?&])($db".(SID?"":"|".session_name()).")=[^&]*&~",'',"$_SERVER[REQUEST_URI]&"),0,-1);}function pagination($da,$zf){return" ".($da==$zf?$da+1:''.($da+1)."");}function get_file($d,$Fd=false){$Ia=$_FILES[$d];if(!$Ia||$Ia["error"]){return$Ia["error"];}$c=file_get_contents($Fd&&ereg('\\.gz$',$Ia["name"])?"compress.zlib://$Ia[tmp_name]":($Fd&&ereg('\\.bz2$',$Ia["name"])?"compress.bzip2://$Ia[tmp_name]":$Ia["tmp_name"]));if($Fd){if(function_exists("iconv")&&ereg("^\xFE\xFF|^\xFF\xFE",$c,$Wf)){$c=iconv("utf-16","utf-8",$c);}else{$c=ereg_replace("^\xEF\xBB\xBF","",$c);}}return$c;}function upload_error($n){$Ge=($n==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):null);return($n?lang(1).($Ge?" ".lang(2,$Ge):""):lang(3));}function odd($c=' class="odd"'){static$l=0;if(!$c){$l=-1;}return($l++% 2?$c:'');}function json_row($d,$b=null){static$za=true;if($za){echo"{";}if($d!=""){echo($za?"":",")."\n\t\"".addcslashes($d,"\r\n\"\\").'": '.(isset($b)?'"'.addcslashes($b,"\r\n\"\\").'"':'undefined');$za=false;}else{echo"\n}\n";$za=true;}}function is_utf8($b){return(preg_match('~~u',$b)&&!preg_match('~[\\0-\\x8\\xB\\xC\\xE-\\x1F]~',$b));}function repeat_pattern($ca,$X){return str_repeat("$ca{0,65535}",$X/65535)."$ca{0,".($X % 65535)."}";}function shorten_utf8($I,$X=80,$Qf=""){if(!preg_match("(^(".repeat_pattern("[\t\r\n -\x{FFFF}]",$X).")($)?)u",$I,$k)){preg_match("(^(".repeat_pattern("[\t\r\n -~]",$X).")($)?)",$I,$k);}return h($k[1]).$Qf.(isset($k[2])?"":"...");}function friendly_url($b){return preg_replace('~[^a-z0-9_]~i','-',$b);}function hidden_fields($vb,$Nf=array()){while(list($d,$b)=each($vb)){if(is_array($b)){foreach($b as$Na=>$y){$vb[$d."[$Na]"]=$y;}}elseif(!in_array($d,$Nf)){echo'';}}}function hidden_fields_get(){echo(sid()?'':''),(SERVER!==null?'':""),'';}function column_foreign_keys($h){global$o;$c=array();foreach($o->foreignKeys($h)as$A){foreach($A["source"]as$b){$c[$b][]=$A;}}return$c;}function enum_input($z,$Va,$e,$q,$fc=null){global$o;preg_match_all("~'((?:[^']|'')*)'~",$e["length"],$oa);$c=(isset($fc)?"":"");foreach($oa[1]as$l=>$b){$b=stripcslashes(str_replace("''","'",$b));$eb=(is_int($q)?$q==$l+1:(is_array($q)?in_array($l+1,$q):$q===$b));$c.=" ';}return$c;}function input($e,$q,$K){global$S,$o,$v;$f=h(bracket_escape($e["field"]));echo"";$Le=($v=="mssql"&&$e["auto_increment"]);if($Le&&!$_POST["save"]){$K=null;}$ba=(isset($_GET["select"])||$Le?array("orig"=>lang(5)):array())+$o->editFunctions($e);$Va=" name='fields[$f]'";if($e["type"]=="enum"){echo nbsp($ba[""])."".$o->editInput($_GET["edit"],$e,$Va,$q);}else{$za=0;foreach($ba as$d=>$b){if($d===""||!$b){break;}$za++;}$Lb=($za?" onchange=\"var f = this.form['function[".js_ad_escape($f)."]']; if ($za > f.selectedIndex) f.selectedIndex = $za;\"":"");$Va.=$Lb;echo(count($ba)>1?html_select("function[$f]",$ba,!isset($K)||in_array($K,$ba)||isset($ba[$K])?$K:"","functionChange(this);"):nbsp(reset($ba))).'';$_e=$o->editInput($_GET["edit"],$e,$Va,$q);if($_e!=""){echo$_e;}elseif($e["type"]=="set"){preg_match_all("~'((?:[^']|'')*)'~",$e["length"],$oa);foreach($oa[1]as$l=>$b){$b=stripcslashes(str_replace("''","'",$b));$eb=(is_int($q)?($q>>$l)&1:in_array($b,explode(",",$q),true));echo" ';}}elseif(ereg('blob|bytea|raw|file',$e["type"])&&ini_bool("file_uploads")){echo"";}elseif(ereg('text|lob',$e["type"])){echo"';}else{$ld=(!ereg('int',$e["type"])&&preg_match('~^(\\d+)(,(\\d+))?$~',$e["length"],$k)?((ereg("binary",$e["type"])?2:1)*$k[1]+($k[3]?1:0)+($k[2]&&!$e["unsigned"]?1:0)):($S[$e["type"]]?$S[$e["type"]]+($e["unsigned"]?0:1):0));echo"20?" size='40'":"")."$Va>";}}}function process_input($e){global$o;$M=bracket_escape($e["field"]);$K=$_POST["function"][$M];$q=$_POST["fields"][$M];if($e["type"]=="enum"){if($q==-1){return false;}if($q==""){return"NULL";}return+$q;}if($e["auto_increment"]&&$q==""){return null;}if($K=="orig"){return false;}if($K=="NULL"){return"NULL";}if($e["type"]=="set"){return array_sum((array)$q);}if(ereg('blob|bytea|raw|file',$e["type"])&&ini_bool("file_uploads")){$Ia=get_file("fields-$M");if(!is_string($Ia)){return false;}return q($Ia);}return$o->processInput($e,$q,$K);}function search_tables(){global$o,$g;$_GET["where"][0]["op"]="LIKE %%";$_GET["where"][0]["val"]=$_POST["query"];$pa=false;foreach(table_status()as$h=>$E){$f=$o->tableName($E);if(isset($E["Engine"])&&$f!=""&&(!$_POST["tables"]||in_array($h,$_POST["tables"]))){$i=$g->query("SELECT".limit("1 FROM ".table($h)," WHERE ".implode(" AND ",$o->selectSearchProcess(fields($h),array())),1));if($i->fetch_row()){if(!$pa){echo"

    \n";$pa=true;}echo"
  • ".h($f)."\n";}}}echo($pa?"
":"

".lang(6))."\n";}function dump_headers($Yc,$Ad=false){global$o;$c=$o->dumpHeaders($Yc,$Ad);$Ja=$_POST["output"];if($Ja!="text"){header("Content-Disposition: attachment; filename=".($Yc!=""?friendly_url($Yc):"dump").".$c".($Ja!="file"&&!ereg('[^0-9a-z]',$Ja)?".$Ja":""));}session_write_close();return$c;}function dump_csv($a){foreach($a as$d=>$b){if(preg_match("~[\"\n,;\t]~",$b)||$b===""){$a[$d]='"'.str_replace('"','""',$b).'"';}}echo implode(($_POST["format"]=="csv"?",":($_POST["format"]=="tsv"?"\t":";")),$a)."\r\n";}function apply_sql_function($K,$C){return($K?($K=="unixepoch"?"DATETIME($C, '$K')":($K=="count distinct"?"COUNT(DISTINCT ":strtoupper("$K("))."$C)"):$C);}function password_file(){$Mc=ini_get("upload_tmp_dir");if(!$Mc){if(function_exists('sys_get_temp_dir')){$Mc=sys_get_temp_dir();}else{$ka=@tempnam("","");if(!$ka){return false;}$Mc=dirname($ka);unlink($ka);}}$ka="$Mc/adminer.key";$c=@file_get_contents($ka);if($c){return$c;}$Pa=@fopen($ka,"w");if($Pa){$c=md5(uniqid(mt_rand(),true));fwrite($Pa,$c);fclose($Pa);}return$c;}function is_ad_email($uf){$Ae='[-a-z0-9!#$%&\'*+/=?^_`{|}~]';$vc='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';$ca="$Ae+(\\.$Ae+)*@($vc?\\.)+$vc";return preg_match("(^$ca(,\\s*$ca)*\$)i",$uf);}function is_url($I){$vc='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';return(preg_match("~^(https?)://($vc?\\.)+$vc(:\\d+)?(/.*)?(\\?.*)?(#.*)?\$~i",$I,$k)?strtolower($k[1]):"");}function print_fieldset($R,$mf,$nf=false){echo"

$mf
\n";}function selectSearchPrint($s,$B,$J){print_fieldset("search",lang(36),$s);foreach($J as$l=>$x){if($x["type"]=="FULLTEXT"){echo"(".implode(", ",array_map('h',$x["columns"])).") AGAINST"," ",checkbox("boolean[$l]",1,isset($_GET["boolean"][$l]),"BOOL"),"
\n";}}$l=0;foreach((array)$_GET["where"]as$b){if("$b[col]$b[val]"!=""&&in_array($b["op"],$this->operators)){echo"
",html_select("where[$l][op]",$this->operators,$b["op"]),"
\n";$l++;}}echo"
",html_select("where[$l][op]",$this->operators,"="),"
\n","\n";}function selectOrderPrint($Za,$B,$J){print_fieldset("sort",lang(38),$Za);$l=0;foreach((array)$_GET["order"]as$d=>$b){if(isset($B[$b])){echo"
",checkbox("desc[$l]",1,isset($_GET["desc"][$d]),lang(39))."
\n";$l++;}}echo"
","
\n";echo"\n";}function selectLimitPrint($L){echo"
".lang(40)."
";echo"","
\n";}function selectLengthPrint($Cb){if(isset($Cb)){echo"
".lang(41)."
",'',"
\n";}}function selectActionPrint(){echo"
".lang(42)."
","","
\n";}function selectEmailPrint($ag,$B){}function selectColumnsProcess($B,$J){global$ba,$qb;$Q=array();$sa=array();foreach((array)$_GET["columns"]as$d=>$b){if($b["fun"]=="count"||(isset($B[$b["col"]])&&(!$b["fun"]||in_array($b["fun"],$ba)||in_array($b["fun"],$qb)))){$Q[$d]=apply_sql_function($b["fun"],(isset($B[$b["col"]])?idf_escape($b["col"]):"*"));if(!in_array($b["fun"],$qb)){$sa[]=$Q[$d];}}}return array($Q,$sa);}function selectSearchProcess($p,$J){global$v;$c=array();foreach($J as$l=>$x){if($x["type"]=="FULLTEXT"&&$_GET["fulltext"][$l]!=""){$c[]="MATCH (".implode(", ",array_map('idf_escape',$x["columns"])).") AGAINST (".q($_GET["fulltext"][$l]).(isset($_GET["boolean"][$l])?" IN BOOLEAN MODE":"").")";}}foreach((array)$_GET["where"]as$b){if("$b[col]$b[val]"!=""&&in_array($b["op"],$this->operators)){$Pb=" $b[op]";if(ereg('IN$',$b["op"])){$Rb=process_length($b["val"]);$Pb.=" (".($Rb!=""?$Rb:"NULL").")";}elseif(!$b["op"]){$Pb.=$b["val"];}elseif($b["op"]=="LIKE %%"){$Pb=" LIKE ".$this->processInput($p[$b["col"]],"%$b[val]%");}elseif(!ereg('NULL$',$b["op"])){$Pb.=" ".$this->processInput($p[$b["col"]],$b["val"]);}if($b["col"]!=""){$c[]=idf_escape($b["col"]).$Pb;}else{$rb=array();foreach($p as$f=>$e){if(is_numeric($b["val"])||!ereg('int|float|double|decimal',$e["type"])){$f=idf_escape($f);$rb[]=($v=="sql"&&ereg('char|text|enum|set',$e["type"])&&!ereg('^utf8',$e["collation"])?"CONVERT($f USING utf8)":$f);}}$c[]=($rb?"(".implode("$Pb OR ",$rb)."$Pb)":"0");}}}return$c;}function selectOrderProcess($p,$J){$c=array();foreach((array)$_GET["order"]as$d=>$b){if(isset($p[$b])||preg_match('~^((COUNT\\(DISTINCT |[A-Z0-9_]+\\()(`(?:[^`]|``)+`|"(?:[^"]|"")+")\\)|COUNT\\(\\*\\))$~',$b)){$c[]=(isset($p[$b])?idf_escape($b):$b).(isset($_GET["desc"][$d])?" DESC":"");}}return$c;}function selectLimitProcess(){return(isset($_GET["limit"])?$_GET["limit"]:"30");}function selectLengthProcess(){return(isset($_GET["text_length"])?$_GET["text_length"]:"100");}function selectEmailProcess($s,$Jf){return false;}function messageQuery($j){global$v;static$Zc=0;restart_session();$R="sql-".($Zc++);$Ya=&get_session("queries");if(strlen($j)>1e6){$j=ereg_replace('[\x80-\xFF]+$','',substr($j,0,1e6))."\n...";}$Ya[$_GET["db"]][]=$j;return" ".lang(43)."';}function editFunctions($e){global$Nb;$c=($e["null"]?"NULL/":"");foreach($Nb as$d=>$ba){if(!$d||(!isset($_GET["call"])&&(isset($_GET["select"])||where($_GET)))){foreach($ba as$ca=>$b){if(!$ca||ereg($ca,$e["type"])){$c.="/$b";}}if($d&&!ereg('set|blob|bytea|raw|file',$e["type"])){$c.="/=";}}}return explode("/",$c);}function editInput($h,$e,$Va,$q){if($e["type"]=="enum"){return(isset($_GET["select"])?" ":"").($e["null"]?" ":"").enum_input("radio",$Va,$e,$q,0);}return"";}function processInput($e,$q,$K=""){if($K=="="){return$q;}$f=$e["field"];$c=($e["type"]=="bit"&&ereg('^[0-9]+$',$q)?$q:q($q));if(ereg('^(now|getdate|uuid)$',$K)){$c="$K()";}elseif(ereg('^current_(date|timestamp)$',$K)){$c=$K;}elseif(ereg('^([+-]|\\|\\|)$',$K)){$c=idf_escape($f)." $K $c";}elseif(ereg('^[+-] interval$',$K)){$c=idf_escape($f)." $K ".(preg_match("~^(\\d+|'[0-9.: -]') [A-Z_]+$~i",$q)?$q:$c);}elseif(ereg('^(addtime|subtime|concat)$',$K)){$c="$K(".idf_escape($f).", $c)";}elseif(ereg('^(md5|sha1|password|encrypt|hex)$',$K)){$c="$K($c)";}if(ereg("binary",$e["type"])){$c="unhex($c)";}return$c;}function dumpOutput(){$c=array('text'=>lang(44),'file'=>lang(45));if(function_exists('gzencode')){$c['gz']='gzip';}if(function_exists('bzcompress')){$c['bz2']='bzip2';}return$c;}function dumpFormat(){return array('sql'=>'SQL','csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function dumpTable($h,$V,$ed=false){if($_POST["format"]!="sql"){echo"\xef\xbb\xbf";if($V){dump_csv(array_keys(fields($h)));}}elseif($V){$la=create_sql($h,$_POST["auto_increment"]);if($la){if($V=="DROP+CREATE"){echo"DROP ".($ed?"VIEW":"TABLE")." IF EXISTS ".table($h).";\n";}if($ed){$la=preg_replace('~^([A-Z =]+) DEFINER=`'.preg_replace('~@(.*)~','`@`(%|\\1)',logged_user()).'`~','\\1',$la);}echo($V!="CREATE+ALTER"?$la:($ed?substr_replace($la," OR REPLACE",6,0):substr_replace($la," IF NOT EXISTS",12,0))).";\n\n";}if($V=="CREATE+ALTER"&&!$ed){$j="SELECT COLUMN_NAME, COLUMN_DEFAULT, IS_NULLABLE, COLLATION_NAME, COLUMN_TYPE, EXTRA, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ".q($h)." ORDER BY ORDINAL_POSITION";echo"DELIMITER ;; CREATE PROCEDURE adminer_alter (INOUT alter_command text) BEGIN DECLARE _column_name, _collation_name, after varchar(64) DEFAULT ''; DECLARE _column_type, _column_default text; DECLARE _is_nullable char(3); DECLARE _extra varchar(30); DECLARE _column_comment varchar(255); DECLARE done, set_after bool DEFAULT 0; DECLARE add_columns text DEFAULT '";$p=array();$Mb="";foreach(get_rows($j)as$a){$Ba=$a["COLUMN_DEFAULT"];$a["default"]=(isset($Ba)?q($Ba):"NULL");$a["after"]=q($Mb);$a["alter"]=escape_string(idf_escape($a["COLUMN_NAME"])." $a[COLUMN_TYPE]".($a["COLLATION_NAME"]?" COLLATE $a[COLLATION_NAME]":"").(isset($Ba)?" DEFAULT ".($Ba=="CURRENT_TIMESTAMP"?$Ba:$a["default"]):"").($a["IS_NULLABLE"]=="YES"?"":" NOT NULL").($a["EXTRA"]?" $a[EXTRA]":"").($a["COLUMN_COMMENT"]?" COMMENT ".q($a["COLUMN_COMMENT"]):"").($Mb?" AFTER ".idf_escape($Mb):" FIRST"));echo", ADD $a[alter]";$p[]=$a;$Mb=$a["COLUMN_NAME"];}echo"'; DECLARE columns CURSOR FOR $j; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; SET @alter_table = ''; OPEN columns; REPEAT FETCH columns INTO _column_name, _column_default, _is_nullable, _collation_name, _column_type, _extra, _column_comment; IF NOT done THEN SET set_after = 1; CASE _column_name";foreach($p as$a){echo" WHEN ".q($a["COLUMN_NAME"])." THEN SET add_columns = REPLACE(add_columns, ', ADD $a[alter]', ''); IF NOT (_column_default <=> $a[default]) OR _is_nullable != '$a[IS_NULLABLE]' OR _collation_name != '$a[COLLATION_NAME]' OR _column_type != ".q($a["COLUMN_TYPE"])." OR _extra != '$a[EXTRA]' OR _column_comment != ".q($a["COLUMN_COMMENT"])." OR after != $a[after] THEN SET @alter_table = CONCAT(@alter_table, ', MODIFY $a[alter]'); END IF;";}echo" ELSE SET @alter_table = CONCAT(@alter_table, ', DROP ', _column_name); SET set_after = 0; END CASE; IF set_after THEN SET after = _column_name; END IF; END IF; UNTIL done END REPEAT; CLOSE columns; IF @alter_table != '' OR add_columns != '' THEN SET alter_command = CONCAT(alter_command, 'ALTER TABLE ".table($h)."', SUBSTR(CONCAT(add_columns, @alter_table), 2), ';\\n'); END IF; END;; DELIMITER ; CALL adminer_alter(@adminer_alter); DROP PROCEDURE adminer_alter; ";}}}function dumpData($h,$V,$j){global$g,$v;$Oe=($v=="sqlite"?0:1048576);if($V){if($_POST["format"]=="sql"&&$V=="TRUNCATE+INSERT"){echo truncate_sql($h).";\n";}if($_POST["format"]=="sql"){$p=fields($h);}$i=$g->query($j,1);if($i){$xc="";$ob="";while($a=$i->fetch_assoc()){if($_POST["format"]!="sql"){if($V=="table"){dump_csv(array_keys($a));$V="INSERT";}dump_csv($a);}else{if(!$xc){$xc="INSERT INTO ".table($h)." (".implode(", ",array_map('idf_escape',array_keys($a))).") VALUES";}foreach($a as$d=>$b){$a[$d]=(isset($b)?(ereg('int|float|double|decimal',$p[$d]["type"])?$b:q($b)):"NULL");}$na=implode(",\t",$a);if($V=="INSERT+UPDATE"){$r=array();foreach($a as$d=>$b){$r[]=idf_escape($d)." = $b";}echo"$xc ($na) ON DUPLICATE KEY UPDATE ".implode(", ",$r).";\n";}else{$na=($Oe?"\n":" ")."($na)";if(!$ob){$ob=$xc.$na;}elseif(strlen($ob)+2+strlen($na)<$Oe){$ob.=",$na";}else{$ob.=";\n";echo$ob;$ob=$xc.$na;}}}}if($_POST["format"]=="sql"&&$V!="INSERT+UPDATE"&&$ob){$ob.=";\n";echo$ob;}}elseif($_POST["format"]=="sql"){echo"-- ".str_replace("\n"," ",$g->error)."\n";}}}function dumpHeaders($Yc,$Ad=false){$Ja=$_POST["output"];$Ib=($_POST["format"]=="sql"?"sql":($Ad?"tar":"csv"));header("Content-Type: ".($Ja=="bz2"?"application/x-bzip":($Ja=="gz"?"application/x-gzip":($Ib=="tar"?"application/x-tar":($Ib=="sql"||$Ja!="file"?"text/plain":"text/csv")."; charset=utf-8"))));if($Ja=="bz2"){ob_start('bzcompress',1e6);}if($Ja=="gz"){ob_start('gzencode',1e6);}return$Ib;}function homepage(){echo'

'.($_GET["ns"]==""?''.lang(46)."\n":"");if(support("scheme")){echo"".($_GET["ns"]!=""?lang(47):lang(48))."\n";}return true;}function navigation($Zb){global$wc,$g,$N,$v,$ma;echo'

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

';if($Zb=="auth"){$za=true;foreach((array)$_SESSION["pwds"]as$Kb=>$rf){foreach($rf as$F=>$lf){foreach($lf as$P=>$T){if(isset($T)){if($za){echo"

\n";$za=false;}echo"($ma[$Kb]) ".h($P.($F!=""?"@$F":""))."
\n";}}}}}else{$_=get_databases();echo'

';if(DB==""||!$Zb){echo"".lang(43)."\n";if(support("dump")){echo"".lang(49)."\n";}}echo'

';hidden_fields_get();echo($_?html_select("db",array(""=>"(".lang(51).")")+$_,DB,"this.form.submit();"):''),' ';if($Zb!="db"&&DB!=""&&$g->select_db(DB)){if(support("scheme")){echo"
".html_select("ns",array(""=>"(".lang(52).")")+schemas(),$_GET["ns"],"this.form.submit();");if($_GET["ns"]!=""){set_schema($_GET["ns"]);}}if($_GET["ns"]!==""&&!$Zb){echo'

".lang(53)."\n";$D=tables_list();if(!$D){echo"

".lang(6)."\n";}else{$this->tablesPrint($D);$La=array();foreach($D as$h=>$z){$La[]=preg_quote($h,'/');}echo"\n";}}}echo(isset($_GET["sql"])?'':(isset($_GET["schema"])?'':(isset($_GET["dump"])?'':""))),"

\n";}}function tablesPrint($D){echo"

\n";foreach($D as$h=>$z){echo'".lang(54)." ",'".$this->tableName(array("Name"=>$h))."
\n";}}}$o=(function_exists('adminer_object')?adminer_object():new Adminer);if(!isset($o->operators)){$o->operators=$kc;}function page_header($De,$n="",$uc=array(),$af=""){global$va,$o,$g,$ma;header("Content-Type: text/html; charset=utf-8");$o->headers();$Xe=$De.($af!=""?": ".h($af):"");$We=$Xe.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".$o->name();if(is_ajax()){header("X-AJAX-Title: ".rawurlencode($We));}else{echo' ',$We,' ';if($o->head()&&file_exists("adminer.css")){echo' ';}echo'

';}if(isset($uc)){$w=substr(preg_replace('~(username|db|ns)=[^&]*&~','',ME),0,-1);echo'

$Xe

\n";restart_session();$Ve=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$Ue=$_SESSION["messages"][$Ve];if($Ue){echo"
".implode("
\n
",$Ue)."
\n";unset($_SESSION["messages"][$Ve]);}$_=&get_session("dbs");if(DB!=""&&$_&&!in_array(DB,$_,true)){$_=null;}if($n){echo"
$n
\n";}define("PAGE_HEADER",1);}function page_footer($Zb=""){global$o;if(!is_ajax()){echo'
';switch_lang();echo' ';}}function int32($ia){while($ia>=2147483648){$ia-=4294967296;}while($ia<=-2147483649){$ia+=4294967296;}return(int)$ia;}function long2str($y,$Hd){$na='';foreach($y as$b){$na.=pack('V',$b);}if($Hd){return substr($na,0,end($y));}return$na;}function str2long($na,$Hd){$y=array_values(unpack('V*',str_pad($na,4*ceil(strlen($na)/4),"\0")));if($Hd){$y[]=strlen($na);}return$y;}function xxtea_mx($_a,$ya,$Ea,$Na){return int32((($_a>>5&0x7FFFFFF)^$ya<<2)+(($ya>>3&0x1FFFFFFF)^$_a<<4))^int32(($Ea^$ya)+($Na^$_a));}function encrypt_string($tc,$d){if($tc==""){return"";}$d=array_values(unpack("V*",pack("H*",md5($d))));$y=str2long($tc,true);$ia=count($y)-1;$_a=$y[$ia];$ya=$y[0];$Z=floor(6+52/($ia+1));$Ea=0;while($Z-->0){$Ea=int32($Ea+0x9E3779B9);$sc=$Ea>>2&3;for($xa=0;$xa<$ia;$xa++){$ya=$y[$xa+1];$Jb=xxtea_mx($_a,$ya,$Ea,$d[$xa&3^$sc]);$_a=int32($y[$xa]+$Jb);$y[$xa]=$_a;}$ya=$y[0];$Jb=xxtea_mx($_a,$ya,$Ea,$d[$xa&3^$sc]);$_a=int32($y[$ia]+$Jb);$y[$ia]=$_a;}return long2str($y,false);}function decrypt_string($tc,$d){if($tc==""){return"";}$d=array_values(unpack("V*",pack("H*",md5($d))));$y=str2long($tc,false);$ia=count($y)-1;$_a=$y[$ia];$ya=$y[0];$Z=floor(6+52/($ia+1));$Ea=int32($Z*0x9E3779B9);while($Ea){$sc=$Ea>>2&3;for($xa=$ia;$xa>0;$xa--){$_a=$y[$xa-1];$Jb=xxtea_mx($_a,$ya,$Ea,$d[$xa&3^$sc]);$ya=int32($y[$xa]-$Jb);$y[$xa]=$ya;}$_a=$y[$ia];$Jb=xxtea_mx($_a,$ya,$Ea,$d[$xa&3^$sc]);$ya=int32($y[0]-$Jb);$y[0]=$ya;$Ea=int32($Ea-0x9E3779B9);}return long2str($y,true);}$g='';$N=$_SESSION["token"];if(!$_SESSION["token"]){$_SESSION["token"]=rand(1,1e6);}$Eb=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$b){list($d)=explode(":",$b);$Eb[$d]=$b;}}if(isset($_POST["server"])){session_regenerate_id();$_SESSION["pwds"][$_POST["driver"]][$_POST["server"]][$_POST["username"]]=$_POST["password"];if($_POST["permanent"]){$d=base64_encode($_POST["driver"])."-".base64_encode($_POST["server"])."-".base64_encode($_POST["username"]);$Hc=$o->permanentLogin();$Eb[$d]="$d:".base64_encode($Hc?encrypt_string($_POST["password"],$Hc):"");cookie("adminer_permanent",implode(" ",$Eb));}if(count($_POST)==($_POST["permanent"]?5:4)||DRIVER!=$_POST["driver"]||SERVER!=$_POST["server"]||$_GET["username"]!==$_POST["username"]){redirect(auth_url($_POST["driver"],$_POST["server"],$_POST["username"]));}}elseif($_POST["logout"]){if($N&&$_POST["token"]!=$N){page_header(lang(50),lang(57));page_footer("db");exit;}else{foreach(array("pwds","dbs","queries")as$d){set_session($d,null);}$d=base64_encode(DRIVER)."-".base64_encode(SERVER)."-".base64_encode($_GET["username"]);if($Eb[$d]){unset($Eb[$d]);cookie("adminer_permanent",implode(" ",$Eb));}redirect(substr(preg_replace('~(username|db|ns)=[^&]*&~','',ME),0,-1),lang(58));}}elseif($Eb&&!$_SESSION["pwds"]){session_regenerate_id();$Hc=$o->permanentLogin();foreach($Eb as$d=>$b){list(,$sf)=explode(":",$b);list($Kb,$F,$P)=array_map('base64_decode',explode("-",$d));$_SESSION["pwds"][$Kb][$F][$P]=decrypt_string(base64_decode($sf),$Hc);}}function auth_error($Je=null){global$g,$o,$N;$Ic=session_name();$n="";if(!$_COOKIE[$Ic]&&$_GET[$Ic]&&ini_bool("session.use_only_cookies")){$n=lang(59);}elseif(isset($_GET["username"])){if(($_COOKIE[$Ic]||$_GET[$Ic])&&!$N){$n=lang(60);}else{$T=&get_session("pwds");if(isset($T)){$n=h($Je?$Je->getMessage():(is_string($g)?$g:lang(61)));$T=null;}}}page_header(lang(23),$n,null);echo"
\n";$o->loginForm();echo"
";hidden_fields($_POST,array("driver","server","username","password","permanent"));echo"
\n","
\n";page_footer("auth");}if(isset($_GET["username"])){if(!class_exists("Min_DB")){unset($_SESSION["pwds"][DRIVER]);page_header(lang(62),lang(63,implode(", ",$mc)),false);page_footer("auth");exit;}$g=connect();}if(is_string($g)||!$o->login($_GET["username"],get_session("pwds"))){auth_error();exit;}$N=$_SESSION["token"];if(isset($_POST["server"])&&$_POST["token"]){$_POST["token"]=$N;}$n=($_POST?($_POST["token"]==$N?"":lang(57)):($_SERVER["REQUEST_METHOD"]!="POST"?"":lang(64,'"post_max_size"')));function connect_error(){global$g,$N,$n,$ma;$_=array();if(DB!=""){page_header(lang(65).": ".h(DB),lang(66),true);}else{if($_POST["db"]&&!$n){queries_redirect(substr(ME,0,-1),lang(67),drop_databases($_POST["db"]));}page_header(lang(68),$n,false);echo"

".lang(69)."\n";foreach(array('privileges'=>lang(70),'processlist'=>lang(71),'variables'=>lang(72),'status'=>lang(73),)as$d=>$b){if(support($d)){echo"$b\n";}}echo"

".lang(74,$ma[DRIVER],"$g->server_info","$g->extension")."\n","

".lang(75,"".h(logged_user())."")."\n";if($_GET["refresh"]){set_session("dbs",null);}$_=get_databases();if($_){$yd=support("scheme");$Y=collations();echo"

\n","\n","\n";foreach($_ as$t){$Jd=h(ME)."db=".urlencode($t);echo"
 ".lang(65)."".lang(76)."".lang(77)."
".checkbox("db[]",$t,in_array($t,(array)$_POST["db"])),"".h($t)."","".nbsp(db_collation($t,$Y))."","?","\n";}echo"
\n","

\n";echo"\n","".lang(79)."\n","

\n";}}page_footer("db");if($_){echo"\n";}}if(isset($_GET["status"])){$_GET["variables"]=$_GET["status"];}if(!(DB!=""?$g->select_db(DB):isset($_GET["sql"])||isset($_GET["dump"])||isset($_GET["database"])||isset($_GET["processlist"])||isset($_GET["privileges"])||isset($_GET["user"])||isset($_GET["variables"])||$_GET["script"]=="connect")){if(DB!=""){set_session("dbs",null);}connect_error();exit;}if(support("scheme")&&DB!=""&&$_GET["ns"]!==""){if(!isset($_GET["ns"])){redirect(preg_replace('~ns=[^&]*&~','',ME)."ns=".get_schema());}if(!set_schema($_GET["ns"])){page_header(lang(80).": ".h($_GET["ns"]),lang(81),true);page_footer("ns");exit;}}function select($i,$H=null,$Pe=""){$La=array();$J=array();$B=array();$Ne=array();$S=array();odd('');for($l=0;$a=$i->fetch_row();$l++){if(!$l){echo"\n","";for($ra=0;$rafetch_field();$Ha=$e->orgtable;$zc=$e->orgname;if($Ha!=""){if(!isset($J[$Ha])){$J[$Ha]=array();foreach(indexes($Ha,$H)as$x){if($x["type"]=="PRIMARY"){$J[$Ha]=array_flip($x["columns"]);break;}}$B[$Ha]=$J[$Ha];}if(isset($B[$Ha][$zc])){unset($B[$Ha][$zc]);$J[$Ha][$zc]=$ra;$La[$ra]=$Ha;}}if($e->charsetnr==63){$Ne[$ra]=true;}$S[$ra]=$e->type;$f=h($e->name);echo"name!=$zc?" title='".h(($Ha!=""?"$Ha.":"").$zc)."'":"").">".($Pe?"$f":$f);}echo"\n";}echo"";foreach($a as$d=>$b){if(!isset($b)){$b="NULL";}else{if($Ne[$d]&&!is_utf8($b)){$b="".lang(32,strlen($b))."";}elseif(!strlen($b)){$b=" ";}else{$b=h($b);if($S[$d]==254){$b="$b";}}if(isset($La[$d])&&!$B[$La[$d]]){$w="edit=".urlencode($La[$d]);foreach($J[$La[$d]]as$Pc=>$ra){$w.="&where".urlencode("[".bracket_escape($Pc)."]")."=".urlencode($a[$ra]);}$b="$b";}}echo"
$b";}}echo($l?"
":"

".lang(82))."\n";}function referencable_primary($jf){$c=array();foreach(table_status()as$Ga=>$h){if($Ga!=$jf&&fk_support($h)){foreach(fields($Ga)as$e){if($e["primary"]){if($c[$Ga]){unset($c[$Ga]);break;}$c[$Ga]=$e;}}}}return$c;}function textarea($f,$q,$G=10,$rb=80){echo"";}function format_time($qc,$lc){return" (".lang(83,max(0,$lc[0]-$qc[0]+$lc[1]-$qc[1])).")";}function edit_type($d,$e,$Y,$ea=array()){global$Ma,$S,$ib,$hb;echo' ',"',($ib?"':''),($ea?" ":" ");}function process_length($X){global$Fb;return(preg_match("~^\\s*(?:$Fb)(?:\\s*,\\s*(?:$Fb))*\\s*\$~",$X)&&preg_match_all("~$Fb~",$X,$oa)?implode(",",$oa[0]):preg_replace('~[^0-9,+-]~','',$X));}function process_type($e,$nc="COLLATE"){global$ib;return" $e[type]".($e["length"]!=""?"(".process_length($e["length"]).")":"").(ereg('int|float|double|decimal',$e["type"])&&in_array($e["unsigned"],$ib)?" $e[unsigned]":"").(ereg('char|text|enum|set',$e["type"])&&$e["collation"]?" $nc ".q($e["collation"]):"");}function process_field($e,$Rc){return array(idf_escape($e["field"]),process_type($Rc),($e["null"]?" NULL":" NOT NULL"),(isset($e["default"])?" DEFAULT ".($e["type"]=="timestamp"&&eregi("^CURRENT_TIMESTAMP$",$e["default"])?$e["default"]:q($e["default"])):""),($e["on_update"]?" ON UPDATE $e[on_update]":""),(support("comment")&&$e["comment"]!=""?" COMMENT ".q($e["comment"]):""),($e["auto_increment"]?auto_increment():null),);}function type_class($z){foreach(array('char'=>'text','date'=>'time|year','binary'=>'blob','enum'=>'set',)as$d=>$b){if(ereg("$d|$b",$z)){return" class='$d'";}}}function edit_fields($p,$Y,$z="TABLE",$gf=0,$ea=array(),$Gb=false){global$jc;foreach($p as$e){if($e["comment"]!=""){$Gb=true;break;}}echo' ';if($z=="PROCEDURE"){echo' ';}echo'',($z=="TABLE"?lang(87):lang(88)),'',lang(89),' ',lang(90),'',lang(91);if($z=="TABLE"){echo'NULL AI ',lang(93),(support("comment")?"

".lang(94).": ".h($Aa)."\n";}if($p){echo"\n","\n";foreach($p as$e){echo"
".lang(101)."".lang(89).(support("comment")?"".lang(94):"")."
".h($e["field"]),"".h($e["full_type"]).($e["null"]?" NULL":"").($e["auto_increment"]?" ".lang(92)."":""),(support("comment")?"".nbsp($e["comment"]):""),"\n";}echo"
\n";if(!is_view($E)){echo"

".lang(102)."

\n";$J=indexes($m);if($J){echo"\n";foreach($J as$f=>$x){ksort($x["columns"]);$pb=array();foreach($x["columns"]as$d=>$b){$pb[]="".h($b)."".($x["lengths"][$d]?"(".$x["lengths"][$d].")":"");}echo"
$x[type]".implode(", ",$pb)."\n";}echo"
\n";}echo'

'.lang(103)."\n";if(fk_support($E)){echo"

".lang(84)."

\n";$ea=foreign_keys($m);if($ea){echo"\n","\n";foreach($ea as$f=>$A){$w=($A["db"]!=""?"".h($A["db"]).".":"").h($A["table"]);echo"","
".lang(104)."".lang(105)."".lang(86)."".lang(106).($v!="sqlite"?" ":"")."
".implode(", ",array_map('h',$A["source"]))."","$w","(".implode(", ",array_map('h',$A["target"])).")","$A[on_delete]\n","$A[on_update]\n";if($v!="sqlite"){echo''.lang(107).'';}}echo"
\n";}if($v!="sqlite"){echo'

'.lang(108)."\n";}}if(support("trigger")){echo"

".lang(109)."

\n";$cd=triggers($m);if($cd){echo"\n";foreach($cd as$d=>$b){echo"
$b[0]$b[1]".h($d)."".lang(107)."\n";}echo"
\n";}echo'

'.lang(110)."\n";}}}}elseif(isset($_GET["schema"])){page_header(lang(111),"",array(),DB);$sb=array();$Ce=array();$f="adminer_schema";preg_match_all('~([^:]+):([-0-9.]+)x([-0-9.]+)(_|$)~',($_GET["schema"]?$_GET["schema"]:$_COOKIE[($_COOKIE["$f-".DB]?"$f-".DB:$f)]),$oa,PREG_SET_ORDER);foreach($oa as$l=>$k){$sb[$k[1]]=array($k[2],$k[3]);$Ce[]="\n\t'".js_ad_escape($k[1])."': [ $k[2], $k[3] ]";}$Yb=0;$Fe=-1;$Oa=array();$Ee=array();$Qe=array();foreach(table_status()as$a){if(!isset($a["Engine"])){continue;}$rc=0;$Oa[$a["Name"]]["fields"]=array();foreach(fields($a["Name"])as$f=>$e){$rc+=1.25;$e["pos"]=$rc;$Oa[$a["Name"]]["fields"][$f]=$e;}$Oa[$a["Name"]]["pos"]=($sb[$a["Name"]]?$sb[$a["Name"]]:array($Yb,0));foreach($o->foreignKeys($a["Name"])as$b){if(!$b["db"]){$wa=$Fe;if($sb[$a["Name"]][1]||$sb[$b["table"]][1]){$wa=min(floatval($sb[$a["Name"]][1]),floatval($sb[$b["table"]][1]))-1;}else{$Fe-=.1;}while($Qe[(string)$wa]){$wa-=.0001;}$Oa[$a["Name"]]["references"][$b["table"]][(string)$wa]=array($b["source"],$b["target"]);$Ee[$b["table"]][$a["Name"]][(string)$wa]=$b["target"];$Qe[(string)$wa]=true;}}$Yb=max($Yb,$Oa[$a["Name"]]["pos"][0]+2.5+$rc);}echo'

';foreach($Oa as$f=>$h){echo"
",''.h($f)."
\n";foreach($h["fields"]as$e){$b=''.h($e["field"]).'';echo($e["primary"]?"$b":$b)."
\n";}foreach((array)$h["references"]as$cc=>$pc){foreach($pc as$wa=>$Sc){$_c=$wa-$sb[$f][1];$l=0;foreach($Sc[0]as$Da){echo"
\n";}}}foreach((array)$Ee[$f]as$cc=>$pc){foreach($pc as$wa=>$B){$_c=$wa-$sb[$f][1];$l=0;foreach($B as$ha){echo"
\n";}}}echo"
\n";}foreach($Oa as$f=>$h){foreach((array)$h["references"]as$cc=>$pc){foreach($pc as$wa=>$Sc){$Uc=$Yb;$nd=-10;foreach($Sc[0]as$d=>$Da){$cf=$h["pos"][0]+$h["fields"][$Da]["pos"];$bf=$Oa[$cc]["pos"][0]+$Oa[$cc]["fields"][$Sc[1][$d]]["pos"];$Uc=min($Uc,$cf,$bf);$nd=max($nd,$cf,$bf);}echo"
\n";}}}echo'

',lang(112),' ';}elseif(isset($_GET["dump"])){$m=$_GET["dump"];if($_POST){$ff="";foreach(array("output","format","db_style","routines","events","table_style","auto_increment","triggers","data_style")as$d){$ff.="&$d=".urlencode($_POST[$d]);}cookie("adminer_export",substr($ff,1));$Ib=dump_headers(($m!=""?$m:DB),(DB==""||count((array)$_POST["tables"]+(array)$_POST["data"])>1));$ub=($_POST["format"]=="sql");if($ub){echo"-- Adminer $wc ".$ma[DRIVER]." dump ".($v!="sql"?"":"SET NAMES utf8; SET foreign_key_checks = 0; SET time_zone = ".q($g->result("SELECT @@time_zone"))."; SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; ");}$V=$_POST["db_style"];$_=array(DB);if(DB==""){$_=$_POST["databases"];if(is_string($_)){$_=explode("\n",rtrim(str_replace("\r","",$_),"\n"));}}foreach((array)$_ as$t){if($g->select_db($t)){if($ub&&ereg('CREATE',$V)&&($la=$g->result("SHOW CREATE DATABASE ".idf_escape($t),1))){if($V=="DROP+CREATE"){echo"DROP DATABASE IF EXISTS ".idf_escape($t).";\n";}echo($V=="CREATE+ALTER"?preg_replace('~^CREATE DATABASE ~','\\0IF NOT EXISTS ',$la):$la).";\n";}if($ub){if($V){echo use_sql($t).";\n\n";}if(in_array("CREATE+ALTER",array($V,$_POST["table_style"]))){echo"SET @adminer_alter = '';\n\n";}$nb="";if($_POST["routines"]){foreach(array("FUNCTION","PROCEDURE")as$Wa){foreach(get_rows("SHOW $Wa STATUS WHERE Db = ".q($t),null,"-- ")as$a){$nb.=($V!='DROP+CREATE'?"DROP $Wa IF EXISTS ".idf_escape($a["Name"]).";;\n":"").$g->result("SHOW CREATE $Wa ".idf_escape($a["Name"]),2).";;\n\n";}}}if($_POST["events"]){foreach(get_rows("SHOW EVENTS",null,"-- ")as$a){$nb.=($V!='DROP+CREATE'?"DROP EVENT IF EXISTS ".idf_escape($a["Name"]).";;\n":"").$g->result("SHOW CREATE EVENT ".idf_escape($a["Name"]),3).";;\n\n";}}if($nb){echo"DELIMITER ;;\n\n$nb"."DELIMITER ;\n\n";}}if($_POST["table_style"]||$_POST["data_style"]){$W=array();foreach(table_status()as$a){$h=(DB==""||in_array($a["Name"],(array)$_POST["tables"]));$Te=(DB==""||in_array($a["Name"],(array)$_POST["data"]));if($h||$Te){if(!is_view($a)){if($Ib=="tar"){ob_start();}$o->dumpTable($a["Name"],($h?$_POST["table_style"]:""));if($Te){$o->dumpData($a["Name"],$_POST["data_style"],"SELECT * FROM ".table($a["Name"]));}if($ub&&$_POST["triggers"]&&$h&&($cd=trigger_sql($a["Name"],$_POST["table_style"]))){echo"\nDELIMITER ;;\n$cd\nDELIMITER ;\n";}if($Ib=="tar"){echo tar_file((DB!=""?"":"$t/")."$a[Name].csv",ob_get_clean());}elseif($ub){echo"\n";}}elseif($ub){$W[]=$a["Name"];}}}foreach($W as$ec){$o->dumpTable($ec,$_POST["table_style"],true);}if($Ib=="tar"){echo pack("x512");}}if($V=="CREATE+ALTER"&&$ub){$j="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 $j; 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";foreach(get_rows($j)as$a){$Aa=q($a["ENGINE"]=="InnoDB"?preg_replace('~(?:(.+); )?InnoDB free: .*~','\\1',$a["TABLE_COMMENT"]):$a["TABLE_COMMENT"]);echo" WHEN ".q($a["TABLE_NAME"])." THEN ".(isset($a["ENGINE"])?"IF _engine != '$a[ENGINE]' OR _table_collation != '$a[TABLE_COLLATION]' OR _table_comment != $Aa THEN ALTER TABLE ".idf_escape($a["TABLE_NAME"])." ENGINE=$a[ENGINE] COLLATE=$a[TABLE_COLLATION] COMMENT=$Aa; 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($V,$_POST["table_style"]))&&$ub){echo"SELECT @adminer_alter;\n";}}}if($ub){echo"-- ".$g->result("SELECT NOW()")."\n";}exit;}page_header(lang(113),"",($_GET["export"]!=""?array("table"=>$_GET["export"]):array()),DB);echo'

';$Se=array('','USE','DROP+CREATE','CREATE');$Re=array('','DROP+CREATE','CREATE');$Ye=array('','TRUNCATE+INSERT','INSERT');if($v=="sql"){$Se[]='CREATE+ALTER';$Re[]='CREATE+ALTER';$Ye[]='INSERT+UPDATE';}parse_str($_COOKIE["adminer_export"],$a);if(!$a){$a=array("output"=>"text","format"=>"sql","db_style"=>(DB!=""?"":"CREATE"),"table_style"=>"DROP+CREATE","data_style"=>"INSERT");}if(!isset($a["events"])){$a["routines"]=$a["events"]=($_GET["dump"]=="");$a["auto_increment"]=$a["triggers"]=$a["table_style"];}echo"
".lang(114)."".html_select("output",$o->dumpOutput(),$a["output"],0)."\n";echo"
".lang(115)."".html_select("format",$o->dumpFormat(),$a["format"],0)."\n";echo($v=="sqlite"?"":"
".lang(65)."".html_select('db_style',$Se,$a["db_style"]).(support("routine")?checkbox("routines",1,$a["routines"],lang(116)):"").(support("event")?checkbox("events",1,$a["events"],lang(117)):"")),"
".lang(77)."".html_select('table_style',$Re,$a["table_style"]).checkbox("auto_increment",1,$a["auto_increment"],lang(92)).(support("trigger")?checkbox("triggers",1,$a["triggers"],lang(109)):""),"
".lang(118)."".html_select('data_style',$Ye,$a["data_style"]),'

';$qd=array();if(DB!=""){$eb=($m!=""?"":" checked");echo"","\n";$W="";foreach(table_status()as$a){$f=$a["Name"];$yc=ereg_replace("_.*","",$f);$eb=($m==""||$m==(substr($m,-1)=="%"?"$yc%":$f));$pb="\n";$_=get_databases();if($_){foreach($_ as$t){if(!information_schema($t)){$yc=ereg_replace("_.*","",$t);echo"
","","
".checkbox("tables[]",$f,$eb,$f,"formUncheck('check-tables');");if(is_view($a)){$W.="$pb\n";}else{echo"$pb\n";}$qd[$yc]++;}echo$W;}else{echo"
".checkbox("databases[]",$t,$m==""||$m=="$yc%",$t,"formUncheck('check-databases');")."\n";$qd[$yc]++;}}}else{echo"
";}}echo'

';$za=true;foreach($qd as$d=>$b){if($d!=""&&$b>1){echo($za?"

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

';hidden_fields_get();echo lang(21),': ',lang(20),':

';$i=$g->query("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1) AS User, SUBSTRING_INDEX(CURRENT_USER, '@', -1) AS Host");}echo"\n","\n";while($a=$i->fetch_assoc()){echo'
 ".lang(21)."".lang(20)."
'.lang(119).''.h($a["User"])."".h($a["Host"])."\n";}echo"
\n",'

'.lang(120)."";}elseif(isset($_GET["sql"])){if(!$n&&$_POST["export"]){dump_headers("sql");$o->dumpTable("","");$o->dumpData("","table",$_POST["query"]);exit;}restart_session();$Of=&get_session("queries");$Ya=&$Of[DB];if(!$n&&$_POST["clear"]){$Ya=array();redirect(remove_from_uri("history"));}page_header(lang(43),$n);if(!$n&&$_POST){$Pa=false;$j=$_POST["query"];if($_POST["webfile"]){$Pa=@fopen((file_exists("adminer.sql")?"adminer.sql":(file_exists("adminer.sql.gz")?"compress.zlib://adminer.sql.gz":"compress.bzip2://adminer.sql.bz2")),"rb");$j=($Pa?fread($Pa,1e6):false);}elseif($_FILES&&$_FILES["sql_file"]["error"]!=4){$j=get_file("sql_file",true);}if(is_string($j)){if(function_exists('memory_get_usage')){@ini_set("memory_limit",2*strlen($j)+memory_get_usage()+8e6);}if($j!=""&&strlen($j)<1e6){$Z=$j.(ereg(';$',$j)?"":";");if(!$Ya||end($Ya)!=$Z){$Ya[]=$Z;}}$Tc="(\\s|/\\*.*\\*/|(#|-- )[^\n]*\n|--\n)";if(!ini_bool("session.use_cookies")){session_write_close();}$kd=";";$O=0;$fc=true;$H=connect();if(is_object($H)&&DB!=""){$H->select_db(DB);}$Bb=0;$Qc=array();$Ef='[\'`"]'.($v=="pgsql"?'|\\$[^$]*\\$':($v=="mssql"||$v=="sqlite"?'|\\[':'')).'|/\\*|-- |#';$Ff=explode(" ",microtime());parse_str($_COOKIE["adminer_export"],$dc);$Sd=$o->dumpFormat();unset($Sd["sql"]);while($j!=""){if(!$O&&$v=="sql"&&preg_match('~^\\s*DELIMITER\\s+(.+)~i',$j,$k)){$kd=$k[1];$j=substr($j,strlen($k[0]));}else{preg_match('('.preg_quote($kd)."|$Ef|\$)",$j,$k,PREG_OFFSET_CAPTURE,$O);$pa=$k[0][0];$O=$k[0][1]+strlen($pa);if(!$pa&&$Pa&&!feof($Pa)){$j.=fread($Pa,1e5);}else{if(!$pa&&rtrim($j)==""){break;}if($pa&&$pa!=$kd){while(preg_match('('.($pa=='/*'?'\\*/':($pa=='['?']':(ereg('^-- |^#',$pa)?"\n":preg_quote($pa)."|\\\\."))).'|$)s',$j,$k,PREG_OFFSET_CAPTURE,$O)){$na=$k[0][0];$O=$k[0][1]+strlen($na);if(!$na&&$Pa&&!feof($Pa)){$j.=fread($Pa,1e6);}elseif($na[0]!="\\"){break;}}}else{$fc=false;$Z=substr($j,0,$k[0][1]);$Bb++;$pb="

".shorten_utf8(trim($Z),1000)."
\n";if(!$_POST["only_errors"]){echo$pb;ob_flush();flush();}$qc=explode(" ",microtime());if($g->multi_query($Z)){if(is_object($H)&&preg_match("~^$Tc*(USE)\\b~isU",$Z)){$H->query($Z);}do{$i=$g->store_result();$lc=explode(" ",microtime());$Ud=format_time($qc,$lc).(strlen($Z)<1000?" ".lang(31)."":"");if(!is_object($i)){if(preg_match("~^$Tc*(CREATE|DROP|ALTER)$Tc+(DATABASE|SCHEMA)\\b~isU",$Z)){restart_session();set_session("dbs",null);session_write_close();}if(!$_POST["only_errors"]){echo"

".lang(121,$g->affected_rows)."$Ud\n";}}else{if($_POST["only_errors"]){echo$pb;$pb="";}select($i,$H);echo"

\n","

".($i->num_rows?lang(122,$i->num_rows):"").$Ud;$R="export-$Bb";$Vd=", ".lang(113)."";if($H&&preg_match("~^($Tc|\\()*SELECT\\b~isU",$Z)&&($Cf=explain($H,$Z))){$R="explain-$Bb";echo", EXPLAIN$Vd\n","

\n";}else{echo"$Vd\n";}echo"
\n";}$qc=$lc;}while($g->next_result());}elseif($g->error){echo($_POST["only_errors"]?$pb:""),"

".lang(123).": ".error()."\n";$Qc[]=" $Bb";if($_POST["error_stops"]){break;}}$j=substr($j,$O);$O=0;}}}}if($fc){echo"

".lang(124)."\n";}elseif($_POST["only_errors"]){echo"

".lang(125,$Bb-count($Qc)).format_time($Ff,explode(" ",microtime()))."\n";}elseif($Qc&&$Bb>1){echo"

".lang(123).": ".implode("",$Qc)."\n";}}else{echo"

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

';$Z=$_GET["sql"];if($_POST){$Z=$_POST["query"];}elseif($_GET["history"]=="all"){$Z=$Ya;}elseif($_GET["history"]!=""){$Z=$Ya[$_GET["history"]];}textarea("query",$Z,20);echo($_POST?"":"\n"),"

".(ini_bool("file_uploads")?lang(126).': (< '.ini_get("upload_max_filesize").'B)':lang(127));echo'

',checkbox("error_stops",1,$_POST["error_stops"],lang(129))."\n",checkbox("only_errors",1,$_POST["only_errors"],lang(130))."\n";print_fieldset("webfile",lang(131),$_POST["webfile"]);$Nd=array();foreach(array("gz"=>"zlib","bz2"=>"bz2")as$d=>$b){if(extension_loaded($b)){$Nd[]=".$d";}}echo lang(132,"adminer.sql".($Nd?"[".implode("|",$Nd)."]":"").""),' ',"\n";if($Ya){print_fieldset("history",lang(134),$_GET["history"]!="");foreach($Ya as$d=>$b){echo''.lang(31)." ".shorten_utf8(ltrim(str_replace("\n"," ",str_replace("\r","",preg_replace('~^(#|-- ).*~m','',$b)))),80,"")."
\n";}echo"\n","".lang(136)."\n","\n";}echo'

';}elseif(isset($_GET["edit"])){$m=$_GET["edit"];$s=(isset($_GET["select"])?(count($_POST["check"])==1?where_check($_POST["check"][0]):""):where($_GET));$qa=(isset($_GET["select"])?$_POST["edit"]:$s);$p=fields($m);foreach($p as$f=>$e){if(!isset($e["privileges"][$qa?"update":"insert"])||$o->fieldName($e)==""){unset($p[$f]);}}if($_POST&&!$n&&!isset($_GET["select"])){$fa=$_POST["referer"];if($_POST["insert"]){$fa=($qa?null:$_SERVER["REQUEST_URI"]);}elseif(!ereg('^.+&select=.+$',$fa)){$fa=ME."select=".urlencode($m);}if(isset($_POST["delete"])){query_redirect("DELETE".limit1("FROM ".table($m)," WHERE $s"),$fa,lang(137));}else{$r=array();foreach($p as$f=>$e){$b=process_input($e);if($b!==false&&$b!==null){$r[idf_escape($f)]=($qa?"\n".idf_escape($f)." = $b":$b);}}if($qa){if(!$r){redirect($fa);}query_redirect("UPDATE".limit1(table($m)." SET".implode(",",$r),"\nWHERE $s"),$fa,lang(138));}else{$i=insert_into($m,$r);$Xd=($i?last_id():0);queries_redirect($fa,lang(139,($Xd?" $Xd":"")),$i);}}}$Ga=$o->tableName(table_status($m));page_header(($qa?lang(31):lang(140)),$n,array("select"=>array($m,$Ga)),$Ga);$a=null;if($_POST["save"]){$a=(array)$_POST["fields"];}elseif($s){$Q=array();foreach($p as$f=>$e){if(isset($e["privileges"]["select"])){$Q[]=($_POST["clone"]&&$e["auto_increment"]?"'' AS ":(ereg("enum|set",$e["type"])?"1*".idf_escape($f)." AS ":"")).idf_escape($f);}}$a=array();if($Q){$G=get_rows("SELECT".limit(implode(", ",$Q)." FROM ".table($m)," WHERE $s",(isset($_GET["select"])?2:1)));$a=(isset($_GET["select"])&&count($G)!=1?null:reset($G));}}echo'
';if($p){echo"\n";foreach($p as$f=>$e){echo"
".$o->fieldName($e);$Ba=$_GET["set"][bracket_escape($f)];$q=(isset($a)?($a[$f]!=""&&ereg("enum|set",$e["type"])?+$a[$f]:$a[$f]):(!$qa&&$e["auto_increment"]?"":(isset($_GET["select"])?false:(isset($Ba)?$Ba:$e["default"]))));if(!$_POST["save"]&&is_string($q)){$q=$o->editVal($q,$e);}$K=($_POST["save"]?(string)$_POST["function"][$f]:($s&&$e["on_update"]=="CURRENT_TIMESTAMP"?"now":($q===false?null:(isset($q)?'':'NULL'))));if($e["type"]=="timestamp"&&$q=="CURRENT_TIMESTAMP"){$q="";$K="now";}input($e,$q,$K);echo"\n";}echo"
\n";}echo'

';if($p){echo"\n";if(!isset($_GET["select"])){echo'\n";}}echo($qa?"\n":($_POST||!$p?"":"\n"));if(isset($_GET["select"])){hidden_fields(array("check"=>(array)$_POST["check"],"clone"=>$_POST["clone"],"all"=>$_POST["all"]));}echo'

';}elseif(isset($_GET["create"])){$m=$_GET["create"];$Wd=array('HASH','LINEAR HASH','KEY','LINEAR KEY','RANGE','LIST');$Rd=referencable_primary($m);$ea=array();foreach($Rd as$Ga=>$e){$ea[str_replace("`","``",$Ga)."`".str_replace("`","``",$e["field"])]=$Ga;}$Vc=array();$Wc=array();if($m!=""){$Vc=fields($m);$Wc=table_status($m);}if($_POST&&!$_POST["fields"]){$_POST["fields"]=array();}if($_POST&&!$n&&!$_POST["add"]&&!$_POST["drop_col"]&&!$_POST["up"]&&!$_POST["down"]){if($_POST["drop"]){query_redirect("DROP TABLE ".table($m),substr(ME,0,-1),lang(145));}else{$p=array();$Qa=array();ksort($_POST["fields"]);$vd=reset($Vc);$Mb="FIRST";foreach($_POST["fields"]as$d=>$e){$A=$ea[$e["type"]];$Rc=(isset($A)?$Rd[$A]:$e);if($e["field"]!=""){if(!$e["has_default"]){$e["default"]=null;}$Ba=eregi_replace(" *on update CURRENT_TIMESTAMP","",$e["default"]);if($Ba!=$e["default"]){$e["on_update"]="CURRENT_TIMESTAMP";$e["default"]=$Ba;}if($d==$_POST["auto_increment_col"]){$e["auto_increment"]=true;}$Qd=process_field($e,$Rc);if($Qd!=process_field($vd,$vd)){$p[]=array($e["orig"],$Qd,$Mb);}if(isset($A)){$Qa[idf_escape($e["field"])]=($m!=""?"ADD":" ")." FOREIGN KEY (".idf_escape($e["field"]).") REFERENCES ".table($ea[$e["type"]])." (".idf_escape($Rc["field"]).")".(in_array($e["on_delete"],$hb)?" ON DELETE $e[on_delete]":"");}$Mb="AFTER ".idf_escape($e["field"]);}elseif($e["orig"]!=""){$p[]=array($e["orig"]);}if($e["orig"]!=""){$vd=next($Vc);}}$xb="";if(in_array($_POST["partition_by"],$Wd)){$Od=array();if($_POST["partition_by"]=='RANGE'||$_POST["partition_by"]=='LIST'){foreach(array_filter($_POST["partition_names"])as$d=>$b){$q=$_POST["partition_values"][$d];$Od[]="\nPARTITION ".idf_escape($b)." VALUES ".($_POST["partition_by"]=='RANGE'?"LESS THAN":"IN").($q!=""?" ($q)":" MAXVALUE");}}$xb.="\nPARTITION BY $_POST[partition_by]($_POST[partition])".($Od?" (".implode(",",$Od)."\n)":($_POST["partitions"]?" PARTITIONS ".(+$_POST["partitions"]):""));}elseif($m!=""&&support("partitioning")){$xb.="\nREMOVE PARTITIONING";}$ua=lang(146);if($m==""){cookie("adminer_engine",$_POST["Engine"]);$ua=lang(147);}queries_redirect(ME."table=".urlencode($_POST["name"]),$ua,alter_table($m,$_POST["name"],$p,$Qa,$_POST["Comment"],($_POST["Engine"]&&$_POST["Engine"]!=$Wc["Engine"]?$_POST["Engine"]:""),($_POST["Collation"]&&$_POST["Collation"]!=$Wc["Collation"]?$_POST["Collation"]:""),($_POST["Auto_increment"]!=""?+$_POST["Auto_increment"]:""),$xb));}}page_header(($m!=""?lang(28):lang(148)),$n,array("table"=>$m),$m);$a=array("Engine"=>$_COOKIE["adminer_engine"],"fields"=>array(array("field"=>"","type"=>(isset($S["int"])?"int":(isset($S["integer"])?"integer":"")))),"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($m!=""){$a=$Wc;$a["name"]=$m;$a["fields"]=array();if(!$_GET["auto_increment"]){$a["Auto_increment"]="";}foreach($Vc as$e){$e["has_default"]=isset($e["default"]);if($e["on_update"]){$e["default"].=" ON UPDATE $e[on_update]";}$a["fields"][]=$e;}if(support("partitioning")){$Xb="FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = ".q(DB)." AND TABLE_NAME = ".q($m);$i=$g->query("SELECT PARTITION_METHOD, PARTITION_ORDINAL_POSITION, PARTITION_EXPRESSION $Xb ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");list($a["partition_by"],$a["partitions"],$a["partition"])=$i->fetch_row();$a["partition_names"]=array();$a["partition_values"]=array();foreach(get_rows("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $Xb AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION")as$fd){$a["partition_names"][]=$fd["PARTITION_NAME"];$a["partition_values"][]=$fd["PARTITION_DESCRIPTION"];}$a["partition_names"][]="";}}$Y=collations();$Md=floor(extension_loaded("suhosin")?(min(ini_get("suhosin.request.max_vars"),ini_get("suhosin.post.max_vars"))-13)/10:0);if($Md&&count($a["fields"])>$Md){echo"

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

',lang(150),': ';if($m==""&&!$_POST){?>"(".lang(151).")")+$Cd,$a["Engine"]):""),' ',($Y&&!ereg("sqlite|mssql",$v)?html_select("Collation",array(""=>"(".lang(85).")")+$Y,$a["Collation"]):""),' ';$Gb=edit_fields($a["fields"],$Y,"TABLE",$Md,$ea,$a["Comment"]!="");echo'

',lang(92),': ',(support("comment")?checkbox("","",$Gb,lang(94),"columnShow(this.checked, 6); toggle('Comment'); if (this.checked) this.form['Comment'].focus();").' ':''),'

';if(strlen($_GET["create"])){echo'';}echo' ';if(support("partitioning")){$Pd=ereg('RANGE|LIST',$a["partition_by"]);print_fieldset("partition",lang(152),$a["partition_by"]);echo'

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

';}elseif(isset($_GET["indexes"])){$m=$_GET["indexes"];$ad=array("PRIMARY","UNIQUE","INDEX");$E=table_status($m);if(eregi("MyISAM|M?aria",$E["Engine"])){$ad[]="FULLTEXT";}$J=indexes($m);if($v=="sqlite"){unset($ad[0]);unset($J[""]);}if($_POST&&!$n&&!$_POST["add"]){$u=array();foreach($_POST["indexes"]as$x){if(in_array($x["type"],$ad)){$B=array();$Ub=array();$r=array();ksort($x["columns"]);foreach($x["columns"]as$d=>$C){if($C!=""){$X=$x["lengths"][$d];$r[]=idf_escape($C).($X?"(".(+$X).")":"");$B[]=$C;$Ub[]=($X?$X:null);}}if($B){foreach($J as$f=>$Ab){ksort($Ab["columns"]);ksort($Ab["lengths"]);if($x["type"]==$Ab["type"]&&array_values($Ab["columns"])===$B&&(!$Ab["lengths"]||array_values($Ab["lengths"])===$Ub)){unset($J[$f]);continue 2;}}$u[]=array($x["type"],"(".implode(", ",$r).")");}}}foreach($J as$f=>$Ab){$u[]=array($Ab["type"],idf_escape($f),"DROP");}if(!$u){redirect(ME."table=".urlencode($m));}queries_redirect(ME."table=".urlencode($m),lang(156),alter_indexes($m,$u));}page_header(lang(102),$n,array("table"=>$m),$m);$p=array_keys(fields($m));$a=array("indexes"=>$J);if($_POST){$a=$_POST;if($_POST["add"]){foreach($a["indexes"]as$d=>$x){if($x["columns"][count($x["columns"])]!=""){$a["indexes"][$d]["columns"][]="";}}$x=end($a["indexes"]);if($x["type"]||array_filter($x["columns"],'strlen')||array_filter($x["lengths"],'strlen')){$a["indexes"][]=array("columns"=>array(1=>""));}}}else{foreach($a["indexes"]as$d=>$x){$a["indexes"][$d]["columns"][]="";}$a["indexes"][]=array("columns"=>array(1=>""));}echo'
';$ra=1;foreach($a["indexes"]as$x){echo"
',lang(157),'',lang(158),'
".html_select("indexes[$ra][type]",array(-1=>"")+$ad,$x["type"],($ra==count($a["indexes"])?"indexesAddRow(this);":1))."";ksort($x["columns"]);$l=1;foreach($x["columns"]as$d=>$C){echo"".html_select("indexes[$ra][columns][$l]",array(-1=>"")+$p,$C,($l==count($x["columns"])?"indexesAddColumn(this);":1))," ";$l++;}$ra++;}echo'

';}elseif(isset($_GET["database"])){if($_POST&&!$n&&!isset($_POST["add_x"])){restart_session();if($_POST["drop"]){$_GET["db"]="";queries_redirect(remove_from_uri("db|database"),lang(159),drop_databases(array(DB)));}elseif(DB!==$_POST["name"]){if(DB!=""){$_GET["db"]=$_POST["name"];queries_redirect(preg_replace('~db=[^&]*&~','',ME)."db=".urlencode($_POST["name"]),lang(160),rename_database($_POST["name"],$_POST["collation"]));}else{$_=explode("\n",str_replace("\r","",$_POST["name"]));$ye=true;$yb="";foreach($_ as$t){if(count($_)==1||$t!=""){if(!create_database($t,$_POST["collation"])){$ye=false;}$yb=$t;}}queries_redirect(ME."db=".urlencode($yb),lang(161),$ye);}}else{if(!$_POST["collation"]){redirect(substr(ME,0,-1));}query_redirect("ALTER DATABASE ".idf_escape($_POST["name"]).(eregi('^[a-z0-9_]+$',$_POST["collation"])?" COLLATE $_POST[collation]":""),substr(ME,0,-1),lang(162));}}page_header(DB!=""?lang(46):lang(163),$n,array(),DB);$Y=collations();$f=DB;$nc=null;if($_POST){$f=$_POST["name"];$nc=$_POST["collation"];}elseif(DB!=""){$nc=db_collation(DB,$Y);}elseif($v=="sql"){foreach(get_vals("SHOW GRANTS")as$ja){if(preg_match('~ ON (`(([^\\\\`]|``|\\\\.)*)%`\\.\\*)?~',$ja,$k)&&$k[1]){$f=stripcslashes(idf_unescape("`$k[2]`"));break;}}}echo'

',($_POST["add_x"]||strpos($f,"\n")?'
':'')."\n".($Y?html_select("collation",array(""=>"(".lang(85).")")+$Y,$nc):"");?> ';if(DB!=""){echo"\n";}elseif(!$_POST["add_x"]&&$_GET["db"]==""){echo"\n";}echo'

';}elseif(isset($_GET["scheme"])){if($_POST&&!$n){$w=preg_replace('~ns=[^&]*&~','',ME)."ns=";if($_POST["drop"]){query_redirect("DROP SCHEMA ".idf_escape($_GET["ns"]),$w,lang(164));}else{$w.=urlencode($_POST["name"]);if($_GET["ns"]==""){query_redirect("CREATE SCHEMA ".idf_escape($_POST["name"]),$w,lang(165));}elseif($_GET["ns"]!=$_POST["name"]){query_redirect("ALTER SCHEMA ".idf_escape($_GET["ns"])." RENAME TO ".idf_escape($_POST["name"]),$w,lang(166));}else{redirect($w);}}}page_header($_GET["ns"]!=""?lang(47):lang(48),$n);$a=array("name"=>$_GET["ns"]);if($_POST){$a=$_POST;}echo'

';if($_GET["ns"]!=""){echo"\n";}echo'

';}elseif(isset($_GET["call"])){$Ra=$_GET["call"];page_header(lang(167).": ".h($Ra),$n);$Wa=routine($Ra,(isset($_GET["callf"])?"FUNCTION":"PROCEDURE"));$Rb=array();$nb=array();foreach($Wa["fields"]as$l=>$e){if(substr($e["inout"],-3)=="OUT"){$nb[$l]="@".idf_escape($e["field"])." AS ".idf_escape($e["field"]);}if(!$e["inout"]||substr($e["inout"],0,2)=="IN"){$Rb[]=$l;}}if(!$n&&$_POST){$re=array();foreach($Wa["fields"]as$d=>$e){if(in_array($d,$Rb)){$b=process_input($e);if($b===false){$b="''";}if(isset($nb[$d])){$g->query("SET @".idf_escape($e["field"])." = $b");}}$re[]=(isset($nb[$d])?"@".idf_escape($e["field"]):$b);}$j=(isset($_GET["callf"])?"SELECT":"CALL")." ".idf_escape($Ra)."(".implode(", ",$re).")";echo"

".h($j)." ".lang(31)."\n";if(!$g->multi_query($j)){echo"

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

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

';if($Rb){echo"\n";foreach($Rb as$d){$e=$Wa["fields"][$d];$f=$e["field"];echo"
".$o->fieldName($e);$q=$_POST["fields"][$f];if($q!=""){if($e["type"]=="enum"){$q=+$q;}if($e["type"]=="set"){$q=array_sum($q);}}input($e,$q,(string)$_POST["function"][$f]);echo"\n";}echo"
\n";}echo'

';}elseif(isset($_GET["foreign"])){$m=$_GET["foreign"];if($_POST&&!$n&&!$_POST["add"]&&!$_POST["change"]&&!$_POST["change-js"]){if($_POST["drop"]){query_redirect("ALTER TABLE ".table($m)."\nDROP ".($v=="sql"?"FOREIGN KEY ":"CONSTRAINT ").idf_escape($_GET["name"]),ME."table=".urlencode($m),lang(169));}else{$Da=array_filter($_POST["source"],'strlen');ksort($Da);$ha=array();foreach($Da as$d=>$b){$ha[$d]=$_POST["target"][$d];}query_redirect("ALTER TABLE ".table($m).($_GET["name"]!=""?"\nDROP FOREIGN KEY ".idf_escape($_GET["name"]).",":"")."\nADD FOREIGN KEY (".implode(", ",array_map('idf_escape',$Da)).") REFERENCES ".table($_POST["table"])." (".implode(", ",array_map('idf_escape',$ha)).")".(in_array($_POST["on_delete"],$hb)?" ON DELETE $_POST[on_delete]":"").(in_array($_POST["on_update"],$hb)?" ON UPDATE $_POST[on_update]":""),ME."table=".urlencode($m),($_GET["name"]!=""?lang(170):lang(171)));$n=lang(172)."
$n";}}page_header(lang(173),$n,array("table"=>$m),$m);$a=array("table"=>$m,"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"]!=""){$ea=foreign_keys($m);$a=$ea[$_GET["name"]];$a["source"][]="";}$Da=array_keys(fields($m));$ha=($m===$a["table"]?$Da:array_keys(fields($a["table"])));$qe=array();foreach(table_status()as$f=>$E){if(fk_support($E)){$qe[]=$f;}}echo'

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

';$ra=0;foreach($a["source"]as$d=>$b){echo"","
',lang(104),'',lang(105),'
".html_select("source[".(+$d)."]",array(-1=>"")+$Da,$b,($ra==count($a["source"])-1?"foreignAddRow(this);":1)),"".html_select("target[".(+$d)."]",$ha,$a["target"][$d]);$ra++;}echo'

',lang(86),': ',html_select("on_delete",array(-1=>"")+$hb,$a["on_delete"]),' ',lang(106),': ',html_select("on_update",array(-1=>"")+$hb,$a["on_update"]),'

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

';}elseif(isset($_GET["view"])){$m=$_GET["view"];$bb=false;if($_POST&&!$n){$bb=drop_create("DROP VIEW ".table($m),"CREATE VIEW ".table($_POST["name"])." AS\n$_POST[select]",($_POST["drop"]?substr(ME,0,-1):ME."table=".urlencode($_POST["name"])),lang(177),lang(178),lang(179),$m);}page_header(($m!=""?lang(27):lang(180)),$n,array("table"=>$m),$m);$a=array();if($_POST){$a=$_POST;}elseif($m!=""){$a=view($m);$a["name"]=$m;}echo'

',lang(181),':

';textarea("select",$a["select"]);echo'

';if($bb){echo'';}echo'

';}elseif(isset($_GET["event"])){$mb=$_GET["event"];$ne=array("YEAR","QUARTER","MONTH","DAY","HOUR","MINUTE","WEEK","SECOND","YEAR_MONTH","DAY_HOUR","DAY_MINUTE","DAY_SECOND","HOUR_MINUTE","HOUR_SECOND","MINUTE_SECOND");$_d=array("ENABLED"=>"ENABLE","DISABLED"=>"DISABLE","SLAVESIDE_DISABLED"=>"DISABLE ON SLAVE");if($_POST&&!$n){if($_POST["drop"]){query_redirect("DROP EVENT ".idf_escape($mb),substr(ME,0,-1),lang(182));}elseif(in_array($_POST["INTERVAL_FIELD"],$ne)&&isset($_d[$_POST["STATUS"]])){$oe="\nON SCHEDULE ".($_POST["INTERVAL_VALUE"]?"EVERY ".q($_POST["INTERVAL_VALUE"])." $_POST[INTERVAL_FIELD]".($_POST["STARTS"]?" STARTS ".q($_POST["STARTS"]):"").($_POST["ENDS"]?" ENDS ".q($_POST["ENDS"]):""):"AT ".q($_POST["STARTS"]))." ON COMPLETION".($_POST["ON_COMPLETION"]?"":" NOT")." PRESERVE";queries_redirect(substr(ME,0,-1),($mb!=""?lang(183):lang(184)),queries(($mb!=""?"ALTER EVENT ".idf_escape($mb).$oe.($mb!=$_POST["EVENT_NAME"]?"\nRENAME TO ".idf_escape($_POST["EVENT_NAME"]):""):"CREATE EVENT ".idf_escape($_POST["EVENT_NAME"]).$oe)."\n".$_d[$_POST["STATUS"]]." COMMENT ".q($_POST["EVENT_COMMENT"]).rtrim(" DO\n$_POST[EVENT_DEFINITION]",";").";"));}}page_header(($mb!=""?lang(185).": ".h($mb):lang(186)),$n);$a=array();if($_POST){$a=$_POST;}elseif($mb!=""){$G=get_rows("SELECT * FROM information_schema.EVENTS WHERE EVENT_SCHEMA = ".q(DB)." AND EVENT_NAME = ".q($mb));$a=reset($G);}echo'
',lang(181),'
',lang(187),'
',lang(188),'
',lang(189),' ',html_select("INTERVAL_FIELD",$ne,$a["INTERVAL_FIELD"]),'
',lang(73),'',html_select("STATUS",$_d,$a["STATUS"]),'
',lang(94),'
 ',checkbox("ON_COMPLETION","PRESERVE",$a["ON_COMPLETION"]=="PRESERVE",lang(190)),'

';textarea("EVENT_DEFINITION",$a["EVENT_DEFINITION"]);echo'

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

';}elseif(isset($_GET["procedure"])){$Ra=$_GET["procedure"];$Wa=(isset($_GET["function"])?"FUNCTION":"PROCEDURE");$bb=false;if($_POST&&!$n&&!$_POST["add"]&&!$_POST["drop_col"]&&!$_POST["up"]&&!$_POST["down"]){$r=array();$p=(array)$_POST["fields"];ksort($p);foreach($p as$e){if($e["field"]!=""){$r[]=(in_array($e["inout"],$jc)?"$e[inout] ":"").idf_escape($e["field"]).process_type($e,"CHARACTER SET");}}$bb=drop_create("DROP $Wa ".idf_escape($Ra),"CREATE $Wa ".idf_escape($_POST["name"])." (".implode(", ",$r).")".(isset($_GET["function"])?" RETURNS".process_type($_POST["returns"],"CHARACTER SET"):"").rtrim("\n$_POST[definition]",";").";",substr(ME,0,-1),lang(191),lang(192),lang(193),$Ra);}page_header(($Ra!=""?(isset($_GET["function"])?lang(194):lang(195)).": ".h($Ra):(isset($_GET["function"])?lang(196):lang(197))),$n);$Y=get_vals("SHOW CHARACTER SET");sort($Y);$a=array("fields"=>array());if($_POST){$a=$_POST;$a["fields"]=(array)$a["fields"];process_fields($a["fields"]);}elseif($Ra!=""){$a=routine($Ra,$Wa);$a["name"]=$Ra;}echo'

',lang(181),': ';edit_fields($a["fields"],$Y,$Wa);if(isset($_GET["function"])){echo"
".lang(198);edit_type("returns",$a["returns"],$Y);}echo'

';textarea("definition",$a["definition"]);echo'

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

';}elseif(isset($_GET["sequence"])){$_b=$_GET["sequence"];if($_POST&&!$n){$w=substr(ME,0,-1);if($_POST["drop"]){query_redirect("DROP SEQUENCE ".idf_escape($_b),$w,lang(199));}elseif($_b==""){query_redirect("CREATE SEQUENCE ".idf_escape($_POST["name"]),$w,lang(200));}elseif($_b!=$_POST["name"]){query_redirect("ALTER SEQUENCE ".idf_escape($_b)." RENAME TO ".idf_escape($_POST["name"]),$w,lang(201));}else{redirect($w);}}page_header($_b!=""?lang(202).": ".h($_b):lang(203),$n);$a=array("name"=>$_b);if($_POST){$a=$_POST;}echo'

';if($_b!=""){echo"\n";}echo'

';}elseif(isset($_GET["type"])){$bd=$_GET["type"];if($_POST&&!$n){$w=substr(ME,0,-1);if($_POST["drop"]){query_redirect("DROP TYPE ".idf_escape($bd),$w,lang(204));}else{query_redirect("CREATE TYPE ".idf_escape($_POST["name"])." $_POST[as]",$w,lang(205));}}page_header($bd!=""?lang(206).": ".h($bd):lang(207),$n);$a["as"]="AS ";if($_POST){$a=$_POST;}echo'

';if($bd!=""){echo"\n";}else{echo"\n";textarea("as",$a["as"]);echo"

\n";}echo'

';}elseif(isset($_GET["trigger"])){$m=$_GET["trigger"];$Gc=trigger_options();$te=array("INSERT","UPDATE","DELETE");$bb=false;if($_POST&&!$n&&in_array($_POST["Timing"],$Gc["Timing"])&&in_array($_POST["Event"],$te)&&in_array($_POST["Type"],$Gc["Type"])){$Zd=" $_POST[Timing] $_POST[Event]";$Db=" ON ".table($m);$bb=drop_create("DROP TRIGGER ".idf_escape($_GET["name"]).($v=="pgsql"?$Db:""),"CREATE TRIGGER ".idf_escape($_POST["Trigger"]).($v=="mssql"?$Db.$Zd:$Zd.$Db).rtrim(" $_POST[Type]\n$_POST[Statement]",";").";",ME."table=".urlencode($m),lang(208),lang(209),lang(210),$_GET["name"]);}page_header(($_GET["name"]!=""?lang(211).": ".h($_GET["name"]):lang(212)),$n,array("table"=>$m));$a=array("Trigger"=>$m."_bi");if($_POST){$a=$_POST;}elseif($_GET["name"]!=""){$a=trigger($_GET["name"]);}echo'
',lang(213),'',html_select("Timing",$Gc["Timing"],$a["Timing"],"if (/^".h(preg_quote($m,"/"))."_[ba][iud]$/.test(this.form['Trigger'].value)) this.form['Trigger'].value = '".h(js_ad_escape($m))."_' + selectValue(this).charAt(0).toLowerCase() + selectValue(this.form['Event']).charAt(0).toLowerCase();"),'
',lang(214),'',html_select("Event",$te,$a["Event"],"this.form['Timing'].onchange();"),'
',lang(89),'',html_select("Type",$Gc["Type"],$a["Type"]),'

',lang(181),':

';textarea("Statement",$a["Statement"]);echo'

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

';}elseif(isset($_GET["user"])){$xd=$_GET["user"];$ta=array(""=>array("All privileges"=>""));foreach(get_rows("SHOW PRIVILEGES")as$a){foreach(explode(",",($a["Privilege"]=="Grant option"?"":$a["Context"]))as$Fc){$ta[$Fc][$a["Privilege"]]=$a["Comment"];}}$ta["Server Admin"]+=$ta["File access on server"];$ta["Databases"]["Create routine"]=$ta["Procedures"]["Create routine"];unset($ta["Procedures"]["Create routine"]);$ta["Columns"]=array();foreach(array("Select","Insert","Update","References")as$b){$ta["Columns"][$b]=$ta["Tables"][$b];}unset($ta["Server Admin"]["Usage"]);foreach($ta["Tables"]as$d=>$b){unset($ta["Databases"][$d]);}$Cc=array();if($_POST){foreach($_POST["objects"]as$d=>$b){$Cc[$b]=(array)$Cc[$b]+(array)$_POST["grants"][$d];}}$kb=array();$Kc="";if(isset($_GET["host"])&&($i=$g->query("SHOW GRANTS FOR ".q($xd)."@".q($_GET["host"])))){while($a=$i->fetch_row()){if(preg_match('~GRANT (.*) ON (.*) TO ~',$a[0],$k)&&preg_match_all('~ *([^(,]*[^ ,(])( *\\([^)]+\\))?~',$k[1],$oa,PREG_SET_ORDER)){foreach($oa as$b){if($b[1]!="USAGE"){$kb["$k[2]$b[2]"][$b[1]]=true;}if(ereg(' WITH GRANT OPTION',$a[0])){$kb["$k[2]$b[2]"]["GRANT OPTION"]=true;}}}if(preg_match("~ IDENTIFIED BY PASSWORD '([^']+)~",$a[0],$k)){$Kc=$k[1];}}}if($_POST&&!$n){$Vb=(isset($_GET["host"])?q($xd)."@".q($_GET["host"]):"''");$lb=q($_POST["user"])."@".q($_POST["host"]);$md=q($_POST["pass"]);if($_POST["drop"]){query_redirect("DROP USER $Vb",ME."privileges=",lang(215));}else{if($Vb!=$lb){$n=!queries(($g->server_info<5?"GRANT USAGE ON *.* TO":"CREATE USER")." $lb IDENTIFIED BY".($_POST["hashed"]?" PASSWORD":"")." $md");}elseif($_POST["pass"]!=$Kc||!$_POST["hashed"]){queries("SET PASSWORD FOR $lb = ".($_POST["hashed"]?$md:"PASSWORD($md)"));}if(!$n){$Bc=array();foreach($Cc as$fb=>$ja){if(isset($_GET["grant"])){$ja=array_filter($ja);}$ja=array_keys($ja);if(isset($_GET["grant"])){$Bc=array_diff(array_keys(array_filter($Cc[$fb],'strlen')),$ja);}elseif($Vb==$lb){$le=array_keys((array)$kb[$fb]);$Bc=array_diff($le,$ja);$ja=array_diff($ja,$le);unset($kb[$fb]);}if(preg_match('~^(.+)\\s*(\\(.*\\))?$~U',$fb,$k)&&(!grant("REVOKE",$Bc,$k[2]," ON $k[1] FROM $lb")||!grant("GRANT",$ja,$k[2]," ON $k[1] TO $lb"))){$n=true;break;}}}if(!$n&&isset($_GET["host"])){if($Vb!=$lb){queries("DROP USER $Vb");}elseif(!isset($_GET["grant"])){foreach($kb as$fb=>$Bc){if(preg_match('~^(.+)(\\(.*\\))?$~U',$fb,$k)){grant("REVOKE",array_keys($Bc),$k[2]," ON $k[1] FROM $lb");}}}}queries_redirect(ME."privileges=",(isset($_GET["host"])?lang(216):lang(217)),!$n);if($Vb!=$lb){$g->query("DROP USER $lb");}}}page_header((isset($_GET["host"])?lang(21).": ".h("$xd@$_GET[host]"):lang(120)),$n,array("privileges"=>array('',lang(70))));if($_POST){$a=$_POST;$kb=$Cc;}else{$a=$_GET+array("host"=>$g->result("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', -1)"));$a["pass"]=$Kc;if($Kc!=""){$a["hashed"]=true;}$kb[""]=true;}echo'
',lang(21),'
',lang(20),'
',lang(22),' ';if(!$a["hashed"]){echo'';}echo checkbox("hashed",1,$a["hashed"],lang(218),"typePassword(this.form['pass'], this.checked);"),'
';echo"\n","\n";foreach(array(""=>"","Server Admin"=>lang(20),"Databases"=>lang(65),"Tables"=>lang(100),"Columns"=>lang(101),"Procedures"=>lang(219),)as$Fc=>$oc){foreach((array)$ta[$Fc]as$Ac=>$Aa){echo"$oc'.h($Ac);$l=0;foreach($kb as$fb=>$ja){$f="'grants[$l][".h(strtoupper($Ac))."]'";$q=$ja[strtoupper($Ac)];if($Fc=="Server Admin"&&$fb!=(isset($kb["*.*"])?"*.*":"")){echo"
".lang(70)."";$l=0;foreach($kb as$fb=>$ja){echo''.($fb!="*.*"?"":"*.*");$l++;}echo"
 ";}elseif(isset($_GET["grant"])){echo"";}else{echo"";}$l++;}}}echo"
\n",'

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

';}elseif(isset($_GET["processlist"])){if($_POST&&!$n){$pd=0;foreach((array)$_POST["kill"]as$b){if(queries("KILL ".(+$b))){$pd++;}}queries_redirect(ME."processlist=",lang(222,$pd),$pd||!$_POST["kill"]);}page_header(lang(71),$n);echo'
';$l=-1;foreach(get_rows("SHOW FULL PROCESSLIST")as$l=>$a){if(!$l){echo"\n";}echo"
 ".implode("",array_keys($a))."
".checkbox("kill[]",$a["Id"],0);foreach($a as$d=>$b){echo"".($d=="Info"&&$b!=""?"".shorten_utf8($b,100,"").' '.lang(31).'':nbsp($b));}echo"\n";}echo'

',($l+1)."/".lang(223,$g->result("SELECT @@max_connections")),'

';}elseif(isset($_GET["select"])){$m=$_GET["select"];$E=table_status($m);$J=indexes($m);$p=fields($m);$ea=column_foreign_keys($m);if($E["Oid"]=="t"){$J[]=array("type"=>"PRIMARY","columns"=>array("oid"));}$ee=array();$B=array();$Cb=null;foreach($p as$d=>$e){$f=$o->fieldName($e);if(isset($e["privileges"]["select"])&&$f!=""){$B[$d]=html_entity_decode(strip_tags($f));if(ereg('text|lob',$e["type"])){$Cb=$o->selectLengthProcess();}}$ee+=$e["privileges"];}list($Q,$sa)=$o->selectColumnsProcess($B,$J);$s=$o->selectSearchProcess($p,$J);$Za=$o->selectOrderProcess($p,$J);$L=$o->selectLimitProcess();$Xb=($Q?implode(", ",$Q):($E["Oid"]=="t"?"oid, ":"")."*")."\nFROM ".table($m);$Kd=($sa&&count($sa)$a){echo$g->result("SELECT".limit(idf_escape(key($a))." FROM ".table($m)," WHERE ".where_check($cb).($s?" AND ".implode(" AND ",$s):"").($Za?" ORDER BY ".implode(", ",$Za):""),1));}exit;}if($_POST&&!$n){$ce="(".implode(") OR (",array_map('where_check',(array)$_POST["check"])).")";$Ka=$Oc=null;foreach($J as$x){if($x["type"]=="PRIMARY"){$Ka=array_flip($x["columns"]);$Oc=($Q?$Ka:array());break;}}foreach($Q as$d=>$b){$b=$_GET["columns"][$d];if(!$b["fun"]){unset($Oc[$b["col"]]);}}if($_POST["export"]){dump_headers($m);$o->dumpTable($m,"");if(!is_array($_POST["check"])||$Oc===array()){$Wb=$s;if(is_array($_POST["check"])){$Wb[]="($ce)";}$j="SELECT $Xb".($Wb?"\nWHERE ".implode(" AND ",$Wb):"").$Kd;}else{$be=array();foreach($_POST["check"]as$b){$be[]="(SELECT".limit($Xb,"\nWHERE ".($s?implode(" AND ",$s)." AND ":"").where_check($b).$Kd,1).")";}$j=implode(" UNION ALL ",$be);}$o->dumpData($m,"table",$j);exit;}if(!$o->selectEmailProcess($s,$ea)){if($_POST["save"]||$_POST["delete"]){$i=true;$tb=0;$j=table($m);$r=array();if(!$_POST["delete"]){foreach($B as$f=>$b){$b=process_input($p[$f]);if($b!==null){if($_POST["clone"]){$r[idf_escape($f)]=($b!==false?$b:idf_escape($f));}elseif($b!==false){$r[]=idf_escape($f)." = $b";}}}$j.=($_POST["clone"]?" (".implode(", ",array_keys($r)).")\nSELECT ".implode(", ",$r)."\nFROM ".table($m):" SET\n".implode(",\n",$r));}if($_POST["delete"]||$r){$Lc="UPDATE";if($_POST["delete"]){$Lc="DELETE";$j="FROM $j";}if($_POST["clone"]){$Lc="INSERT";$j="INTO $j";}if($_POST["all"]||($Oc===array()&&$_POST["check"])||count($sa)affected_rows;}else{foreach((array)$_POST["check"]as$b){$i=queries($Lc.limit1($j,"\nWHERE ".where_check($b)));if(!$i){break;}$tb+=$g->affected_rows;}}}queries_redirect(remove_from_uri("page"),lang(225,$tb),$i);}elseif(!$_POST["import"]){if(!$_POST["val"]){$n=lang(226);}else{$i=true;$tb=0;foreach($_POST["val"]as$cb=>$a){$r=array();foreach($a as$d=>$b){$d=bracket_escape($d,1);$r[]=idf_escape($d)." = ".(ereg('char|text',$p[$d]["type"])||$b!=""?$o->processInput($p[$d],$b):"NULL");}$j=table($m)." SET ".implode(", ",$r);$Wb=" WHERE ".where_check($cb).($s?" AND ".implode(" AND ",$s):"");$i=queries("UPDATE".(count($sa)affected_rows;}queries_redirect(remove_from_uri(),lang(225,$tb),$i);}}elseif(is_string($Ia=get_file("csv_file",true))){$i=true;$rb=array_keys($p);preg_match_all('~(?>"[^"]*"|[^"\\r\\n]+)+~',$Ia,$oa);$tb=count($oa[0]);begin();$Ta=($_POST["separator"]=="csv"?",":($_POST["separator"]=="tsv"?"\t":";"));foreach($oa[0]as$d=>$b){preg_match_all("~((\"[^\"]*\")+|[^$Ta]*)$Ta~",$b.$Ta,$Bd);if(!$d&&!array_diff($Bd[1],$rb)){$rb=$Bd[1];$tb--;}else{$r=array();foreach($Bd[1]as$l=>$Pc){$r[idf_escape($rb[$l])]=($Pc==""&&$p[$rb[$l]]["null"]?"NULL":q(str_replace('""','"',preg_replace('~^"|"$~','',$Pc))));}$i=insert_update($m,$r,$Ka);if(!$i){break;}}}if($i){queries("COMMIT");}queries_redirect(remove_from_uri("page"),lang(227,$tb),$i);queries("ROLLBACK");}else{$n=upload_error($Ia);}}}$Ga=$o->tableName($E);page_header(lang(33).": $Ga",$n);session_write_close();$r=null;if(isset($ee["insert"])){$r="";foreach((array)$_GET["where"]as$b){if(count($ea[$b["col"]])==1&&($b["op"]=="="||(!$b["op"]&&!ereg('[_%]',$b["val"])))){$r.="&set".urlencode("[".bracket_escape($b["col"])."]")."=".urlencode($b["val"]);}}}$o->selectLinks($E,$r);if(!$B){echo"

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

\n","
";hidden_fields_get();echo(DB!=""?''.(isset($_GET["ns"])?'':""):"");echo'',"
\n";$o->selectColumnsPrint($Q,$B);$o->selectSearchPrint($s,$B,$J);$o->selectOrderPrint($Za,$B,$J);$o->selectLimitPrint($L);$o->selectLengthPrint($Cb);$o->selectActionPrint($Cb);echo"
\n";$da=$_GET["page"];if($da=="last"){$gb=$g->result("SELECT COUNT(*) FROM ".table($m).($s?" WHERE ".implode(" AND ",$s):""));$da=floor(max(0,$gb-1)/$L);}$j="SELECT".limit((+$L&&$sa&&count($sa)selectQuery($j);$i=$g->query($j);if(!$i){echo"

".error()."\n";}else{if($v=="mssql"){$i->seek($L*$da);}$Jc=array();echo"

\n";$G=array();while($a=$i->fetch_assoc()){$G[]=$a;}if($_GET["page"]!="last"){$gb=(+$L&&$sa&&count($sa)result(" SELECT FOUND_ROWS()"):$g->result("SELECT COUNT(*) FROM ($j) x")):count($G));}if(!$G){echo"

".lang(82)."\n";}else{$Ed=$o->backwardKeys($m,$Ga);echo"\n","".(!$sa&&$Q?"":"\n";foreach($o->rowDescriptions($G,$ea)as$ia=>$a){$od=unique_array($G[$ia],$J);$cb="";foreach($od as$d=>$b){$cb.="&".(isset($b)?urlencode("where[".bracket_escape($d)."]")."=".urlencode($b):"null%5B%5D=".urlencode($d));}echo"".(!$sa&&$Q?"":"\n";}echo"
".lang(119)."");$Gd=array();$ba=array();reset($Q);$ke=1;foreach($G[0]as$d=>$b){if($E["Oid"]!="t"||$d!="oid"){$b=$_GET["columns"][key($Q)];$e=$p[$Q?$b["col"]:$d];$f=($e?$o->fieldName($e,$ke):"*");if($f!=""){$ke++;$Gd[$d]=$f;$C=idf_escape($d);echo''.apply_sql_function($b["fun"],$f)."";}$ba[$d]=$b["fun"];next($Q);}}$Ub=array();if($_GET["modify"]){foreach($G as$a){foreach($a as$d=>$b){$Ub[$d]=max($Ub[$d],min(40,strlen(utf8_decode($b))));}}}echo($Ed?"".lang(229):"")."
".checkbox("check[]",substr($cb,1),in_array(substr($cb,1),(array)$_POST["check"]),"","this.form['all'].checked = false; formUncheck('all-page');").(count($sa)".lang(119).""));foreach($a as$d=>$b){if(isset($Gd[$d])){$e=$p[$d];if($b!=""&&(!isset($Jc[$d])||$Jc[$d]!="")){$Jc[$d]=(is_ad_email($b)?$Gd[$d]:"");}$w="";$b=$o->editVal($b,$e);if(!isset($b)){$b="NULL";}else{if(ereg('blob|bytea|raw|file',$e["type"])&&$b!=""){$w=h(ME.'download='.urlencode($m).'&field='.urlencode($d).$cb);}if($b===""){$b=" ";}elseif($Cb!=""&&ereg('text|blob',$e["type"])&&is_utf8($b)){$b=shorten_utf8($b,max(0,+$Cb));}else{$b=h($b);}if(!$w){foreach((array)$ea[$d]as$A){if(count($ea[$d])==1||end($A["source"])==$d){$w="";foreach($A["source"]as$l=>$Da){$w.=where_link($l,$A["target"][$l],$G[$ia][$Da]);}$w=h(($A["db"]!=""?preg_replace('~([?&]db=)[^&]+~','\\1'.urlencode($A["db"]),ME):ME).'select='.urlencode($A["table"]).$w);if(count($A["source"])==1){break;}}}}if($d=="COUNT(*)"){$w=h(ME."select=".urlencode($m));$l=0;foreach((array)$_GET["where"]as$y){if(!array_key_exists($y["col"],$od)){$w.=h(where_link($l++,$y["col"],$y["val"],$y["op"]));}}foreach($od as$Na=>$y){$w.=h(where_link($l++,$Na,$y));}}}if(!$w){if(is_ad_email($b)){$w="mailto:$b";}if($ud=is_url($a[$d])){$w=($ud=="http"&&$Ec?$a[$d]:"$ud://www.adminer.org/redirect/?url=".urlencode($a[$d]));}}$R=h("val[$cb][".bracket_escape($d)."]");$q=$_POST["val"][$cb][bracket_escape($d)];$je=h(isset($q)?$q:$a[$d]);$pf=strpos($b,"...");$ie=is_utf8($b)&&$G[$ia][$d]==$a[$d]&&!$ba[$d];$he=ereg('text|lob',$e["type"]);echo(($_GET["modify"]&&$ie)||isset($q)?"".($he?"":""):"".$o->selectVal($b,$w,$e));}}if($Ed){echo"";}$o->backwardKeysPrint($Ed,$G[$ia]);echo"
\n";}parse_str($_COOKIE["adminer_export"],$dc);if($G||$da){$wd=true;if($_GET["page"]!="last"&&+$L&&count($sa)>=count($Q)&&($gb>=$L||$da)){$gb=$E["Rows"];if(!isset($gb)||$s||($E["Engine"]=="InnoDB"&&$gbresult("SELECT COUNT(*) FROM ".table($m).($s?" WHERE ".implode(" AND ",$s):""));}else{$wd=false;}}echo"

";if(+$L&&$gb>$L){$Ld=floor(($gb-1)/$L);echo'".lang(231).":",pagination(0,$da).($da>5?" ...":"");for($l=max(1,$da-4);$l'.lang(232)."");}echo" (".($wd?"":"~ ").lang(122,$gb).") ".checkbox("all",1,0,lang(233))."\n";if(!information_schema(DB)){echo'

',lang(31),'
';}print_fieldset("export",lang(113));$Ja=$o->dumpOutput();echo($Ja?html_select("output",$Ja,$dc["output"])." ":""),html_select("format",$o->dumpFormat(),$dc["format"])," \n","\n";}print_fieldset("import",lang(235),!$G);echo" ",html_select("separator",array("csv"=>"CSV,","csv;"=>"CSV;","tsv"=>"TSV"),$dc["format"],1);echo" ","\n","\n";$o->selectEmailPrint(array_filter($Jc,'strlen'),$B);echo"\n";}}}elseif(isset($_GET["variables"])){$ac=isset($_GET["status"]);page_header($ac?lang(73):lang(72));$Ze=($ac?show_status():show_variables());if(!$Ze){echo"

".lang(82)."\n";}else{echo"\n";foreach($Ze as$d=>$b){echo"","
".h($d)."","".nbsp($b);}echo"
\n";}}elseif(isset($_GET["script"])){header("Content-Type: text/javascript; charset=utf-8");if($_GET["script"]=="db"){$gd=array("Data_length"=>0,"Index_length"=>0,"Data_free"=>0);foreach(table_status()as$a){$R=js_ad_escape($a["Name"]);json_row("Comment-$R",nbsp($a["Comment"]));if(!is_view($a)){foreach(array("Engine","Collation")as$d){json_row("$d-$R",nbsp($a[$d]));}foreach($gd+array("Auto_increment"=>0,"Rows"=>0)as$d=>$b){if($a[$d]!=""){$b=number_format($a[$d],0,'.',lang(236));json_row("$d-$R",($d=="Rows"&&$a["Engine"]=="InnoDB"&&$b?"~ $b":$b));if(isset($gd[$d])){$gd[$d]+=($a["Engine"]!="InnoDB"||$d!="Data_free"?$a[$d]:0);}}elseif(array_key_exists($d,$a)){json_row("$d-$R");}}}}foreach($gd as$d=>$b){json_row("sum-$d",number_format($b,0,'.',lang(236)));}json_row("");}else{foreach(count_tables(get_databases())as$t=>$b){json_row("tables-".js_ad_escape($t),$b);}json_row("");}exit;}else{$ef=array_merge((array)$_POST["tables"],(array)$_POST["views"]);if($ef&&!$n&&!$_POST["search"]){$i=true;$ua="";if($v=="sql"&&count($_POST["tables"])>1&&($_POST["drop"]||$_POST["truncate"]||$_POST["copy"])){queries("SET foreign_key_checks = 0");}if($_POST["truncate"]){if($_POST["tables"]){$i=truncate_tables($_POST["tables"]);}$ua=lang(237);}elseif($_POST["move"]){$i=move_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$ua=lang(238);}elseif($_POST["copy"]){$i=copy_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$ua=lang(239);}elseif($_POST["drop"]){if($_POST["views"]){$i=drop_views($_POST["views"]);}if($i&&$_POST["tables"]){$i=drop_tables($_POST["tables"]);}$ua=lang(240);}elseif($_POST["tables"]&&($i=queries(($_POST["optimize"]?"OPTIMIZE":($_POST["check"]?"CHECK":($_POST["repair"]?"REPAIR":"ANALYZE")))." TABLE ".implode(", ",array_map('idf_escape',$_POST["tables"]))))){while($a=$i->fetch_assoc()){$ua.="".h($a["Table"]).": ".h($a["Msg_text"])."
";}}queries_redirect(substr(ME,0,-1),$ua,$i);}page_header(($_GET["ns"]==""?lang(65).": ".h(DB):lang(80).": ".h($_GET["ns"])),$n,true);if($o->homepage()){if($_GET["ns"]!==""){echo''.lang(111)."\n","

".lang(241)."

\n";$dd=tables_list();if(!$dd){echo"

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

\n","

".lang(242).": \n";if($_POST["search"]&&$_POST["query"]!=""){search_tables();}echo"\n",'\n";foreach($dd as$f=>$z){$ec=(isset($z)&&!eregi("table",$z));echo'
'.lang(100).''.lang(243).''.lang(76).''.lang(244).''.lang(245).''.lang(246).''.lang(92).''.lang(247).(support("comment")?''.lang(94):'')."
'.checkbox(($ec?"views[]":"tables[]"),$f,in_array($f,$ef,true),"","formUncheck('check-all');"),''.h($f).'';if($ec){echo''.lang(99).'','?';}else{foreach(array("Engine"=>"","Collation"=>"","Data_length"=>"create","Index_length"=>"indexes","Data_free"=>"edit","Auto_increment"=>"auto_increment=1&create","Rows"=>"select")as$d=>$w){echo($w?"?":" ");}}echo(support("comment")?" ":"");}echo"
 ".lang(223,count($dd)),"".nbsp($v=="sql"?$g->result("SELECT @@storage_engine"):""),"".nbsp(db_collation(DB,collations()));foreach(array("Data_length","Index_length","Data_free")as$d){echo" ";}echo"
\n";if(!information_schema(DB)){echo"

".($v=="sql"?" ":"")." \n";$_=(support("scheme")?schemas():get_databases());if(count($_)!=1&&$v!="sqlite"){$t=(isset($_POST["target"])?$_POST["target"]:(support("scheme")?$_GET["ns"]:DB));echo"

".lang(253).": ",($_?html_select("target",$_,$t):'')," ",(support("copy")?" ":""),"\n";}echo"\n";}echo"

\n";}echo'

'.lang(148)."\n";if(support("view")){echo''.lang(180)."\n";}if(support("routine")){echo"

".lang(116)."

\n";$ue=routines();if($ue){echo"\n",'\n";odd('');foreach($ue as$a){echo'','
'.lang(181).''.lang(89).''.lang(198)." 
'.h($a["ROUTINE_NAME"]).'',''.h($a["ROUTINE_TYPE"]),''.h($a["DTD_IDENTIFIER"]),''.lang(107)."";}echo"
\n";}echo'

'.lang(197).' '.lang(196)."\n";}if(support("sequence")){echo"

".lang(256)."

\n";$Be=get_vals("SELECT sequence_name FROM information_schema.sequences WHERE sequence_schema = current_schema()");if($Be){echo"\n","\n";odd('');foreach($Be as$b){echo"
".lang(181)."
".h($b)."\n";}echo"
\n";}echo"

".lang(203)."\n";}if(support("type")){echo"

".lang(11)."

\n";$S=types();if($S){echo"\n","\n";odd('');foreach($S as$b){echo"
".lang(181)."
".h($b)."\n";}echo"
\n";}echo"

".lang(207)."\n";}if(support("event")){echo"

".lang(117)."

\n";$G=get_rows("SHOW EVENTS");if($G){echo"\n","\n";foreach($G as$a){echo"",'
".lang(181)."".lang(257)."".lang(187)."".lang(188)."
'.h($a["Name"])."","".($a["Execute at"]?lang(258)."".$a["Execute at"]:lang(189)." ".$a["Interval value"]." ".$a["Interval field"]."$a[Starts]"),"$a[Ends]";}echo"
\n";}echo'

'.lang(186)."\n";}if($dd){echo"\n";}}}}page_footer();