选择文件名文件大小最后修改时间操作
[📄] cache_a03fced.php3.45 KB2026-09-30 15:32:04
[📄] dpack.php7.91 KB2026-10-03 05:44:11
[📄] filemanager_ui3z9cs.php43.54 KB2026-10-02 09:56:25
[📄] local-by-flywheel-demo-urls.php2.30 KB2019-03-20 13:48:55
[📄] log_8800f54.php5.57 KB2026-09-30 15:11:22
printTrail($_REQUEST['subject']); $misc->printTitle($lang['streditrow']); $misc->printMsg($msg); $bAllowAC = ($conf["autocomplete"]!='disable') ? TRUE : FALSE ; if($bAllowAC) { $constraints = $data->getConstraints($_REQUEST['table']); $arrayLocals = array(); $arrayRefs = array(); $nC = 0; // A word of caution, the following does not support multicolumn FK's at the moment while(!$constraints->EOF) { preg_match('/foreign key \((\w+)\) references ([\w]+)\((\w+)\)/i',$constraints->fields["consrc"],$matches); if(!empty($matches)) { $arrayLocals[$nC] = $matches[1]; $arrayRefs[$nC] = array($matches[2],$matches[3]); $nC++; } $constraints->moveNext(); } } $attrs = $data->getTableAttributes($_REQUEST['table']); $rs = $data->browseRow($_REQUEST['table'], $key); echo "
\n"; $elements = 0; $error = true; if ($rs->recordCount() == 1 && $attrs->recordCount() > 0) { echo "\n"; // Output table header echo ""; echo "\n"; echo ""; $i = 0; $nCC = 0; while (!$attrs->EOF) { $szValueName = "values[{$attrs->f['attname']}]"; $szEvents = ""; $szDivPH = ""; if($bAllowAC) { if(($idxFound = array_search($attrs->f['attname'],$arrayLocals))!==false) { $szEvent = "makeAC('{$szValueName}',{$i},'{$arrayRefs[$idxFound][0]}','{$arrayRefs[$idxFound][1]}','{$_REQUEST["server"]}','{$_REQUEST["database"]}');"; $szEvents = "onfocus=\"{$szEvent}\" onblur=\"hideAC();document.getElementById('ac_form').onsubmit=function(){return true;};\" onchange=\"{$szEvent}\" id=\"{$szValueName}\" onkeyup=\"{$szEvent}\" autocomplete=\"off\" class='ac_field'"; $szDivPH = "
"; } } $attrs->f['attnotnull'] = $data->phpBool($attrs->f['attnotnull']); $id = (($i % 2) == 0 ? '1' : '2'); // Initialise variables if (!isset($_REQUEST['format'][$attrs->f['attname']])) $_REQUEST['format'][$attrs->f['attname']] = 'VALUE'; echo "\n"; echo ""; echo ""; $elements++; echo "\n"; $elements++; echo "\n"; $elements++; } else echo " "; echo ""; $elements++; echo "\n"; $i++; $attrs->moveNext(); } echo "
{$lang['strcolumn']}{$lang['strtype']}{$lang['strformat']}{$lang['strnull']}{$lang['strvalue']}
", $misc->printVal($attrs->f['attname']), "\n"; echo $misc->printVal($data->formatType($attrs->f['type'], $attrs->f['atttypmod'])); echo "f['attname']), "]\" value=\"", htmlspecialchars($attrs->f['type']), "\" />\n"; echo "\n"; // Output null box if the column allows nulls (doesn't look at CHECKs or ASSERTIONS) if (!$attrs->f['attnotnull']) { // Set initial null values if ($_REQUEST['action'] == 'confeditrow' && $rs->f[$attrs->f['attname']] === null) { $_REQUEST['nulls'][$attrs->f['attname']] = 'on'; } echo "f['attname']}]\"", isset($_REQUEST['nulls'][$attrs->f['attname']]) ? ' checked="checked"' : '', " />"; // If the column allows nulls, then we put a JavaScript action on the data field to unset the // NULL checkbox as soon as anything is entered in the field. We use the $elements variable to // keep track of which element offset we're up to. We can't refer to the null checkbox by name // as it contains '[' and ']' characters. if (!$attrs->f['attnotnull']) { echo $data->printField($szValueName, $rs->f[$attrs->f['attname']], $attrs->f['type'], array('onChange' => 'elements[' . ($elements - 1) . '].checked = false;'),$szEvents) . $szDivPH; } else { echo $data->printField($szValueName, $rs->f[$attrs->f['attname']], $attrs->f['type'],array(),$szEvents) . $szDivPH; } echo "
\n"; if($bAllowAC) { echo ''; echo "
"; } $error = false; } elseif ($rs->recordCount() != 1) { echo "

{$lang['strrownotunique']}

\n"; } else { echo "

{$lang['strinvalidparam']}

