PageRenderTime 27ms CodeModel.GetById 26ms RepoModel.GetById 1ms app.codeStats 0ms

/Quản lý website các món ăn và ẩm thực php/bbqvietnam.com/images/banners/msd1.24stable/sql.php

https://gitlab.com/phamngsinh/baitaplon_sinhvien
PHP | 302 lines | 257 code | 28 blank | 17 comment | 55 complexity | 2b92fffd8218982b659aab9ec6865598 MD5 | raw file
  1. <?php
  2. if (!@ob_start("ob_gzhandler")) @ob_start();
  3. $download=(isset($_POST['f_export_submit'])&&(isset($_POST['f_export_sendresult'])&&$_POST['f_export_sendresult']==1));
  4. include ('./inc/header.php');
  5. include ('language/'.$config['language'].'/lang.php');
  6. include ('language/'.$config['language'].'/lang_sql.php');
  7. include ('./inc/functions_sql.php');
  8. include ('./'.$config['files']['parameter']);
  9. include ('./inc/template.php');
  10. include ('./inc/define_icons.php');
  11. $key='';
  12. // stripslashes and trimming is done in runtime.php which is included and executet above
  13. if (isset($_GET['rk']))
  14. {
  15. $rk=urldecode($_GET['rk']);
  16. $key=urldecode($rk);
  17. if (!$rk=@unserialize($key)) $rk=$key;
  18. }
  19. else
  20. $rk='';
  21. $mode=isset($_GET['mode']) ? $_GET['mode'] : '';
  22. if (isset($_GET['recordkey']))
  23. {
  24. $recordkey=$_GET['recordkey'];
  25. $key=isset($_GET['recordkey']) ? urldecode($recordkey) : $recordkey;
  26. if (!$recordkey=@unserialize(urldecode($key))) $recordkey=urldecode($key);
  27. }
  28. if (isset($_POST['recordkey'])) $recordkey=urldecode($_POST['recordkey']);
  29. $context=(!isset($_GET['context'])) ? 0 : $_GET['context'];
  30. $context=(!isset($_POST['context'])) ? $context : $_POST['context'];
  31. if (!$download)
  32. {
  33. echo MSDHeader();
  34. ReadSQL();
  35. echo '<script language="JavaScript" type="text/javascript">
  36. var auswahl = "document.getElementsByName(\"f_export_tables[]\")[0]";
  37. var msg1="'.$lang['L_SQL_NOTABLESSELECTED'].'";
  38. </script>';
  39. }
  40. //Variabeln
  41. $mysql_help_ref='http://dev.mysql.com/doc/';
  42. $mysql_errorhelp_ref='http://dev.mysql.com/doc/mysql/en/error-handling.html';
  43. $no_order=false;
  44. $tdcompact=(isset($_GET['tdc'])) ? $_GET['tdc'] : $config['interface_table_compact'];
  45. $db=(!isset($_GET['db'])) ? $databases['db_actual'] : $_GET['db'];
  46. $dbid=(!isset($_GET['dbid'])) ? $databases['db_selected_index'] : $_GET['dbid'];
  47. $context=(!isset($_GET['context'])) ? 0 : $_GET['context'];
  48. $context=(!isset($_POST['context'])) ? $context : $_POST['context'];
  49. $tablename=(!isset($_GET['tablename'])) ? '' : $_GET['tablename'];
  50. $limitstart=(isset($_POST['limitstart'])) ? intval($_POST['limitstart']) : 0;
  51. if (isset($_GET['limitstart'])) $limitstart=intval($_GET['limitstart']);
  52. $orderdir=(!isset($_GET['orderdir'])) ? '' : $_GET['orderdir'];
  53. $order=(!isset($_GET['order'])) ? '' : $_GET['order'];
  54. $sqlconfig=(isset($_GET['sqlconfig'])) ? 1 : 0;
  55. $norder=($orderdir=="DESC") ? 'ASC' : 'DESC';
  56. $sql['order_statement']=($order!='') ? ' ORDER BY `'.$order.'` '.$norder : '';
  57. $sql['sql_statement']=(isset($_GET['sql_statement'])) ? urldecode($_GET['sql_statement']) : '';
  58. if (isset($_POST['sql_statement'])) $sql['sql_statement']=$_POST['sql_statement'];
  59. $showtables=(!isset($_GET['showtables'])) ? 0 : $_GET['showtables'];
  60. $limit=$add_sql='';
  61. $bb=(isset($_GET['bb'])) ? $_GET['bb'] : -1;
  62. if (isset($_POST['tablename'])) $tablename=$_POST['tablename'];
  63. $search=(isset($_GET['search'])) ? $_GET['search'] : 0;
  64. //SQL-Statement geposted
  65. if (isset($_POST['execsql']))
  66. {
  67. $sql['sql_statement']=(isset($_POST['sqltextarea'])) ? $_POST['sqltextarea'] : '';
  68. $db=$_POST['db'];
  69. $dbid=$_POST['dbid'];
  70. $tablename=$_POST['tablename'];
  71. if (isset($_POST['tablecombo'])&&$_POST['tablecombo']>'')
  72. {
  73. $sql['sql_statement']=$_POST['tablecombo'];
  74. $tablename=ExtractTablenameFromSQL($sql['sql_statement']);
  75. }
  76. if (isset($_POST['sqltextarea'])&&$_POST['sqltextarea']>'') $tablename=ExtractTablenameFromSQL($_POST['sqltextarea']);
  77. if ($tablename=='') $tablename=ExtractTablenameFromSQL($sql['sql_statement']);
  78. }
  79. if ($sql['sql_statement']=='')
  80. {
  81. if ($tablename!=''&&$showtables==0)
  82. {
  83. $sql['sql_statement']="SELECT * FROM `$tablename`";
  84. }
  85. else
  86. {
  87. $sql['sql_statement']="SHOW TABLE STATUS FROM `$db`";
  88. $showtables=1;
  89. }
  90. }
  91. //sql-type
  92. $sql_to_display_data=0;
  93. $Anzahl_SQLs=getCountSQLStatements($sql['sql_statement']);
  94. $sql_to_display_data=sqlReturnsRecords($sql['sql_statement']);
  95. if ($Anzahl_SQLs>1) $sql_to_display_data=0;
  96. if ($sql_to_display_data==1)
  97. {
  98. //nur ein SQL-Statement
  99. $limitende=($limitstart+$config['sql_limit']);
  100. //Darf editiert werden?
  101. $no_edit=(strtoupper(substr($sql['sql_statement'],0,6))!="SELECT"||$showtables==1||preg_match('@^((-- |#)[^\n]*\n|/\*.*?\*/)*(UNION|JOIN)@im',$sql['sql_statement']));
  102. if ($no_edit) $no_order=true;
  103. //Darf sortiert werden?
  104. $op=strpos(strtoupper($sql['sql_statement'])," ORDER ");
  105. if ($op>0)
  106. {
  107. //is order by last ?
  108. $sql['order_statement']=substr($sql['sql_statement'],$op);
  109. if (strpos($sql['order_statement'],')')>0) $sql['order_statement']='';
  110. else
  111. $sql['sql_statement']=substr($sql['sql_statement'],0,$op);
  112. }
  113. }
  114. if (isset($_POST['tableselect'])&&$_POST['tableselect']!='1') $tablename=$_POST['tableselect'];
  115. MSD_mysql_connect();
  116. mysql_select_db($db,$config['dbconnection']);
  117. ///*** EDIT / UPDATES / INSERTS ***///
  118. ///*** ***///
  119. // handle update action after submitting it
  120. if (isset($_POST['update'])||isset($_GET['update']))
  121. {
  122. GetPostParams();
  123. $f=explode('|',$_POST['feldnamen']);
  124. $sqlu='UPDATE `'.$_POST['db'].'`.`'.$tablename.'` SET ';
  125. for ($i=0; $i<count($f); $i++)
  126. {
  127. $index=isset($_POST[$f[$i]]) ? $f[$i] : correct_post_index($f[$i]);
  128. // Check if field is set to null
  129. if (isset($_POST['null_'.$index]))
  130. {
  131. // Yes, set it to NULL in Querystring
  132. $sqlu.='`'.$f[$i].'`=NULL, ';
  133. }
  134. else
  135. $sqlu.='`'.$f[$i].'`=\''.db_escape(convert_to_latin1($_POST[$index])).'\', ';
  136. }
  137. $sqlu=substr($sqlu,0,strlen($sqlu)-2).' WHERE '.$recordkey;
  138. $res=MSD_query($sqlu);
  139. $msg='<p class="success">'.$lang['L_SQL_RECORDUPDATED'].'</p>';
  140. if (isset($mode)&&$mode=='searchedit') $search=1;
  141. $sql_to_display_data=1;
  142. }
  143. // handle insert action after submitting it
  144. if (isset($_POST['insert']))
  145. {
  146. GetPostParams();
  147. $f=explode('|',$_POST['feldnamen']);
  148. $sqlu='INSERT INTO `'.$tablename.'` SET ';
  149. for ($i=0; $i<count($f); $i++)
  150. {
  151. $index=isset($_POST[$f[$i]]) ? $f[$i] : correct_post_index($f[$i]);
  152. if (isset($_POST['null_'.$index]))
  153. {
  154. // Yes, set it to NULL in Querystring
  155. $sqlu.='`'.$f[$i].'`=NULL, ';
  156. }
  157. else
  158. $sqlu.='`'.$f[$i].'`=\''.db_escape(convert_to_latin1($_POST[$index])).'\', ';
  159. }
  160. $sqlu=substr($sqlu,0,strlen($sqlu)-2);
  161. $res=MSD_query($sqlu);
  162. $msg='<p class="success">'.$lang['L_SQL_RECORDINSERTED'].'</p>';
  163. $sql_to_display_data=1;
  164. }
  165. if (isset($_POST['cancel'])) GetPostParams();
  166. //Tabellenansicht
  167. $showtables=(substr(strtoupper($sql['sql_statement']),0,10)=='SHOW TABLE') ? 1 : 0;
  168. $tabellenansicht=(substr(strtoupper($sql['sql_statement']),0,5)=='SHOW ') ? 1 : 0;
  169. if (!isset($limitstart)) $limitstart=0;
  170. $limitende=$config['sql_limit'];
  171. if (strtolower(substr($sql['sql_statement'],0,6))=='select') $limit=' LIMIT '.$limitstart.', '.$limitende.';';
  172. $params="sql.php?db=".$db."&amp;tablename=".$tablename."&amp;dbid=".$dbid.'&amp;context='.$context.'&amp;sql_statement='.urlencode($sql['sql_statement']).'&amp;tdc='.$tdcompact.'&amp;showtables='.$showtables;
  173. if ($order!="") $params.="&amp;order=".$order."&amp;orderdir=".$orderdir.'&amp;context='.$context;
  174. if ($bb>-1) $params.="&amp;bb=".$bb;
  175. $aus=headline($lang['L_SQL_BROWSER']);
  176. if ($search==0&&!$download)
  177. {
  178. echo $aus;
  179. $aus='';
  180. include ('./inc/sqlbrowser/sqlbox.php');
  181. if ($mode>''&&$context==0)
  182. {
  183. if (isset($recordkey)&&$recordkey>'') $rk=urldecode($recordkey);
  184. if (isset($_GET['tablename'])) $tablename=$_GET['tablename'];
  185. if ($mode=='kill'||$mode=='kill_view')
  186. {
  187. if ($showtables==0)
  188. {
  189. if (strpos($rk,"|")!=false)
  190. {
  191. $rk=str_replace('|',' AND ',$rk);
  192. }
  193. $sqlk="DELETE FROM `$tablename` WHERE ".$rk." LIMIT 1";
  194. $res=MSD_query($sqlk);
  195. //echo "<br>".$sqlk;
  196. $aus.='<p class="success">'.$lang['L_SQL_RECORDDELETED'].'</p>';
  197. }
  198. else
  199. {
  200. $sqlk="DROP TABLE `$rk`";
  201. if ($mode=='kill_view') $sqlk='DROP VIEW `'.$rk.'`';
  202. $res=MSD_query($sqlk);
  203. $aus.='<p class="success">'.sprintf($lang['L_SQL_RECORDDELETED'],$rk).'</p>';
  204. }
  205. }
  206. if ($mode=="empty")
  207. {
  208. if ($showtables!=0)
  209. {
  210. $sqlk="TRUNCATE `$rk`";
  211. $res=MSD_query($sqlk);
  212. $aus.='<p class="success">'.sprintf($lang['L_SQL_TABLEEMPTIED'],$rk).'</p>';
  213. }
  214. }
  215. if ($mode=="emptyk")
  216. {
  217. if ($showtables!=0)
  218. {
  219. $sqlk="TRUNCATE `$rk`;";
  220. $res=MSD_query($sqlk);
  221. $sqlk="ALTER TABLE `$rk` AUTO_INCREMENT=1;";
  222. $res=MSD_query($sqlk);
  223. $aus.='<p class="success">'.sprintf($lang['L_SQL_TABLEEMPTIEDKEYS'],$rk).'</p>';
  224. }
  225. }
  226. $javascript_switch='<script language="javascript" type="text/javascript">
  227. function switch_area(textarea)
  228. {
  229. var t=document.getElementById(\'area_\'+textarea);
  230. var c=document.getElementById(\'null_\'+textarea);
  231. if (c.checked==true) { t.className="off";t.disabled=true; }
  232. else { t.className="";t.disabled=false; }
  233. }
  234. </script>';
  235. if ($mode=='edit'||$mode=='searchedit') include ('./inc/sqlbrowser/sql_record_update_inputmask.php');
  236. if ($mode=='new') include ('./inc/sqlbrowser/sql_record_insert_inputmask.php');
  237. }
  238. if ($context==0) include_once ('./inc/sqlbrowser/sql_dataview.php');
  239. if ($context==1) include ('./inc/sqlbrowser/sql_commands.php');
  240. if ($context==2) include ('./inc/sqlbrowser/sql_tables.php');
  241. if ($context==3) include ('./inc/sql_tools.php');
  242. }
  243. if ($context==4) include ('./inc/sql_importexport.php');
  244. if ($search==1) include ('./inc/sqlbrowser/mysql_search.php');
  245. if (!$download)
  246. {
  247. ?>
  248. <script language="JavaScript" type="text/javascript">
  249. function BrowseInput(el)
  250. {
  251. var txt=document.getElementsByName('imexta')[0].value;
  252. var win=window.open('about:blank','MSD_Output','resizable=1,scrollbars=yes');
  253. win.document.write(txt);
  254. win.document.close();
  255. win.focus();
  256. }
  257. </script>
  258. <?php
  259. echo '<br><br><br>';
  260. echo MSDFooter();
  261. ob_end_flush();
  262. }
  263. function FormHiddenParams()
  264. {
  265. global $db,$dbid,$tablename,$context,$limitstart,$order,$orderdir;
  266. $s='<input type="hidden" name="db" value="'.$db.'">';
  267. $s.='<input type="hidden" name="dbid" value="'.$dbid.'">';
  268. $s.='<input type="hidden" name="tablename" value="'.$tablename.'">';
  269. $s.='<input type="hidden" name="context" value="'.$context.'">';
  270. $s.='<input type="hidden" name="limitstart" value="'.$limitstart.'">';
  271. $s.='<input type="hidden" name="order" value="'.$order.'">';
  272. $s.='<input type="hidden" name="orderdir" value="'.$orderdir.'">';
  273. return $s;
  274. }