PageRenderTime 66ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 1ms

/index.php

https://bitbucket.org/AdrianPop/adminer
PHP | 967 lines | 957 code | 3 blank | 7 comment | 9 complexity | 2517d3d5ba79d263d2dac2430c7748a3 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

  1. <?php
  2. /** Adminer - Compact database management
  3. * @link http://www.adminer.org/
  4. * @author Jakub Vrana, http://www.vrana.cz/
  5. * @copyright 2007 Jakub Vrana
  6. * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
  7. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
  8. * @version 3.4.0
  9. */error_reporting(6135);$Wb=!ereg('^(unsafe_raw)?$',ini_get("filter.default"));if($Wb||ini_get("filter.default_flags")){foreach(array('_GET','_POST','_COOKIE','_SERVER')as$X){$Cf=filter_input_array(constant("INPUT$X"),FILTER_UNSAFE_RAW);if($Cf)$$X=$Cf;}}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
  10. 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;}a.text{text-decoration:none;}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;}tbody tr:hover td,tbody tr:hover th{background:#eee;}pre{margin:1em 0 0;}input[type=image]{vertical-align:middle;}.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;}.js .checked td,.js .checked th{background:#ddf;}.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;}#h1{color:#777;text-decoration:none;font-style:italic;}#version{font-size:67%;color:red;}#schema{margin-left:60px;position:relative;-moz-user-select:none;-webkit-user-select:none;}#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");?>function
  11. toggle(id){var
  12. el=document.getElementById(id);el.className=(el.className=='hidden'?'':'hidden');return true;}function
  13. cookie(assign,days){var
  14. date=new
  15. Date();date.setDate(date.getDate()+days);document.cookie=assign+'; expires='+date;}function
  16. verifyVersion(){cookie('adminer_version=0',1);var
  17. script=document.createElement('script');script.src=location.protocol+'//www.adminer.org/version.php';document.body.appendChild(script);}function
  18. selectValue(select){var
  19. selected=select.options[select.selectedIndex];return((selected.attributes.value||{}).specified?selected.value:selected.text);}function
  20. trCheck(el){var
  21. tr=el.parentNode.parentNode;tr.className=tr.className.replace(/(^|\s)checked(\s|$)/,'$2')+(el.checked?' checked':'');}function
  22. formCheck(el,name){var
  23. elems=el.form.elements;for(var
  24. i=0;i<elems.length;i++){if(name.test(elems[i].name)){elems[i].checked=el.checked;trCheck(elems[i]);}}}function
  25. tableCheck(){var
  26. tables=document.getElementsByTagName('table');for(var
  27. i=0;i<tables.length;i++){if(/(^|\s)checkable(\s|$)/.test(tables[i].className)){var
  28. trs=tables[i].getElementsByTagName('tr');for(var
  29. j=0;j<trs.length;j++){trCheck(trs[j].firstChild.firstChild);}}}}function
  30. formUncheck(id){var
  31. el=document.getElementById(id);el.checked=false;trCheck(el);}function
  32. formChecked(el,name){var
  33. checked=0;var
  34. elems=el.form.elements;for(var
  35. i=0;i<elems.length;i++){if(name.test(elems[i].name)&&elems[i].checked){checked++;}}return checked;}function
  36. tableClick(event){var
  37. click=(!window.getSelection||getSelection().isCollapsed);var
  38. el=event.target||event.srcElement;while(!/^tr$/i.test(el.tagName)){if(/^(table|a|input|textarea)$/i.test(el.tagName)){if(el.type!='checkbox'){return;}checkboxClick(event,el);click=false;}el=el.parentNode;}el=el.firstChild.firstChild;if(click){el.click&&el.click();el.onclick&&el.onclick();}trCheck(el);}var
  39. lastChecked;function
  40. checkboxClick(event,el){if(!el.name){return;}if(event.shiftKey&&(!lastChecked||lastChecked.name==el.name)){var
  41. checked=(lastChecked?lastChecked.checked:true);var
  42. inputs=el.parentNode.parentNode.parentNode.getElementsByTagName('input');var
  43. checking=!lastChecked;for(var
  44. i=0;i<inputs.length;i++){var
  45. input=inputs[i];if(input.name===el.name){if(checking){input.checked=checked;trCheck(input);}if(input===el||input===lastChecked){if(checking){break;}checking=true;}}}}lastChecked=el;}function
  46. setHtml(id,html){var
  47. el=document.getElementById(id);if(el){if(html==undefined){el.parentNode.innerHTML='&nbsp;';}else{el.innerHTML=html;}}}function
  48. nodePosition(el){var
  49. pos=0;while(el=el.previousSibling){pos++;}return pos;}function
  50. pageClick(href,page,event){if(!isNaN(page)&&page){href+=(page!=1?'&page='+(page-1):'');location.href=href;}}function
  51. selectAddRow(field){field.onchange=function(){selectFieldChange(field.form);};field.onchange();var
  52. row=field.parentNode.cloneNode(true);var
  53. selects=row.getElementsByTagName('select');for(var
  54. i=0;i<selects.length;i++){selects[i].name=selects[i].name.replace(/[a-z]\[\d+/,'$&1');selects[i].selectedIndex=0;}var
  55. inputs=row.getElementsByTagName('input');if(inputs.length){inputs[0].name=inputs[0].name.replace(/[a-z]\[\d+/,'$&1');inputs[0].value='';inputs[0].className='';}field.parentNode.parentNode.appendChild(row);}function
  56. selectFieldChange(form){var
  57. ok=(function(){var
  58. inputs=form.getElementsByTagName('input');for(var
  59. i=0;i<inputs.length;i++){var
  60. input=inputs[i];if(/^fulltext/.test(input.name)&&input.value){return true;}}var
  61. ok=true;var
  62. selects=form.getElementsByTagName('select');for(var
  63. i=0;i<selects.length;i++){var
  64. select=selects[i];var
  65. col=selectValue(select);var
  66. match=/^(where.+)col\]/.exec(select.name);if(match){var
  67. op=selectValue(form[match[1]+'op]']);var
  68. val=form[match[1]+'val]'].value;if(col
  69. in
  70. indexColumns&&(!/LIKE|REGEXP/.test(op)||(op=='LIKE'&&val.charAt(0)!='%'))){return true;}else
  71. if(col||val){ok=false;}}if(col&&/^order/.test(select.name)){if(!(col
  72. in
  73. indexColumns)){ok=false;}break;}}return ok;})();setHtml('noindex',(ok?'':'!'));}function
  74. bodyKeydown(event,button){var
  75. target=event.target||event.srcElement;if(event.ctrlKey&&(event.keyCode==13||event.keyCode==10)&&!event.altKey&&!event.metaKey&&/select|textarea|input/i.test(target.tagName)){target.blur();if(button){target.form[button].click();}else{target.form.submit();}return false;}return true;}function
  76. editingKeydown(event){if((event.keyCode==40||event.keyCode==38)&&event.ctrlKey&&!event.altKey&&!event.metaKey){var
  77. target=event.target||event.srcElement;var
  78. sibling=(event.keyCode==40?'nextSibling':'previousSibling');var
  79. el=target.parentNode.parentNode[sibling];if(el&&(/^tr$/i.test(el.tagName)||(el=el[sibling]))&&/^tr$/i.test(el.tagName)&&(el=el.childNodes[nodePosition(target.parentNode)])&&(el=el.childNodes[nodePosition(target)])){el.focus();}return false;}if(event.shiftKey&&!bodyKeydown(event,'insert')){eventStop(event);return false;}return true;}function
  80. functionChange(select){var
  81. input=select.form[select.name.replace(/^function/,'fields')];if(selectValue(select)){if(input.origMaxLength===undefined){input.origMaxLength=input.maxLength;}input.removeAttribute('maxlength');}else
  82. if(input.origMaxLength>=0){input.maxLength=input.origMaxLength;}}function
  83. ajax(url,callback,data){var
  84. request=(window.XMLHttpRequest?new
  85. XMLHttpRequest():(window.ActiveXObject?new
  86. ActiveXObject('Microsoft.XMLHTTP'):false));if(request){request.open((data?'POST':'GET'),url);if(data){request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');}request.setRequestHeader('X-Requested-With','XMLHttpRequest');request.onreadystatechange=function(){if(request.readyState==4){callback(request);}};request.send(data);}return request;}function
  87. ajaxSetHtml(url){return ajax(url,function(request){if(request.status){var
  88. data=eval('('+request.responseText+')');for(var
  89. key
  90. in
  91. data){setHtml(key,data[key]);}}});}function
  92. selectDblClick(td,event,text){if(/input|textarea/i.test(td.firstChild.tagName)){return;}var
  93. original=td.innerHTML;var
  94. input=document.createElement(text?'textarea':'input');input.onkeydown=function(event){if(!event){event=window.event;}if(event.keyCode==27&&!(event.ctrlKey||event.shiftKey||event.altKey||event.metaKey)){td.innerHTML=original;}};var
  95. pos=event.rangeOffset;var
  96. value=td.firstChild.alt||td.textContent||td.innerText;input.style.width=Math.max(td.clientWidth-14,20)+'px';if(text){var
  97. rows=1;value.replace(/\n/g,function(){rows++;});input.rows=rows;}if(value=='\u00A0'||td.getElementsByTagName('i').length){value='';}if(document.selection){var
  98. range=document.selection.createRange();range.moveToPoint(event.clientX,event.clientY);var
  99. range2=range.duplicate();range2.moveToElementText(td);range2.setEndPoint('EndToEnd',range);pos=range2.text.length;}td.innerHTML='';td.appendChild(input);input.focus();if(text==2){return ajax(location.href+'&'+encodeURIComponent(td.id)+'=',function(request){if(request.status){input.value=request.responseText;input.name=td.id;}});}input.value=value;input.name=td.id;input.selectionStart=pos;input.selectionEnd=pos;if(document.selection){var
  100. range=document.selection.createRange();range.moveEnd('character',-input.value.length+pos);range.select();}}function
  101. eventStop(event){if(event.stopPropagation){event.stopPropagation();}else{event.cancelBubble=true;}}var
  102. jushRoot=location.protocol + '//www.adminer.org/static/';function
  103. bodyLoad(version){if(jushRoot){var
  104. link=document.createElement('link');link.rel='stylesheet';link.type='text/css';link.href=jushRoot+'jush.css';document.getElementsByTagName('head')[0].appendChild(link);var
  105. script=document.createElement('script');script.src=jushRoot+'jush.js';script.onload=function(){if(window.jush){jush.create_links=' target="_blank" rel="noreferrer"';jush.urls.sql_sqlset=jush.urls.sql[0]=jush.urls.sqlset[0]=jush.urls.sqlstatus[0]='http://dev.mysql.com/doc/refman/'+version+'/en/$key';var
  106. pgsql='http://www.postgresql.org/docs/'+version+'/static/';jush.urls.pgsql_pgsqlset=jush.urls.pgsql[0]=pgsql+'$key';jush.urls.pgsqlset[0]=pgsql+'runtime-config-$key.html#GUC-$1';if(window.jushLinks){jush.custom_links=jushLinks;}jush.highlight_tag('code',0);}};script.onreadystatechange=function(){if(/^(loaded|complete)$/.test(script.readyState)){script.onload();}};document.body.appendChild(script);}}function
  107. formField(form,name){for(var
  108. i=0;i<form.length;i++){if(form[i].name==name){return form[i];}}}function
  109. typePassword(el,disable){try{el.type=(disable?'text':'password');}catch(e){}}function
  110. loginDriver(driver){var
  111. trs=driver.parentNode.parentNode.parentNode.rows;for(var
  112. i=1;i<trs.length-1;i++){trs[i].className=(/sqlite/.test(driver.value)?'hidden':'');}}function
  113. textareaKeydown(target,event){if(!event.shiftKey&&!event.altKey&&!event.ctrlKey&&!event.metaKey){if(event.keyCode==9){if(target.setSelectionRange){var
  114. start=target.selectionStart;var
  115. scrolled=target.scrollTop;target.value=target.value.substr(0,start)+'\t'+target.value.substr(target.selectionEnd);target.setSelectionRange(start+1,start+1);target.scrollTop=scrolled;return false;}else
  116. if(target.createTextRange){document.selection.createRange().text='\t';return false;}}if(event.keyCode==27){var
  117. els=target.form.elements;for(var
  118. i=1;i<els.length;i++){if(els[i-1]==target){els[i].focus();break;}}return false;}}return true;}var
  119. added='.',rowCount;function
  120. delimiterEqual(val,a,b){return(val==a+'_'+b||val==a+b||val==a+b.charAt(0).toUpperCase()+b.substr(1));}function
  121. idfEscape(s){return s.replace(/`/,'``');}function
  122. editingNameChange(field){var
  123. name=field.name.substr(0,field.name.length-7);var
  124. type=formField(field.form,name+'[type]');var
  125. opts=type.options;var
  126. candidate;var
  127. val=field.value;for(var
  128. i=opts.length;i--;){var
  129. match=/(.+)`(.+)/.exec(opts[i].value);if(!match){if(candidate&&i==opts.length-2&&val==opts[candidate].value.replace(/.+`/,'')&&name=='fields[1]'){return;}break;}var
  130. table=match[1];var
  131. column=match[2];var
  132. tables=[table,table.replace(/s$/,''),table.replace(/es$/,'')];for(var
  133. j=0;j<tables.length;j++){table=tables[j];if(val==column||val==table||delimiterEqual(val,table,column)||delimiterEqual(val,column,table)){if(candidate){return;}candidate=i;break;}}}if(candidate){type.selectedIndex=candidate;type.onchange();}}function
  134. editingAddRow(button,allowed,focus){if(allowed&&rowCount>=allowed){return false;}var
  135. match=/(\d+)(\.\d+)?/.exec(button.name);var
  136. x=match[0]+(match[2]?added.substr(match[2].length):added)+'1';var
  137. row=button.parentNode.parentNode;var
  138. row2=row.cloneNode(true);var
  139. tags=row.getElementsByTagName('select');var
  140. tags2=row2.getElementsByTagName('select');for(var
  141. i=0;i<tags.length;i++){tags2[i].name=tags[i].name.replace(/([0-9.]+)/,x);tags2[i].selectedIndex=tags[i].selectedIndex;}tags=row.getElementsByTagName('input');tags2=row2.getElementsByTagName('input');var
  142. input=tags2[0];for(var
  143. i=0;i<tags.length;i++){if(tags[i].name=='auto_increment_col'){tags2[i].value=x;tags2[i].checked=false;}tags2[i].name=tags[i].name.replace(/([0-9.]+)/,x);if(/\[(orig|field|comment|default)/.test(tags[i].name)){tags2[i].value='';}if(/\[(has_default)/.test(tags[i].name)){tags2[i].checked=false;}}tags[0].onchange=function(){editingNameChange(tags[0]);};row.parentNode.insertBefore(row2,row.nextSibling);if(focus){input.onchange=function(){editingNameChange(input);};input.focus();}added+='0';rowCount++;return true;}function
  144. editingRemoveRow(button){var
  145. field=formField(button.form,button.name.replace(/drop_col(.+)/,'fields$1[field]'));field.parentNode.removeChild(field);button.parentNode.parentNode.style.display='none';return true;}var
  146. lastType='';function
  147. editingTypeChange(type){var
  148. name=type.name.substr(0,type.name.length-6);var
  149. text=selectValue(type);for(var
  150. i=0;i<type.form.elements.length;i++){var
  151. el=type.form.elements[i];if(el.name==name+'[length]'&&!((/(char|binary)$/.test(lastType)&&/(char|binary)$/.test(text))||(/(enum|set)$/.test(lastType)&&/(enum|set)$/.test(text)))){el.value='';}if(lastType=='timestamp'&&el.name==name+'[has_default]'&&/timestamp/i.test(formField(type.form,name+'[default]').value)){el.checked=false;}if(el.name==name+'[collation]'){el.className=(/(char|text|enum|set)$/.test(text)?'':'hidden');}if(el.name==name+'[unsigned]'){el.className=(/(int|float|double|decimal)$/.test(text)?'':'hidden');}if(el.name==name+'[on_delete]'){el.className=(/`/.test(text)?'':'hidden');}}}function
  152. editingLengthFocus(field){var
  153. td=field.parentNode;if(/(enum|set)$/.test(selectValue(td.previousSibling.firstChild))){var
  154. edit=document.getElementById('enum-edit');var
  155. val=field.value;edit.value=(/^'.+','.+'$/.test(val)?val.substr(1,val.length-2).replace(/','/g,"\n").replace(/''/g,"'"):val);td.appendChild(edit);field.style.display='none';edit.style.display='inline';edit.focus();}}function
  156. editingLengthBlur(edit){var
  157. field=edit.parentNode.firstChild;var
  158. val=edit.value;field.value=(/\n/.test(val)?"'"+val.replace(/\n+$/,'').replace(/'/g,"''").replace(/\n/g,"','")+"'":val);field.style.display='inline';edit.style.display='none';}function
  159. columnShow(checked,column){var
  160. trs=document.getElementById('edit-fields').getElementsByTagName('tr');for(var
  161. i=0;i<trs.length;i++){trs[i].getElementsByTagName('td')[column].className=(checked?'':'hidden');}}function
  162. partitionByChange(el){var
  163. partitionTable=/RANGE|LIST/.test(selectValue(el));el.form['partitions'].className=(partitionTable||!el.selectedIndex?'hidden':'');document.getElementById('partition-table').className=(partitionTable?'':'hidden');}function
  164. partitionNameChange(el){var
  165. row=el.parentNode.parentNode.cloneNode(true);row.firstChild.firstChild.value='';el.parentNode.parentNode.parentNode.appendChild(row);el.onchange=function(){};}function
  166. foreignAddRow(field){field.onchange=function(){};var
  167. row=field.parentNode.parentNode.cloneNode(true);var
  168. selects=row.getElementsByTagName('select');for(var
  169. i=0;i<selects.length;i++){selects[i].name=selects[i].name.replace(/\]/,'1$&');selects[i].selectedIndex=0;}field.parentNode.parentNode.parentNode.appendChild(row);}function
  170. indexesAddRow(field){field.onchange=function(){};var
  171. parent=field.parentNode.parentNode;var
  172. row=parent.cloneNode(true);var
  173. selects=row.getElementsByTagName('select');for(var
  174. i=0;i<selects.length;i++){selects[i].name=selects[i].name.replace(/indexes\[\d+/,'$&1');selects[i].selectedIndex=0;}var
  175. inputs=row.getElementsByTagName('input');for(var
  176. i=0;i<inputs.length;i++){inputs[i].name=inputs[i].name.replace(/indexes\[\d+/,'$&1');inputs[i].value='';}parent.parentNode.appendChild(row);}function
  177. indexesChangeColumn(field,prefix){var
  178. columns=field.parentNode.parentNode.getElementsByTagName('select');var
  179. names=[];for(var
  180. i=0;i<columns.length;i++){var
  181. value=selectValue(columns[i]);if(value){names.push(value);}}field.form[field.name.replace(/\].*/,'][name]')].value=prefix+names.join('_');}function
  182. indexesAddColumn(field,prefix){field.onchange=function(){indexesChangeColumn(field,prefix);};var
  183. select=field.form[field.name.replace(/\].*/,'][type]')];if(!select.selectedIndex){select.selectedIndex=3;select.onchange();}var
  184. column=field.parentNode.cloneNode(true);select=column.getElementsByTagName('select')[0];select.name=select.name.replace(/\]\[\d+/,'$&1');select.selectedIndex=0;var
  185. input=column.getElementsByTagName('input')[0];input.name=input.name.replace(/\]\[\d+/,'$&1');input.value='';field.parentNode.parentNode.appendChild(column);field.onchange();}var
  186. that,x,y;function
  187. schemaMousedown(el,event){if((event.which?event.which:event.button)==1){that=el;x=event.clientX-el.offsetLeft;y=event.clientY-el.offsetTop;}}function
  188. schemaMousemove(ev){if(that!==undefined){ev=ev||event;var
  189. left=(ev.clientX-x)/em;var
  190. top=(ev.clientY-y)/em;var
  191. divs=that.getElementsByTagName('div');var
  192. lineSet={};for(var
  193. i=0;i<divs.length;i++){if(divs[i].className=='references'){var
  194. div2=document.getElementById((/^refs/.test(divs[i].id)?'refd':'refs')+divs[i].id.substr(4));var
  195. ref=(tablePos[divs[i].title]?tablePos[divs[i].title]:[div2.parentNode.offsetTop/em,0]);var
  196. left1=-1;var
  197. id=divs[i].id.replace(/^ref.(.+)-.+/,'$1');if(divs[i].parentNode!=div2.parentNode){left1=Math.min(0,ref[1]-left)-1;divs[i].style.left=left1+'em';divs[i].getElementsByTagName('div')[0].style.width=-left1+'em';var
  198. left2=Math.min(0,left-ref[1])-1;div2.style.left=left2+'em';div2.getElementsByTagName('div')[0].style.width=-left2+'em';}if(!lineSet[id]){var
  199. line=document.getElementById(divs[i].id.replace(/^....(.+)-.+$/,'refl$1'));var
  200. top1=top+divs[i].offsetTop/em;var
  201. top2=top+div2.offsetTop/em;if(divs[i].parentNode!=div2.parentNode){top2+=ref[0]-top;line.getElementsByTagName('div')[0].style.height=Math.abs(top1-top2)+'em';}line.style.left=(left+left1)+'em';line.style.top=Math.min(top1,top2)+'em';lineSet[id]=true;}}}that.style.left=left+'em';that.style.top=top+'em';}}function
  202. 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
  203. s='';for(var
  204. key
  205. in
  206. tablePos){s+='_'+key+':'+Math.round(tablePos[key][0]*10000)/10000+'x'+Math.round(tablePos[key][1]*10000)/10000;}s=encodeURIComponent(s.substr(1));var
  207. link=document.getElementById('schema-link');link.href=link.href.replace(/[^=]+$/,'')+s;cookie('adminer_schema-'+db+'='+s,30);}}<?php
  208. }else{header("Content-Type: image/gif");switch($_GET["file"]){case"plus.gif":echo
  209. base64_decode("R0lGODdhEgASAKEAAO7u7gAAAJmZmQAAACwAAAAAEgASAAACIYSPqcvtD00I8cwqKb5v+q8pIAhxlRmhZYi17iPE8kzLBQA7");break;case"cross.gif":echo
  210. base64_decode("R0lGODdhEgASAKEAAO7u7gAAAJmZmQAAACwAAAAAEgASAAACI4SPqcvtDyMKYdZGb355wy6BX3dhlOEx57FK7gtHwkzXNl0AADs=");break;case"up.gif":echo
  211. base64_decode("R0lGODdhEgASAKEAAO7u7gAAAJmZmQAAACwAAAAAEgASAAACIISPqcvtD00IUU4K730T9J5hFTiKEXmaYcW2rgDH8hwXADs=");break;case"down.gif":echo
  212. base64_decode("R0lGODdhEgASAKEAAO7u7gAAAJmZmQAAACwAAAAAEgASAAACIISPqcvtD00I8cwqKb5bV/5cosdMJtmcHca2lQDH8hwXADs=");break;case"arrow.gif":echo
  213. base64_decode("R0lGODlhCAAKAIAAAICAgP///yH5BAEAAAEALAAAAAAIAAoAAAIPBIJplrGLnpQRqtOy3rsAADs=");break;}}exit;}function
  214. connection(){global$f;return$f;}function
  215. adminer(){global$b;return$b;}function
  216. idf_unescape($qc){$Fc=substr($qc,-1);return
  217. str_replace($Fc.$Fc,$Fc,substr($qc,1,-1));}function
  218. escape_string($X){return
  219. substr(q($X),1,-1);}function
  220. remove_slashes($fe,$Wb=false){if(get_magic_quotes_gpc()){while(list($y,$X)=each($fe)){foreach($X
  221. as$Bc=>$W){unset($fe[$y][$Bc]);if(is_array($W)){$fe[$y][stripslashes($Bc)]=$W;$fe[]=&$fe[$y][stripslashes($Bc)];}else$fe[$y][stripslashes($Bc)]=($Wb?$W:stripslashes($W));}}}}function
  222. bracket_escape($qc,$wa=false){static$qf=array(':'=>':1',']'=>':2','['=>':3');return
  223. strtr($qc,($wa?array_flip($qf):$qf));}function
  224. h($Q){return
  225. htmlspecialchars(str_replace("\0","",$Q),ENT_QUOTES);}function
  226. nbsp($Q){return(trim($Q)!=""?h($Q):"&nbsp;");}function
  227. nl_br($Q){return
  228. str_replace("\n","<br>",$Q);}function
  229. checkbox($D,$Y,$Ga,$Dc="",$ud="",$Ac=false){static$t=0;$t++;$J="<input type='checkbox' name='$D' value='".h($Y)."'".($Ga?" checked":"").($ud?' onclick="'.h($ud).'"':'').($Ac?" class='jsonly'":"")." id='checkbox-$t'>";return($Dc!=""?"<label for='checkbox-$t'>$J".h($Dc)."</label>":$J);}function
  230. optionlist($xd,$Ce=null,$Hf=false){$J="";foreach($xd
  231. as$Bc=>$W){$yd=array($Bc=>$W);if(is_array($W)){$J.='<optgroup label="'.h($Bc).'">';$yd=$W;}foreach($yd
  232. as$y=>$X)$J.='<option'.($Hf||is_string($y)?' value="'.h($y).'"':'').(($Hf||is_string($y)?(string)$y:$X)===$Ce?' selected':'').'>'.h($X);if(is_array($W))$J.='</optgroup>';}return$J;}function
  233. html_select($D,$xd,$Y="",$td=true){if($td)return"<select name='".h($D)."'".(is_string($td)?' onchange="'.h($td).'"':"").">".optionlist($xd,$Y)."</select>";$J="";foreach($xd
  234. as$y=>$X)$J.="<label><input type='radio' name='".h($D)."' value='".h($y)."'".($y==$Y?" checked":"").">".h($X)."</label>";return$J;}function
  235. confirm($Ya=""){return" onclick=\"return confirm('".'Are you sure?'.($Ya?" (' + $Ya + ')":"")."');\"";}function
  236. print_fieldset($t,$Kc,$Nf=false,$ud=""){echo"<fieldset><legend><a href='#fieldset-$t' onclick=\"".h($ud)."return !toggle('fieldset-$t');\">$Kc</a></legend><div id='fieldset-$t'".($Nf?"":" class='hidden'").">\n";}function
  237. bold($Aa){return($Aa?" class='active'":"");}function
  238. odd($J=' class="odd"'){static$s=0;if(!$J)$s=-1;return($s++%
  239. 2?$J:'');}function
  240. js_escape($Q){return
  241. addcslashes($Q,"\r\n'\\/");}function
  242. json_row($y,$X=null){static$Xb=true;if($Xb)echo"{";if($y!=""){echo($Xb?"":",")."\n\t\"".addcslashes($y,"\r\n\"\\").'": '.($X!==null?'"'.addcslashes($X,"\r\n\"\\").'"':'undefined');$Xb=false;}else{echo"\n}\n";$Xb=true;}}function
  243. ini_bool($uc){$X=ini_get($uc);return(eregi('^(on|true|yes)$',$X)||(int)$X);}function
  244. sid(){static$J;if($J===null)$J=(SID&&!($_COOKIE&&ini_bool("session.use_cookies")));return$J;}function
  245. q($Q){global$f;return$f->quote($Q);}function
  246. get_vals($H,$Na=0){global$f;$J=array();$I=$f->query($H);if(is_object($I)){while($K=$I->fetch_row())$J[]=$K[$Na];}return$J;}function
  247. get_key_vals($H,$g=null){global$f;if(!is_object($g))$g=$f;$J=array();$I=$g->query($H);if(is_object($I)){while($K=$I->fetch_row())$J[$K[0]]=$K[1];}return$J;}function
  248. get_rows($H,$g=null,$j="<p class='error'>"){global$f;$Ua=(is_object($g)?$g:$f);$J=array();$I=$Ua->query($H);if(is_object($I)){while($K=$I->fetch_assoc())$J[]=$K;}elseif(!$I&&!is_object($g)&&$j&&defined("PAGE_HEADER"))echo$j.error()."\n";return$J;}function
  249. unique_array($K,$v){foreach($v
  250. as$u){if(ereg("PRIMARY|UNIQUE",$u["type"])){$J=array();foreach($u["columns"]as$y){if(!isset($K[$y]))continue
  251. 2;$J[$y]=$K[$y];}return$J;}}$J=array();foreach($K
  252. as$y=>$X){if(!preg_match('~^(COUNT\\((\\*|(DISTINCT )?`(?:[^`]|``)+`)\\)|(AVG|GROUP_CONCAT|MAX|MIN|SUM)\\(`(?:[^`]|``)+`\\))$~',$y))$J[$y]=$X;}return$J;}function
  253. where($Z){global$x;$J=array();foreach((array)$Z["where"]as$y=>$X)$J[]=idf_escape(bracket_escape($y,1)).(($x=="sql"&&ereg('\\.',$X))||$x=="mssql"?" LIKE ".exact_value(addcslashes($X,"%_\\")):" = ".exact_value($X));foreach((array)$Z["null"]as$y)$J[]=idf_escape($y)." IS NULL";return
  254. implode(" AND ",$J);}function
  255. where_check($X){parse_str($X,$Fa);remove_slashes(array(&$Fa));return
  256. where($Fa);}function
  257. where_link($s,$Na,$Y,$vd="="){return"&where%5B$s%5D%5Bcol%5D=".urlencode($Na)."&where%5B$s%5D%5Bop%5D=".urlencode(($Y!==null?$vd:"IS NULL"))."&where%5B$s%5D%5Bval%5D=".urlencode($Y);}function
  258. cookie($D,$Y){global$ba;$Kd=array($D,(ereg("\n",$Y)?"":$Y),time()+2592000,preg_replace('~\\?.*~','',$_SERVER["REQUEST_URI"]),"",$ba);if(version_compare(PHP_VERSION,'5.2.0')>=0)$Kd[]=true;return
  259. call_user_func_array('setcookie',$Kd);}function
  260. restart_session(){if(!ini_bool("session.use_cookies"))session_start();}function&get_session($y){return$_SESSION[$y][DRIVER][SERVER][$_GET["username"]];}function
  261. set_session($y,$X){$_SESSION[$y][DRIVER][SERVER][$_GET["username"]]=$X;}function
  262. auth_url($pb,$O,$If,$i=null){global$qb;preg_match('~([^?]*)\\??(.*)~',remove_from_uri(implode("|",array_keys($qb))."|username|".($i!==null?"db|":"").session_name()),$B);return"$B[1]?".(sid()?SID."&":"").($pb!="server"||$O!=""?urlencode($pb)."=".urlencode($O)."&":"")."username=".urlencode($If).($i!=""?"&db=".urlencode($i):"").($B[2]?"&$B[2]":"");}function
  263. is_ajax(){return($_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest");}function
  264. redirect($A,$Yc=null){if($Yc!==null){restart_session();$_SESSION["messages"][preg_replace('~^[^?]*~','',($A!==null?$A:$_SERVER["REQUEST_URI"]))][]=$Yc;}if($A!==null){if($A=="")$A=".";header("Location: $A");exit;}}function
  265. query_redirect($H,$A,$Yc,$ke=true,$Mb=true,$Sb=false){global$f,$j,$b;if($Mb)$Sb=!$f->query($H);$Ke="";if($H)$Ke=$b->messageQuery("$H;");if($Sb){$j=error().$Ke;return
  266. false;}if($ke)redirect($A,$Yc.$Ke);return
  267. true;}function
  268. queries($H=null){global$f;static$ie=array();if($H===null)return
  269. implode(";\n",$ie);$ie[]=(ereg(';$',$H)?"DELIMITER ;;\n$H;\nDELIMITER ":$H);return$f->query($H);}function
  270. apply_queries($H,$bf,$Hb='table'){foreach($bf
  271. as$S){if(!queries("$H ".$Hb($S)))return
  272. false;}return
  273. true;}function
  274. queries_redirect($A,$Yc,$ke){return
  275. query_redirect(queries(),$A,$Yc,$ke,false,!$ke);}function
  276. remove_from_uri($Jd=""){return
  277. substr(preg_replace("~(?<=[?&])($Jd".(SID?"":"|".session_name()).")=[^&]*&~",'',"$_SERVER[REQUEST_URI]&"),0,-1);}function
  278. pagination($E,$db){return" ".($E==$db?$E+1:'<a href="'.h(remove_from_uri("page").($E?"&page=$E":"")).'">'.($E+1)."</a>");}function
  279. get_file($y,$ib=false){$Ub=$_FILES[$y];if(!$Ub||$Ub["error"])return$Ub["error"];$J=file_get_contents($ib&&ereg('\\.gz$',$Ub["name"])?"compress.zlib://$Ub[tmp_name]":($ib&&ereg('\\.bz2$',$Ub["name"])?"compress.bzip2://$Ub[tmp_name]":$Ub["tmp_name"]));if($ib){$Le=substr($J,0,3);if(function_exists("iconv")&&ereg("^\xFE\xFF|^\xFF\xFE",$Le,$qe))$J=iconv("utf-16","utf-8",$J);elseif($Le=="\xEF\xBB\xBF")$J=substr($J,3);}return$J;}function
  280. upload_error($j){$Wc=($j==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):0);return($j?'Unable to upload a file.'.($Wc?" ".sprintf('Maximum allowed file size is %sB.',$Wc):""):'File does not exist.');}function
  281. repeat_pattern($F,$Lc){return
  282. str_repeat("$F{0,65535}",$Lc/65535)."$F{0,".($Lc
  283. %
  284. 65535)."}";}function
  285. is_utf8($X){return(preg_match('~~u',$X)&&!preg_match('~[\\0-\\x8\\xB\\xC\\xE-\\x1F]~',$X));}function
  286. shorten_utf8($Q,$Lc=80,$Re=""){if(!preg_match("(^(".repeat_pattern("[\t\r\n -\x{FFFF}]",$Lc).")($)?)u",$Q,$B))preg_match("(^(".repeat_pattern("[\t\r\n -~]",$Lc).")($)?)",$Q,$B);return
  287. h($B[1]).$Re.(isset($B[2])?"":"<i>...</i>");}function
  288. friendly_url($X){return
  289. preg_replace('~[^a-z0-9_]~i','-',$X);}function
  290. hidden_fields($fe,$rc=array()){while(list($y,$X)=each($fe)){if(is_array($X)){foreach($X
  291. as$Bc=>$W)$fe[$y."[$Bc]"]=$W;}elseif(!in_array($y,$rc))echo'<input type="hidden" name="'.h($y).'" value="'.h($X).'">';}}function
  292. hidden_fields_get(){echo(sid()?'<input type="hidden" name="'.session_name().'" value="'.h(session_id()).'">':''),(SERVER!==null?'<input type="hidden" name="'.DRIVER.'" value="'.h(SERVER).'">':""),'<input type="hidden" name="username" value="'.h($_GET["username"]).'">';}function
  293. column_foreign_keys($S){global$b;$J=array();foreach($b->foreignKeys($S)as$m){foreach($m["source"]as$X)$J[$X][]=$m;}return$J;}function
  294. enum_input($V,$ta,$k,$Y,$Ab=null){global$b;preg_match_all("~'((?:[^']|'')*)'~",$k["length"],$Rc);$J=($Ab!==null?"<label><input type='$V'$ta value='$Ab'".((is_array($Y)?in_array($Ab,$Y):$Y===0)?" checked":"")."><i>".'empty'."</i></label>":"");foreach($Rc[1]as$s=>$X){$X=stripcslashes(str_replace("''","'",$X));$Ga=(is_int($Y)?$Y==$s+1:(is_array($Y)?in_array($s+1,$Y):$Y===$X));$J.=" <label><input type='$V'$ta value='".($s+1)."'".($Ga?' checked':'').'>'.h($b->editVal($X,$k)).'</label>';}return$J;}function
  295. input($k,$Y,$p){global$yf,$b,$x;$D=h(bracket_escape($k["field"]));echo"<td class='function'>";$se=($x=="mssql"&&$k["auto_increment"]);if($se&&!$_POST["save"])$p=null;$q=(isset($_GET["select"])||$se?array("orig"=>'original'):array())+$b->editFunctions($k);$ta=" name='fields[$D]'";if($k["type"]=="enum")echo
  296. nbsp($q[""])."<td>".$b->editInput($_GET["edit"],$k,$ta,$Y);else{$Xb=0;foreach($q
  297. as$y=>$X){if($y===""||!$X)break;$Xb++;}$td=($Xb?" onchange=\"var f = this.form['function[".h(js_escape(bracket_escape($k["field"])))."]']; if ($Xb > f.selectedIndex) f.selectedIndex = $Xb;\"":"");$ta.=$td;echo(count($q)>1?html_select("function[$D]",$q,$p===null||in_array($p,$q)||isset($q[$p])?$p:"","functionChange(this);"):nbsp(reset($q))).'<td>';$wc=$b->editInput($_GET["edit"],$k,$ta,$Y);if($wc!="")echo$wc;elseif($k["type"]=="set"){preg_match_all("~'((?:[^']|'')*)'~",$k["length"],$Rc);foreach($Rc[1]as$s=>$X){$X=stripcslashes(str_replace("''","'",$X));$Ga=(is_int($Y)?($Y>>$s)&1:in_array($X,explode(",",$Y),true));echo" <label><input type='checkbox' name='fields[$D][$s]' value='".(1<<$s)."'".($Ga?' checked':'')."$td>".h($b->editVal($X,$k)).'</label>';}}elseif(ereg('blob|bytea|raw|file',$k["type"])&&ini_bool("file_uploads"))echo"<input type='file' name='fields-$D'$td>";elseif(ereg('text|lob',$k["type"]))echo"<textarea ".($x!="sqlite"||ereg("\n",$Y)?"cols='50' rows='12'":"cols='30' rows='1' style='height: 1.2em;'")."$ta>".h($Y).'</textarea>';else{$Xc=(!ereg('int',$k["type"])&&preg_match('~^(\\d+)(,(\\d+))?$~',$k["length"],$B)?((ereg("binary",$k["type"])?2:1)*$B[1]+($B[3]?1:0)+($B[2]&&!$k["unsigned"]?1:0)):($yf[$k["type"]]?$yf[$k["type"]]+($k["unsigned"]?0:1):0));echo"<input value='".h($Y)."'".($Xc?" maxlength='$Xc'":"").(ereg('char|binary',$k["type"])&&$Xc>20?" size='40'":"")."$ta>";}}}function
  298. process_input($k){global$b;$qc=bracket_escape($k["field"]);$p=$_POST["function"][$qc];$Y=$_POST["fields"][$qc];if($k["type"]=="enum"){if($Y==-1)return
  299. false;if($Y=="")return"NULL";return+$Y;}if($k["auto_increment"]&&$Y=="")return
  300. null;if($p=="orig")return($k["on_update"]=="CURRENT_TIMESTAMP"?idf_escape($k["field"]):false);if($p=="NULL")return"NULL";if($k["type"]=="set")return
  301. array_sum((array)$Y);if(ereg('blob|bytea|raw|file',$k["type"])&&ini_bool("file_uploads")){$Ub=get_file("fields-$qc");if(!is_string($Ub))return
  302. false;return
  303. q($Ub);}return$b->processInput($k,$Y,$p);}function
  304. search_tables(){global$b,$f;$_GET["where"][0]["op"]="LIKE %%";$_GET["where"][0]["val"]=$_POST["query"];$o=false;foreach(table_status()as$S=>$T){$D=$b->tableName($T);if(isset($T["Engine"])&&$D!=""&&(!$_POST["tables"]||in_array($S,$_POST["tables"]))){$I=$f->query("SELECT".limit("1 FROM ".table($S)," WHERE ".implode(" AND ",$b->selectSearchProcess(fields($S),array())),1));if($I->fetch_row()){if(!$o){echo"<ul>\n";$o=true;}echo"<li><a href='".h(ME."select=".urlencode($S)."&where[0][op]=".urlencode($_GET["where"][0]["op"])."&where[0][val]=".urlencode($_GET["where"][0]["val"]))."'>$D</a>\n";}}}echo($o?"</ul>":"<p class='message'>".'No tables.')."\n";}function
  305. dump_headers($pc,$fd=false){global$b;$J=$b->dumpHeaders($pc,$fd);$Hd=$_POST["output"];if($Hd!="text")header("Content-Disposition: attachment; filename=".$b->dumpFilename($pc).".$J".($Hd!="file"&&!ereg('[^0-9a-z]',$Hd)?".$Hd":""));session_write_close();return$J;}function
  306. dump_csv($K){foreach($K
  307. as$y=>$X){if(preg_match("~[\"\n,;\t]~",$X)||$X==="")$K[$y]='"'.str_replace('"','""',$X).'"';}echo
  308. implode(($_POST["format"]=="csv"?",":($_POST["format"]=="tsv"?"\t":";")),$K)."\r\n";}function
  309. apply_sql_function($p,$Na){return($p?($p=="unixepoch"?"DATETIME($Na, '$p')":($p=="count distinct"?"COUNT(DISTINCT ":strtoupper("$p("))."$Na)"):$Na);}function
  310. password_file(){$mb=ini_get("upload_tmp_dir");if(!$mb){if(function_exists('sys_get_temp_dir'))$mb=sys_get_temp_dir();else{$Vb=@tempnam("","");if(!$Vb)return
  311. false;$mb=dirname($Vb);unlink($Vb);}}$Vb="$mb/adminer.key";$J=@file_get_contents($Vb);if($J)return$J;$dc=@fopen($Vb,"w");if($dc){$J=md5(uniqid(mt_rand(),true));fwrite($dc,$J);fclose($dc);}return$J;}function
  312. is_mail($yb){$sa='[-a-z0-9!#$%&\'*+/=?^_`{|}~]';$ob='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';$F="$sa+(\\.$sa+)*@($ob?\\.)+$ob";return
  313. preg_match("(^$F(,\\s*$F)*\$)i",$yb);}function
  314. is_url($Q){$ob='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';return(preg_match("~^(https?)://($ob?\\.)+$ob(:\\d+)?(/.*)?(\\?.*)?(#.*)?\$~i",$Q,$B)?strtolower($B[1]):"");}global$b,$f,$qb,$wb,$Eb,$j,$q,$jc,$ba,$vc,$x,$ca,$Ec,$sd,$Pe,$U,$sf,$yf,$Ef,$ga;if(!$_SERVER["REQUEST_URI"])$_SERVER["REQUEST_URI"]=$_SERVER["ORIG_PATH_INFO"];if(!strpos($_SERVER["REQUEST_URI"],'?')&&$_SERVER["QUERY_STRING"]!="")$_SERVER["REQUEST_URI"].="?$_SERVER[QUERY_STRING]";$ba=$_SERVER["HTTPS"]&&strcasecmp($_SERVER["HTTPS"],"off");@ini_set("session.use_trans_sid",false);if(!defined("SID")){session_name("adminer_sid");$Kd=array(0,preg_replace('~\\?.*~','',$_SERVER["REQUEST_URI"]),"",$ba);if(version_compare(PHP_VERSION,'5.2.0')>=0)$Kd[]=true;call_user_func_array('session_set_cookie_params',$Kd);session_start();}remove_slashes(array(&$_GET,&$_POST,&$_COOKIE),$Wb);if(function_exists("set_magic_quotes_runtime"))set_magic_quotes_runtime(false);@set_time_limit(0);@ini_set("zend.ze1_compatibility_mode",false);@ini_set("precision",20);function
  315. get_lang(){return'en';}function
  316. lang($rf,$ld){$Ud=($ld==1?0:1);$rf=str_replace("%d","%s",$rf[$Ud]);$ld=number_format($ld,0,".",',');return
  317. sprintf($rf,$ld);}if(extension_loaded('pdo')){class
  318. Min_PDO
  319. extends
  320. PDO{var$_result,$server_info,$affected_rows,$error;function
  321. __construct(){global$b;$Ud=array_search("",$b->operators);if($Ud!==false)unset($b->operators[$Ud]);}function
  322. dsn($tb,$If,$Rd,$Lb='auth_error'){set_exception_handler($Lb);parent::__construct($tb,$If,$Rd);restore_exception_handler();$this->setAttribute(13,array('Min_PDOStatement'));$this->server_info=$this->getAttribute(4);}function
  323. query($H,$zf=false){$I=parent::query($H);if(!$I){$Fb=$this->errorInfo();$this->error=$Fb[2];return
  324. false;}$this->store_result($I);return$I;}function
  325. multi_query($H){return$this->_result=$this->query($H);}function
  326. store_result($I=null){if(!$I)$I=$this->_result;if($I->columnCount()){$I->num_rows=$I->rowCount();return$I;}$this->affected_rows=$I->rowCount();return
  327. true;}function
  328. next_result(){$this->_result->_offset=0;return@$this->_result->nextRowset();}function
  329. result($H,$k=0){$I=$this->query($H);if(!$I)return
  330. false;$K=$I->fetch();return$K[$k];}}class
  331. Min_PDOStatement
  332. extends
  333. PDOStatement{var$_offset=0,$num_rows;function
  334. fetch_assoc(){return$this->fetch(2);}function
  335. fetch_row(){return$this->fetch(3);}function
  336. fetch_field(){$K=(object)$this->getColumnMeta($this->_offset++);$K->orgtable=$K->table;$K->orgname=$K->name;$K->charsetnr=(in_array("blob",(array)$K->flags)?63:0);return$K;}}}$qb=array();$qb=array("server"=>"MySQL")+$qb;if(!defined("DRIVER")){$Xd=array("MySQLi","MySQL","PDO_MySQL");define("DRIVER","server");if(extension_loaded("mysqli")){class
  337. Min_DB
  338. extends
  339. MySQLi{var$extension="MySQLi";function
  340. Min_DB(){parent::init();}function
  341. connect($O,$If,$Rd){mysqli_report(MYSQLI_REPORT_OFF);list($nc,$Td)=explode(":",$O,2);$J=@$this->real_connect(($O!=""?$nc:ini_get("mysqli.default_host")),($O.$If!=""?$If:ini_get("mysqli.default_user")),($O.$If.$Rd!=""?$Rd:ini_get("mysqli.default_pw")),null,(is_numeric($Td)?$Td:ini_get("mysqli.default_port")),(!is_numeric($Td)?$Td:null));if($J){if(method_exists($this,'set_charset'))$this->set_charset("utf8");else$this->query("SET NAMES utf8");}return$J;}function
  342. result($H,$k=0){$I=$this->query($H);if(!$I)return
  343. false;$K=$I->fetch_array();return$K[$k];}function
  344. quote($Q){return"'".$this->escape_string($Q)."'";}}}elseif(extension_loaded("mysql")&&!(ini_get("sql.safe_mode")&&extension_loaded("pdo_mysql"))){class
  345. Min_DB{var$extension="MySQL",$server_info,$affected_rows,$error,$_link,$_result;function
  346. connect($O,$If,$Rd){$this->_link=@mysql_connect(($O!=""?$O:ini_get("mysql.default_host")),("$O$If"!=""?$If:ini_get("mysql.default_user")),("$O$If$Rd"!=""?$Rd:ini_get("mysql.default_password")),true,131072);if($this->_link){$this->server_info=mysql_get_server_info($this->_link);if(function_exists('mysql_set_charset'))mysql_set_charset("utf8",$this->_link);else$this->query("SET NAMES utf8");}else$this->error=mysql_error();return(bool)$this->_link;}function
  347. quote($Q){return"'".mysql_real_escape_string($Q,$this->_link)."'";}function
  348. select_db($gb){return
  349. mysql_select_db($gb,$this->_link);}function
  350. query($H,$zf=false){$I=@($zf?mysql_unbuffered_query($H,$this->_link):mysql_query($H,$this->_link));if(!$I){$this->error=mysql_error($this->_link);return
  351. false;}if($I===true){$this->affected_rows=mysql_affected_rows($this->_link);$this->info=mysql_info($this->_link);return
  352. true;}return
  353. new
  354. Min_Result($I);}function
  355. multi_query($H){return$this->_result=$this->query($H);}function
  356. store_result(){return$this->_result;}function
  357. next_result(){return
  358. false;}function
  359. result($H,$k=0){$I=$this->query($H);if(!$I||!$I->num_rows)return
  360. false;return
  361. mysql_result($I->_result,0,$k);}}class
  362. Min_Result{var$num_rows,$_result,$_offset=0;function
  363. Min_Result($I){$this->_result=$I;$this->num_rows=mysql_num_rows($I);}function
  364. fetch_assoc(){return
  365. mysql_fetch_assoc($this->_result);}function
  366. fetch_row(){return
  367. mysql_fetch_row($this->_result);}function
  368. fetch_field(){$J=mysql_fetch_field($this->_result,$this->_offset++);$J->orgtable=$J->table;$J->orgname=$J->name;$J->charsetnr=($J->blob?63:0);return$J;}function
  369. __destruct(){mysql_free_result($this->_result);}}}elseif(extension_loaded("pdo_mysql")){class
  370. Min_DB
  371. extends
  372. Min_PDO{var$extension="PDO_MySQL";function
  373. connect($O,$If,$Rd){$this->dsn("mysql:host=".str_replace(":",";unix_socket=",preg_replace('~:(\\d)~',';port=\\1',$O)),$If,$Rd);$this->query("SET NAMES utf8");return
  374. true;}function
  375. select_db($gb){return$this->query("USE ".idf_escape($gb));}function
  376. query($H,$zf=false){$this->setAttribute(1000,!$zf);return
  377. parent::query($H,$zf);}}}function
  378. idf_escape($qc){return"`".str_replace("`","``",$qc)."`";}function
  379. table($qc){return
  380. idf_escape($qc);}function
  381. connect(){global$b;$f=new
  382. Min_DB;$cb=$b->credentials();if($f->connect($cb[0],$cb[1],$cb[2])){$f->query("SET sql_quote_show_create = 1, autocommit = 1");return$f;}$J=$f->error;if(function_exists('iconv')&&!is_utf8($J)&&strlen($M=iconv("windows-1250","utf-8",$J))>strlen($J))$J=$M;return$J;}function
  383. get_databases($Yb=true){global$f;$J=&get_session("dbs");if($J===null){if($Yb){restart_session();ob_flush();flush();}$J=get_vals($f->server_info>=5?"SELECT SCHEMA_NAME FROM information_schema.SCHEMATA":"SHOW DATABASES");}return$J;}function
  384. limit($H,$Z,$z,$nd=0,$Ee=" "){return" $H$Z".($z!==null?$Ee."LIMIT $z".($nd?" OFFSET $nd":""):"");}function
  385. limit1($H,$Z){return
  386. limit($H,$Z,1);}function
  387. db_collation($i,$d){global$f;$J=null;$Za=$f->result("SHOW CREATE DATABASE ".idf_escape($i),1);if(preg_match('~ COLLATE ([^ ]+)~',$Za,$B))$J=$B[1];elseif(preg_match('~ CHARACTER SET ([^ ]+)~',$Za,$B))$J=$d[$B[1]][-1];return$J;}function
  388. engines(){$J=array();foreach(get_rows("SHOW ENGINES")as$K){if(ereg("YES|DEFAULT",$K["Support"]))$J[]=$K["Engine"];}return$J;}function
  389. logged_user(){global$f;return$f->result("SELECT USER()");}function
  390. tables_list(){global$f;return
  391. get_key_vals("SHOW".($f->server_info>=5?" FULL":"")." TABLES");}function
  392. count_tables($h){$J=array();foreach($h
  393. as$i)$J[$i]=count(get_vals("SHOW TABLES IN ".idf_escape($i)));return$J;}function
  394. table_status($D=""){$J=array();foreach(get_rows("SHOW TABLE STATUS".($D!=""?" LIKE ".q(addcslashes($D,"%_")):""))as$K){if($K["Engine"]=="InnoDB")$K["Comment"]=preg_replace('~(?:(.+); )?InnoDB free: .*~','\\1',$K["Comment"]);if(!isset($K["Rows"]))$K["Comment"]="";if($D!="")return$K;$J[$K["Name"]]=$K;}return$J;}function
  395. is_view($T){return!isset($T["Rows"]);}function
  396. fk_support($T){return
  397. eregi("InnoDB|IBMDB2I",$T["Engine"]);}function
  398. fields($S){$J=array();foreach(get_rows("SHOW FULL COLUMNS FROM ".table($S))as$K){preg_match('~^([^( ]+)(?:\\((.+)\\))?( unsigned)?( zerofill)?$~',$K["Type"],$B);$J[$K["Field"]]=array("field"=>$K["Field"],"full_type"=>$K["Type"],"type"=>$B[1],"length"=>$B[2],"unsigned"=>ltrim($B[3].$B[4]),"default"=>($K["Default"]!=""||ereg("char",$B[1])?$K["Default"]:null),"null"=>($K["Null"]=="YES"),"auto_increment"=>($K["Extra"]=="auto_increment"),"on_update"=>(eregi('^on update (.+)',$K["Extra"],$B)?$B[1]:""),"collation"=>$K["Collation"],"privileges"=>array_flip(explode(",",$K["Privileges"])),"comment"=>$K["Comment"],"primary"=>($K["Key"]=="PRI"),);}return$J;}function
  399. indexes($S,$g=null){$J=array();foreach(get_rows("SHOW INDEX FROM ".table($S),$g)as$K){$J[$K["Key_name"]]["type"]=($K["Key_name"]=="PRIMARY"?"PRIMARY":($K["Index_type"]=="FULLTEXT"?"FULLTEXT":($K["Non_unique"]?"INDEX":"UNIQUE")));$J[$K["Key_name"]]["columns"][]=$K["Column_name"];$J[$K["Key_name"]]["lengths"][]=$K["Sub_part"];}return$J;}function
  400. foreign_keys($S){global$f,$sd;static$F='`(?:[^`]|``)+`';$J=array();$ab=$f->result("SHOW CREATE TABLE ".table($S),1);if($ab){preg_match_all("~CONSTRAINT ($F) FOREIGN KEY \\(((?:$F,? ?)+)\\) REFERENCES ($F)(?:\\.($F))? \\(((?:$F,? ?)+)\\)(?: ON DELETE ($sd))?(?: ON UPDATE ($sd))?~",$ab,$Rc,PREG_SET_ORDER);foreach($Rc
  401. as$B){preg_match_all("~$F~",$B[2],$Ie);preg_match_all("~$F~",$B[5],$ef);$J[idf_unescape($B[1])]=array("db"=>idf_unescape($B[4]!=""?$B[3]:$B[4]),"table"=>idf_unescape($B[4]!=""?$B[4]:$B[3]),"source"=>array_map('idf_unescape',$Ie[0]),"target"=>array_map('idf_unescape',$ef[0]),"on_delete"=>($B[6]?$B[6]:"RESTRICT"),"on_update"=>($B[7]?$B[7]:"RESTRICT"),);}}return$J;}function
  402. view($D){global$f;return
  403. array("select"=>preg_replace('~^(?:[^`]|`[^`]*`)*\\s+AS\\s+~isU','',$f->result("SHOW CREATE VIEW ".table($D),1)));}function
  404. collations(){$J=array();foreach(get_rows("SHOW COLLATION")as$K){if($K["Default"])$J[$K["Charset"]][-1]=$K["Collation"];else$J[$K["Charset"]][]=$K["Collation"];}ksort($J);foreach($J
  405. as$y=>$X)asort($J[$y]);return$J;}function
  406. information_schema($i){global$f;return($f->server_info>=5&&$i=="information_schema");}function
  407. error(){global$f;return
  408. h(preg_replace('~^You have an error.*syntax to use~U',"Syntax error",$f->error));}function
  409. error_line(){global$f;if(ereg(' at line ([0-9]+)$',$f->error,$qe))return$qe[1]-1;}function
  410. exact_value($X){return
  411. q($X)." COLLATE utf8_bin";}function
  412. create_database($i,$La){set_session("dbs",null);return
  413. queries("CREATE DATABASE ".idf_escape($i).($La?" COLLATE ".q($La):""));}function
  414. drop_databases($h){set_session("dbs",null);return
  415. apply_queries("DROP DATABASE",$h,'idf_escape');}function
  416. rename_database($D,$La){if(create_database($D,$La)){$re=array();foreach(tables_list()as$S=>$V)$re[]=table($S)." TO ".idf_escape($D).".".table($S);if(!$re||queries("RENAME TABLE ".implode(", ",$re))){queries("DROP DATABASE ".idf_escape(DB));return
  417. true;}}return
  418. false;}function
  419. auto_increment(){$va=" PRIMARY KEY";if($_GET["create"]!=""&&$_POST["auto_increment_col"]){foreach(indexes($_GET["create"])as$u){if(in_array($_POST["fields"][$_POST["auto_increment_col"]]["orig"],$u["columns"],true)){$va="";break;}if($u["type"]=="PRIMARY")$va=" UNIQUE";}}return" AUTO_INCREMENT$va";}function
  420. alter_table($S,$D,$l,$Zb,$Qa,$Cb,$La,$ua,$Od){$ra=array();foreach($l
  421. as$k)$ra[]=($k[1]?($S!=""?($k[0]!=""?"CHANGE ".idf_escape($k[0]):"ADD"):" ")." ".implode($k[1]).($S!=""?" $k[2]":""):"DROP ".idf_escape($k[0]));$ra=array_merge($ra,$Zb);$Me="COMMENT=".q($Qa).($Cb?" ENGINE=".q($Cb):"").($La?" COLLATE ".q($La):"").($ua!=""?" AUTO_INCREMENT=$ua":"").$Od;if($S=="")return
  422. queries("CREATE TABLE ".table($D)." (\n".implode(",\n",$ra)."\n) $Me");if($S!=$D)$ra[]="RENAME TO ".table($D);$ra[]=$Me;return
  423. queries("ALTER TABLE ".table($S)."\n".implode(",\n",$ra));}function
  424. alter_indexes($S,$ra){foreach($ra
  425. as$y=>$X)$ra[$y]=($X[2]=="DROP"?"\nDROP INDEX ".idf_escape($X[1]):"\nADD $X[0] ".($X[0]=="PRIMARY"?"KEY ":"").($X[1]!=""?idf_escape($X[1])." ":"").$X[2]);return
  426. queries("ALTER TABLE ".table($S).implode(",",$ra));}function
  427. truncate_tables($bf){return
  428. apply_queries("TRUNCATE TABLE",$bf);}function
  429. drop_views($Mf){return
  430. queries("DROP VIEW ".implode(", ",array_map('table',$Mf)));}function
  431. drop_tables($bf){return
  432. queries("DROP TABLE ".implode(", ",array_map('table',$bf)));}function
  433. move_tables($bf,$Mf,$ef){$re=array();foreach(array_merge($bf,$Mf)as$S)$re[]=table($S)." TO ".idf_escape($ef).".".table($S);return
  434. queries("RENAME TABLE ".implode(", ",$re));}function
  435. copy_tables($bf,$Mf,$ef){queries("SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'");foreach($bf
  436. as$S){$D=($ef==DB?table("copy_$S"):idf_escape($ef).".".table($S));if(!queries("DROP TABLE IF EXISTS $D")||!queries("CREATE TABLE $D LIKE ".table($S))||!queries("INSERT INTO $D SELECT * FROM ".table($S)))return
  437. false;}foreach($Mf
  438. as$S){$D=($ef==DB?table("copy_$S"):idf_escape($ef).".".table($S));$Lf=view($S);if(!queries("DROP VIEW IF EXISTS $D")||!queries("CREATE VIEW $D AS $Lf[select]"))return
  439. false;}return
  440. true;}function
  441. trigger($D){if($D=="")return
  442. array();$L=get_rows("SHOW TRIGGERS WHERE `Trigger` = ".q($D));return
  443. reset($L);}function
  444. triggers($S){$J=array();foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($S,"%_")))as$K)$J[$K["Trigger"]]=array($K["Timing"],$K["Event"]);return$J;}function
  445. trigger_options(){return
  446. array("Timing"=>array("BEFORE","AFTER"),"Type"=>array("FOR EACH ROW"),);}function
  447. routine($D,$V){global$f,$Eb,$vc,$yf;$pa=array("bool","boolean","integer","double precision","real","dec","numeric","fixed","national char","national varchar");$xf="((".implode("|",array_merge(array_keys($yf),$pa)).")\\b(?:\\s*\\(((?:[^'\")]*|$Eb)+)\\))?\\s*(zerofill\\s*)?(unsigned(?:\\s+zerofill)?)?)(?:\\s*(?:CHARSET|CHARACTER\\s+SET)\\s*['\"]?([^'\"\\s]+)['\"]?)?";$F="\\s*(".($V=="FUNCTION"?"":$vc).")?\\s*(?:`((?:[^`]|``)*)`\\s*|\\b(\\S+)\\s+)$xf";$Za=$f->result("SHOW CREATE $V ".idf_escape($D),2);preg_match("~\\(((?:$F\\s*,?)*)\\)\\s*".($V=="FUNCTION"?"RETURNS\\s+$xf\\s+":"")."(.*)~is",$Za,$B);$l=array();preg_match_all("~$F\\s*,?~is",$B[1],$Rc,PREG_SET_ORDER);foreach($Rc
  448. as$Jd){$D=str_replace("``","`",$Jd[2]).$Jd[3];$l[]=array("field"=>$D,"type"=>strtolower($Jd[5]),"length"=>preg_replace_callback("~$Eb~s",'normalize_enum',$Jd[6]),"unsigned"=>strtolower(preg_replace('~\\s+~',' ',trim("$Jd[8] $Jd[7]"))),"full_type"=>$Jd[4],"inout"=>strtoupper($Jd[1]),"collation"=>strtolower($Jd[9]),);}if($V!="FUNCTION")return
  449. array("fields"=>$l,"definition"=>$B[11]);return
  450. array("fields"=>$l,"returns"=>array("type"=>$B[12],"length"=>$B[13],"unsigned"=>$B[15],"collation"=>$B[16]),"definition"=>$B[17],"language"=>"SQL",);}function
  451. routines(){return
  452. get_rows("SELECT * FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = ".q(DB));}function
  453. routine_languages(){return
  454. array();}function
  455. begin(){return
  456. queries("BEGIN");}function
  457. insert_into($S,$P){return
  458. queries("INSERT INTO ".table($S)." (".implode(", ",array_keys($P)).")\nVALUES (".implode(", ",$P).")");}function
  459. insert_update($S,$P,$ae){foreach($P
  460. as$y=>$X)$P[$y]="$y = $X";$Ff=implode(", ",$P);return
  461. queries("INSERT INTO ".table($S)." SET $Ff ON DUPLICATE KEY UPDATE $Ff");}function
  462. last_id(){global$f;return$f->result("SELECT LAST_INSERT_ID()");}function
  463. explain($f,$H){return$f->query("EXPLAIN $H");}function
  464. found_rows($T,$Z){return($Z||$T["Engine"]!="InnoDB"?null:$T["Rows"]);}functi

Large files files are truncated, but you can click here to view the full file