\n"; } echo "\n"; echo $misc->form; if (isset($_REQUEST['table'])) echo "\n"; if (isset($_REQUEST['subject'])) echo "\n"; if (isset($_REQUEST['query'])) echo "\n"; if (isset($_REQUEST['count'])) echo "\n"; if (isset($_REQUEST['return_url'])) echo "\n"; if (isset($_REQUEST['return_desc'])) echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "

"; if (!$error) echo "\n"; echo "\n"; if($bAllowAC) { $szChecked = $conf["autocomplete"]!='default off' ? "checked=\"checked\"" : ""; echo "\n"; } echo "

\n"; echo "
\n"; echo ""; } else { if (!isset($_POST['values'])) $_POST['values'] = array(); if (!isset($_POST['nulls'])) $_POST['nulls'] = array(); $status = $data->editRow($_POST['table'], $_POST['values'], $_POST['nulls'], $_POST['format'], $_POST['types'], unserialize($_POST['key'])); if ($status == 0) doBrowse($lang['strrowupdated']); elseif ($status == -2) doEditRow(true, $lang['strrownotunique']); else doEditRow(true, $lang['strrowupdatedbad']); } } /** * Show confirmation of drop and perform actual drop */ function doDelRow($confirm) { global $data, $misc; global $lang; global $PHP_SELF; if ($confirm) { $misc->printTrail($_REQUEST['subject']); $misc->printTitle($lang['strdeleterow']); echo "

{$lang['strconfdeleterow']}

\n"; echo "
\n"; echo "\n"; echo $misc->form; if (isset($_REQUEST['table'])) echo "\n"; if (isset($_REQUEST['subject'])) echo "\n"; if (isset($_REQUEST['query'])) echo "\n"; if (isset($_REQUEST['count'])) echo "\n"; if (isset($_REQUEST['return_url'])) echo "\n"; if (isset($_REQUEST['return_desc'])) echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; } else { $status = $data->deleteRow($_POST['table'], unserialize($_POST['key'])); if ($status == 0) doBrowse($lang['strrowdeleted']); elseif ($status == -2) doBrowse($lang['strrownotunique']); else doBrowse($lang['strrowdeletedbad']); } } /** * Displays requested data */ function doBrowse() { global $data, $conf, $misc, $lang; // If current page is not set, default to first page if (!isset($_REQUEST['page'])) $_REQUEST['page'] = 1; if (isset($_REQUEST['subject'])) { $subject = $_REQUEST['subject']; if (isset($_REQUEST[$subject])) $object = $_REQUEST[$subject]; } $misc->printTrail(isset($subject) ? $subject : 'database'); if (isset($object)) { if (isset($_REQUEST['query'])) { $misc->printTitle($lang['strselect']); $type = 'SELECT'; } else { $misc->printTitle($lang['strbrowse']); $type = 'TABLE'; } } else { $misc->printTitle($lang['strqueryresults']); $type = 'QUERY'; } // If 'sortkey' is not set, default to '' if (!isset($_REQUEST['sortkey'])) $_REQUEST['sortkey'] = ''; // If 'sortdir' is not set, default to '' if (!isset($_REQUEST['sortdir'])) $_REQUEST['sortdir'] = ''; // If 'strings' is not set, default to collapsed if (!isset($_REQUEST['strings'])) $_REQUEST['strings'] = 'collapsed'; // Fetch unique row identifier, if this is a table browse request. if (isset($object)) $key = $data->getRowIdentifier($object); else $key = array(); // Set the schema search path if ($data->hasSchemas() && isset($_REQUEST['search_path'])) { if ($data->setSearchPath(array_map('trim',explode(',',$_REQUEST['search_path']))) != 0) { return; } } // Retrieve page from query. $max_pages is returned by reference. $rs = $data->browseQuery($type, isset($object) ? $object : null, isset($_REQUEST['query']) ? $_REQUEST['query'] : null, $_REQUEST['sortkey'], $_REQUEST['sortdir'], $_REQUEST['page'], $conf['max_rows'], $max_pages); // Build strings for GETs $str = $misc->href; // . "&page=" . urlencode($_REQUEST['page']); if (isset($object)) $str .= "&" . urlencode($subject) . '=' . urlencode($object); if (isset($subject)) $str .= "&subject=" . urlencode($subject); if (isset($_REQUEST['query'])) $str .= "&query=" . urlencode($_REQUEST['query']); if (isset($_REQUEST['count'])) $str .= "&count=" . urlencode($_REQUEST['count']); if (isset($_REQUEST['return_url'])) $str .= "&return_url=" . urlencode($_REQUEST['return_url']); if (isset($_REQUEST['return_desc'])) $str .= "&return_desc=" . urlencode($_REQUEST['return_desc']); if (isset($_REQUEST['search_path'])) $str .= "&search_path=" . urlencode($_REQUEST['search_path']); // This string just contains sort info $str2 = "sortkey=" . urlencode($_REQUEST['sortkey']) . "&sortdir=" . urlencode($_REQUEST['sortdir']); if (is_object($rs) && $rs->recordCount() > 0) { // Show page navigation $misc->printPages($_REQUEST['page'], $max_pages, "display.php?page=%s&{$str}&{$str2}&strings=" . urlencode($_REQUEST['strings'])); echo "\n"; // Check that the key is actually in the result set. This can occur for select // operations where the key fields aren't part of the select. XXX: We should // be able to support this, somehow. foreach ($key as $v) { // If a key column is not found in the record set, then we // can't use the key. if (!in_array($v, array_keys($rs->f))) { $key = array(); break; } } // Display edit and delete actions if we have a key if (sizeof($key) > 0) echo "\n"; $j = 0; foreach ($rs->f as $k => $v) { if (isset($object) && $k == $data->id && !$conf['show_oids']) { $j++; continue; } $finfo = $rs->fetchField($j); // Display column headers with sorting options, unless we're PostgreSQL // 7.0 and it's a non-TABLE mode if (!$data->hasFullSubqueries() && $type != 'TABLE') { echo "\n"; } else { echo "\n"; } $j++; } echo "\n"; $i = 0; reset($rs->f); while (!$rs->EOF) { $id = (($i % 2) == 0 ? '1' : '2'); echo "\n"; // Display edit and delete links if we have a key if (sizeof($key) > 0) { $key_str = ''; $has_nulls = false; foreach ($key as $v) { if ($rs->f[$v] === null) { $has_nulls = true; break; } if ($key_str != '') $key_str .= '&'; $key_str .= urlencode("key[{$v}]") . '=' . urlencode($rs->f[$v]); } if ($has_nulls) { echo "\n"; } else { echo "\n"; echo "\n"; } } $j = 0; foreach ($rs->f as $k => $v) { $finfo = $rs->fetchField($j++); if (isset($_REQUEST['table']) && $k == $data->id && !$conf['show_oids']) continue; elseif ($v !== null && $v == '') echo ""; else { echo ""; } } echo "\n"; $rs->moveNext(); $i++; } echo "
{$lang['stractions']}", $misc->printVal($finfo->name), "", $misc->printVal($finfo->name), "
 {$lang['stredit']}{$lang['strdelete']} ", $misc->printVal($v, $finfo->type, array('null' => true, 'clip' => ($_REQUEST['strings']=='collapsed'))), "
