123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- <?php
- /* vim: set expandtab sw=4 ts=4 sts=4: */
- /**
- * display the binary logs and the content of the selected
- *
- * @package PhpMyAdmin
- */
- /**
- *
- */
- require_once 'libraries/common.inc.php';
- /**
- * Does the common work, provides $binary_logs
- */
- require_once 'libraries/server_common.inc.php';
- $url_params = array();
- /**
- * Need to find the real end of rows?
- */
- if (! isset($_REQUEST['pos'])) {
- $pos = 0;
- } else {
- /* We need this to be a integer */
- $pos = (int) $_REQUEST['pos'];
- }
- if (! isset($_REQUEST['log'])
- || ! array_key_exists($_REQUEST['log'], $binary_logs)
- ) {
- $_REQUEST['log'] = '';
- } else {
- $url_params['log'] = $_REQUEST['log'];
- }
- $sql_query = 'SHOW BINLOG EVENTS';
- if (! empty($_REQUEST['log'])) {
- $sql_query .= ' IN \'' . $_REQUEST['log'] . '\'';
- }
- if ($GLOBALS['cfg']['MaxRows'] !== 'all') {
- $sql_query .= ' LIMIT ' . $pos . ', ' . (int) $GLOBALS['cfg']['MaxRows'];
- }
- /**
- * Sends the query
- */
- $result = PMA_DBI_query($sql_query);
- /**
- * prepare some vars for displaying the result table
- */
- // Gets the list of fields properties
- if (isset($result) && $result) {
- $num_rows = PMA_DBI_num_rows($result);
- } else {
- $num_rows = 0;
- }
- if (empty($_REQUEST['dontlimitchars'])) {
- $dontlimitchars = false;
- } else {
- $dontlimitchars = true;
- $url_params['dontlimitchars'] = 1;
- }
- /**
- * Displays the sub-page heading
- */
- echo '<h2>' . "\n"
- . PMA_Util::getImage('s_tbl.png')
- . ' ' . __('Binary log') . "\n"
- . '</h2>' . "\n";
- /**
- * Display log selector.
- */
- if (count($binary_logs) > 1) {
- echo '<form action="server_binlog.php" method="get">';
- echo PMA_generate_common_hidden_inputs($url_params);
- echo '<fieldset><legend>';
- echo __('Select binary log to view');
- echo '</legend><select name="log">';
- $full_size = 0;
- foreach ($binary_logs as $each_log) {
- echo '<option value="' . htmlspecialchars($each_log['Log_name']) . '"';
- if ($each_log['Log_name'] == $_REQUEST['log']) {
- echo ' selected="selected"';
- }
- echo '>' . htmlspecialchars($each_log['Log_name']);
- if (isset($each_log['File_size'])) {
- $full_size += $each_log['File_size'];
- echo ' ('
- . implode(
- ' ',
- PMA_Util::formatByteDown(
- $each_log['File_size'], 3, 2
- )
- )
- . ')';
- }
- echo '</option>';
- }
- echo '</select> ';
- echo count($binary_logs) . ' ' . __('Files') . ', ';
- if ($full_size > 0) {
- echo implode(
- ' ', PMA_Util::formatByteDown($full_size)
- );
- }
- echo '</fieldset>';
- echo '<fieldset class="tblFooters">';
- echo '<input type="submit" value="' . __('Go') . '" />';
- echo '</fieldset>';
- echo '</form>';
- }
- echo PMA_Util::getMessage(PMA_Message::success());
- /**
- * Displays the page
- */
- echo '<table cellpadding="2" cellspacing="1">'
- . '<thead>'
- . '<tr>'
- . '<td colspan="6" class="center">';
- // we do not now how much rows are in the binlog
- // so we can just force 'NEXT' button
- if ($pos > 0) {
- $this_url_params = $url_params;
- if ($pos > $GLOBALS['cfg']['MaxRows']) {
- $this_url_params['pos'] = $pos - $GLOBALS['cfg']['MaxRows'];
- }
- echo '<a href="server_binlog.php'
- . PMA_generate_common_url($this_url_params) . '"';
- if (in_array(
- $GLOBALS['cfg']['TableNavigationLinksMode'],
- array('icons', 'both')
- )
- ) {
- echo ' title="' . _pgettext('Previous page', 'Previous') . '">';
- } else {
- echo '>' . _pgettext('Previous page', 'Previous');
- } // end if... else...
- echo ' < </a> - ';
- }
- $this_url_params = $url_params;
- if ($pos > 0) {
- $this_url_params['pos'] = $pos;
- }
- if ($dontlimitchars) {
- unset($this_url_params['dontlimitchars']);
- $tempTitle = __('Truncate Shown Queries');
- $tempImgMode = 'partial';
- } else {
- $this_url_params['dontlimitchars'] = 1;
- $tempTitle = __('Show Full Queries');
- $tempImgMode = 'full';
- }
- echo '<a href="server_binlog.php' . PMA_generate_common_url($this_url_params)
- . '" title="' . $tempTitle . '">'
- . '<img src="' .$pmaThemeImage . 's_' . $tempImgMode . 'text.png"'
- . 'alt="' . $tempTitle . '" /></a>';
- // we do not now how much rows are in the binlog
- // so we can just force 'NEXT' button
- if ($num_rows >= $GLOBALS['cfg']['MaxRows']) {
- $this_url_params = $url_params;
- $this_url_params['pos'] = $pos + $GLOBALS['cfg']['MaxRows'];
- echo ' - <a href="server_binlog.php' . PMA_generate_common_url($this_url_params)
- . '"';
- if (in_array(
- $GLOBALS['cfg']['TableNavigationLinksMode'],
- array('icons', 'both')
- )
- ) {
- echo ' title="' . _pgettext('Next page', 'Next') . '">';
- } else {
- echo '>' . _pgettext('Next page', 'Next');
- } // end if... else...
- echo ' > </a>';
- }
- echo '</td>'
- . '</tr>'
- . '<tr>'
- . '<th>' . __('Log name') . '</th>'
- . '<th>' . __('Position') . '</th>'
- . '<th>' . __('Event type') . '</th>'
- . '<th>' . __('Server ID') . '</th>'
- . '<th>' . __('Original position') . '</th>'
- . '<th>' . __('Information') . '</th>'
- . '</tr>'
- . '</thead>'
- . '<tbody>';
- $odd_row = true;
- while ($value = PMA_DBI_fetch_assoc($result)) {
- if (! $dontlimitchars
- && PMA_strlen($value['Info']) > $GLOBALS['cfg']['LimitChars']
- ) {
- $value['Info'] = PMA_substr(
- $value['Info'], 0, $GLOBALS['cfg']['LimitChars']
- ) . '...';
- }
- echo '<tr class="noclick ' . ($odd_row ? 'odd' : 'even') . '">'
- . '<td> ' . $value['Log_name'] . ' </td>'
- . '<td class="right"> ' . $value['Pos'] . ' </td>'
- . '<td> ' . $value['Event_type'] . ' </td>'
- . '<td class="right"> ' . $value['Server_id'] . ' </td>'
- . '<td class="right"> '
- . (isset($value['Orig_log_pos'])
- ? $value['Orig_log_pos'] : $value['End_log_pos'])
- . ' </td>'
- . '<td> ' . htmlspecialchars($value['Info']) . ' </td>'
- . '</tr>';
- $odd_row = !$odd_row;
- }
- echo '</tbody>'
- . '</table>';
|