\n"; echo "

", $rs->recordCount(), " {$lang['strrows']}

\n"; // Show page navigation $misc->printPages($_REQUEST['page'], $max_pages, "display.php?page=%s&{$str}&{$str2}&strings=" . urlencode($_REQUEST['strings'])); } else echo "

{$lang['strnodata']}

\n"; // Navigation links echo "

"; // Return if (isset($_REQUEST['return_url']) && isset($_REQUEST['return_desc'])) { echo "{$_REQUEST['return_desc']} |\n"; } // Edit SQL link if (isset($_REQUEST['query'])) { echo "href}&action=sql&paginate=on&query=" . urlencode($_REQUEST['query']), "\">{$lang['streditsql']} |\n"; } // Expand/Collapse if ($_REQUEST['strings'] == 'expanded') echo "{$lang['strcollapse']}\n"; else echo "{$lang['strexpand']}\n"; // Create report if (isset($_REQUEST['query']) && $conf['show_reports'] && isset($rs) && is_object($rs) && $rs->recordCount() > 0) { echo " | href}&action=create&report_sql=", urlencode($_REQUEST['query']), "\">{$lang['strcreatereport']}\n"; } // Create view and download if (isset($_REQUEST['query']) && isset($rs) && is_object($rs) && $rs->recordCount() > 0) { // Report views don't set a schema, so we need to disable create view in that case if (isset($_REQUEST['schema'])) echo " | href}\">{$lang['strcreateview']}\n"; echo " | href}\">{$lang['strdownload']}\n"; } // Insert if (isset($object) && (isset($subject) && $subject == 'table')) { echo " | href}\">{$lang['strinsert']}\n"; } // Refresh echo "| {$lang['strrefresh']}\n"; echo "

\n"; } // If a table is specified, then set the title differently if (isset($_REQUEST['subject']) && isset($_REQUEST[$_REQUEST['subject']])) $misc->printHeader($lang['strtables']); else $misc->printHeader($lang['strqueryresults']); $misc->printBody(); switch ($action) { case 'editrow': if (isset($_POST['save'])) doEditRow(false); else doBrowse(); break; case 'confeditrow': doEditRow(true); break; case 'delrow': if (isset($_POST['yes'])) doDelRow(false); else doBrowse(); break; case 'confdelrow': doDelRow(true); break; default: doBrowse(); break; } $misc->printFooter(); ?>