common.lib.php

来自「php绿色服务器,让大家试用greenamp」· PHP 代码 · 共 1,687 行 · 第 1/5 页

PHP
1,687
字号
if ($theme_version < PMA_THEME_VERSION)    $GLOBALS['theme'] = 'original'; // too old version$pmaThemeImage  = $cfg['ThemePath'] . '/' . $GLOBALS['theme'] . '/img/';$tmp_layout_file = $cfg['ThemePath'] . '/' . $GLOBALS['theme'] . '/layout.inc.php';if (@file_exists($tmp_layout_file)) {    include($tmp_layout_file);}if (!is_dir($pmaThemeImage)) {    $pmaThemeImage = $cfg['ThemePath'] . '/original/img/';}// end theme manager/** * collation_connection */ // (could be improved by executing it after the MySQL connection only if //  PMA_MYSQL_INT_VERSION >= 40100 )if (isset($_COOKIE) && !empty($_COOKIE['pma_collation_connection']) && empty($_POST['collation_connection'])) {    $collation_connection = $_COOKIE['pma_collation_connection'];}if ($is_minimum_common == FALSE) {    /**     * Include URL/hidden inputs generating.     */    require_once('./libraries/url_generating.lib.php');    /**     * Add slashes before "'" and "\" characters so a value containing them can     * be used in a sql comparison.     *     * @param   string   the string to slash     * @param   boolean  whether the string will be used in a 'LIKE' clause     *                   (it then requires two more escaped sequences) or not     * @param   boolean  whether to treat cr/lfs as escape-worthy entities     *                   (converts \n to \\n, \r to \\r)     *     * @return  string   the slashed string     *     * @access  public     */    function PMA_sqlAddslashes($a_string = '', $is_like = FALSE, $crlf = FALSE)    {        if ($is_like) {            $a_string = str_replace('\\', '\\\\\\\\', $a_string);        } else {            $a_string = str_replace('\\', '\\\\', $a_string);        }        if ($crlf) {            $a_string = str_replace("\n", '\n', $a_string);            $a_string = str_replace("\r", '\r', $a_string);            $a_string = str_replace("\t", '\t', $a_string);        }        $a_string = str_replace('\'', '\'\'', $a_string);        return $a_string;    } // end of the 'PMA_sqlAddslashes()' function    /**     * Add slashes before "_" and "%" characters for using them in MySQL     * database, table and field names.     * Note: This function does not escape backslashes!     *     * @param   string   the string to escape     *     * @return  string   the escaped string     *     * @access  public     */    function PMA_escape_mysql_wildcards($name)    {        $name = str_replace('_', '\\_', $name);        $name = str_replace('%', '\\%', $name);        return $name;    } // end of the 'PMA_escape_mysql_wildcards()' function    /**     * format sql strings     *     * @param   mixed    pre-parsed SQL structure     *     * @return  string   the formatted sql     *     * @global  array    the configuration array     * @global  boolean  whether the current statement is a multiple one or not     *     * @access  public     *     * @author  Robin Johnson <robbat2@users.sourceforge.net>     */    function PMA_formatSql($parsed_sql, $unparsed_sql = '')    {        global $cfg;        // Check that we actually have a valid set of parsed data        // well, not quite        // first check for the SQL parser having hit an error        if (PMA_SQP_isError()) {            return $parsed_sql;        }        // then check for an array        if (!is_array($parsed_sql)) {            // We don't so just return the input directly            // This is intended to be used for when the SQL Parser is turned off            $formatted_sql = '<pre>' . "\n"                            . (($cfg['SQP']['fmtType'] == 'none' && $unparsed_sql != '') ? $unparsed_sql : $parsed_sql) . "\n"                            . '</pre>';            return $formatted_sql;        }        $formatted_sql        = '';        switch ($cfg['SQP']['fmtType']) {            case 'none':                if ($unparsed_sql != '') {                    $formatted_sql = "<pre>\n" . PMA_SQP_formatNone(array('raw' => $unparsed_sql)) . "\n</pre>";                } else {                    $formatted_sql = PMA_SQP_formatNone($parsed_sql);                }                break;            case 'html':                $formatted_sql = PMA_SQP_formatHtml($parsed_sql,'color');                break;            case 'text':                //$formatted_sql = PMA_SQP_formatText($parsed_sql);                $formatted_sql = PMA_SQP_formatHtml($parsed_sql,'text');                break;            default:                break;        } // end switch        return $formatted_sql;    } // end of the "PMA_formatSql()" function    /**     * Displays a link to the official MySQL documentation     *     * @param   chapter of "HTML, one page per chapter" documentation     * @param   contains name of page/anchor that is being linked     *     * @return  string  the html link     *     * @access  public     */// 2004-05-04: replaced with a modified function from Michael Keck (mkkeck)        function PMA_showMySQLDocu($chapter, $link)        {            if (!empty($GLOBALS['cfg']['MySQLManualBase'])) {                if (!empty($GLOBALS['cfg']['MySQLManualType'])) {                    switch ($GLOBALS['cfg']['MySQLManualType']) {                        case 'old':                            if ($GLOBALS['cfg']['ReplaceHelpImg']) {                                return '<a href="' . $GLOBALS['cfg']['MySQLManualBase'] . '/' . $link[0] . '/' . $link[1] . '/' . $link . '.html" target="mysql_doc"><img src="' . $GLOBALS['pmaThemeImage'] . 'b_help.png" width="11" height="11" border="0" alt="' . $GLOBALS['strDocu'] . '" title="' . $GLOBALS['strDocu'] . '" hspace="2" align="middle" /></a>';                            }else{                                return '[<a href="' . $GLOBALS['cfg']['MySQLManualBase'] . '/' . $link[0] . '/' . $link[1] . '/' . $link . '.html" target="mysql_doc">' . $GLOBALS['strDocu'] . '</a>]';                           }                        case 'chapters':                            if ($GLOBALS['cfg']['ReplaceHelpImg']) {                                return '<a href="' . $GLOBALS['cfg']['MySQLManualBase'] . '/manual_' . $chapter . '.html#' . $link . '" target="mysql_doc"><img src="' . $GLOBALS['pmaThemeImage'] . 'b_help.png" width="11" height="11" border="0" alt="' . $GLOBALS['strDocu'] . '" title="' . $GLOBALS['strDocu'] . '" hspace="2" align="middle" /></a>';                           } else {                               return '[<a href="' . $GLOBALS['cfg']['MySQLManualBase'] . '/manual_' . $chapter . '.html#' . $link . '" target="mysql_doc">' . $GLOBALS['strDocu'] . '</a>]'; }                        case 'big':                            if ($GLOBALS['cfg']['ReplaceHelpImg']) {                                return '<a href="' . $GLOBALS['cfg']['MySQLManualBase'] . '#' . $link . '" target="mysql_doc"><img src="' . $GLOBALS['pmaThemeImage'] . 'b_help.png" width="11" height="11" border="0" alt="' . $GLOBALS['strDocu'] . '" title="' . $GLOBALS['strDocu'] . '" hspace="2" align="middle" /></a>';                            } else {                                return '[<a href="' . $GLOBALS['cfg']['MySQLManualBase'] . '#' . $link . '" target="mysql_doc">' . $GLOBALS['strDocu'] . '</a>]';                            }                        case 'none':                            return '';                        case 'searchable':                        default:                            if ($GLOBALS['cfg']['ReplaceHelpImg']) {                                return '<a href="' . $GLOBALS['cfg']['MySQLManualBase'] . '/' . $link . '.html" target="mysql_doc"><img src="' . $GLOBALS['pmaThemeImage'] . 'b_help.png" width="11" height="11" border="0" alt="' . $GLOBALS['strDocu'] . '" title="' . $GLOBALS['strDocu'] . '" hspace="2" align="middle" /></a>';                            } else {                                return '[<a href="' . $GLOBALS['cfg']['MySQLManualBase'] . '/' . $link . '.html" target="mysql_doc">' . $GLOBALS['strDocu'] . '</a>]';                            }                    }                } else {                    // no Type defined, show the old one                    if ($GLOBALS['cfg']['ReplaceHelpImg']) {                        return '<a href="' . $GLOBALS['cfg']['MySQLManualBase'] . '/' . $link[0] . '/' . $link[1] . '/' . $link . '.html" target="mysql_doc"><img src="' . $GLOBALS['pmaThemeImage'] . 'b_help.png" width="11" height="11" border="0" alt="' . $GLOBALS['strDocu'] . '" title="' . $GLOBALS['strDocu'] . '" hspace="2" align="middle" /></a>';                    } else {                        return '[<a href="' . $GLOBALS['cfg']['MySQLManualBase'] . '/' . $link[0] . '/' . $link[1] . '/' . $link . '.html" target="mysql_doc">' . $GLOBALS['strDocu'] . '</a>]';                    }                }            } else {                // no URL defined                if (!empty($GLOBALS['cfg']['ManualBaseShort'])) {                    // the old configuration                    if ($GLOBALS['cfg']['ReplaceHelpImg']) {                        return '<a href="' . $GLOBALS['cfg']['MySQLManualBase'] . '/' . $link[0] . '/' . $link[1] . '/' . $link . '.html" target="mysql_doc"><img src="' . $GLOBALS['pmaThemeImage'] . 'b_help.png" width="11" height="11" border="0" alt="' . $GLOBALS['strDocu'] . '" title="' . $GLOBALS['strDocu'] . '" hspace="2" align="middle" /></a>';                    } else {                        return '[<a href="' . $GLOBALS['cfg']['MySQLManualBase'] . '/' . $link[0] . '/' . $link[1] . '/' . $link . '.html" target="mysql_doc">' . $GLOBALS['strDocu'] . '</a>]';                   }                } else {                    return '';                }            }        }                 // end of the 'PMA_showDocu()' function    /**     * Displays a MySQL error message in the right frame.     *     * @param   string   the error mesage     * @param   string   the sql query that failed     * @param   boolean  whether to show a "modify" link or not     * @param   string   the "back" link url (full path is not required)     * @param   boolean  EXIT the page?     *     * @global  array    the configuration array     *     * @access  public     */    function PMA_mysqlDie($error_message = '', $the_query = '',                            $is_modify_link = TRUE, $back_url = '',                            $exit = TRUE)    {        global $cfg, $table, $db, $sql_query;        require_once('./header.inc.php');        if (!$error_message) {            $error_message = PMA_DBI_getError();        }        if (!$the_query && !empty($GLOBALS['sql_query'])) {            $the_query = $GLOBALS['sql_query'];        }        // --- Added to solve bug #641765        // Robbat2 - 12 January 2003, 9:46PM        // Revised, Robbat2 - 13 Janurary 2003, 2:59PM        if (!function_exists('PMA_SQP_isError') || PMA_SQP_isError()) {            $formatted_sql = htmlspecialchars($the_query);        } else {            $formatted_sql = PMA_formatSql(PMA_SQP_parse($the_query), $the_query);        }        // ---        echo "\n" . '<!-- PMA-SQL-ERROR -->' . "\n";        echo '    <table border="0" cellpadding="2" cellspacing="1">'           . '        <tr>' . "\n"           . '            <th class="tblHeadError"><div class="errorhead">' . $GLOBALS['strError'] . '</div></th>' . "\n"           . '        </tr>' . "\n"           . '        <tr>' . "\n"           . '            <td>';        // if the config password is wrong, or the MySQL server does not        // respond, do not show the query that would reveal the        // username/password        if (!empty($the_query) && !strstr($the_query, 'connect')) {            // --- Added to solve bug #641765            // Robbat2 - 12 January 2003, 9:46PM            // Revised, Robbat2 - 13 Janurary 2003, 2:59PM            if (function_exists('PMA_SQP_isError') && PMA_SQP_isError()) {                echo PMA_SQP_getErrorString();            }            // ---            // modified to show me the help on sql errors (Michael Keck)            echo '<div class="tblWarn"><p>' . "\n";            echo '    <b>' . $GLOBALS['strSQLQuery'] . ':</b>' . "\n";            if (strstr(strtolower($formatted_sql),'select')) { // please show me help to the error on select                echo PMA_showMySQLDocu('Reference', 'SELECT');            }            if ($is_modify_link && isset($db)) {                if (isset($table)) {                    $doedit_goto = '<a href="tbl_properties.php?' . PMA_generate_common_url($db, $table) . '&amp;sql_query=' . urlencode($the_query) . '&amp;show_query=1">';                } else {                    $doedit_goto = '<a href="db_details.php?' . PMA_generate_common_url($db) . '&amp;sql_query=' . urlencode($the_query) . '&amp;show_query=1">';                }                if ($GLOBALS['cfg']['PropertiesIconic']) {                    echo $doedit_goto                       . '<img src=" '. $GLOBALS['pmaThemeImage'] . 'b_edit.png" width="16" height="16" border="0" hspace="2" align="middle" alt="' . $GLOBALS['strEdit'] .'" />'                       . '</a>';                } else {                    echo '    ['                       . $doedit_goto . $GLOBALS['strEdit'] . '</a>'                       . ']' . "\n";                }            } // end if            echo '</p>' . "\n"                    . '<p>' . "\n"                    . '    ' . $formatted_sql . "\n"                    . '</p></div>' . "\n";        } // end if        if (!empty($error_message)) {            $error_message = htmlspecialchars($error_message);            $error_message = preg_replace("@((\015\012)|(\015)|(\012)){3,}@", "\n\n", $error_message);        }        // modified to show me the help on error-returns (Michael Keck)        echo '<div class="tblWarn"><p>' . "\n"                . '    <b>' . $GLOBALS['strMySQLSaid'] . '</b>'                . PMA_showMySQLDocu('Error-returns', 'Error-returns')                . "\n"                . '</p>' . "\n";        // The error message will be displayed within a CODE segment.        // To preserve original formatting, but allow wordwrapping, we do a couple of replacements        // Replace all non-single blanks with their HTML-counterpart        $error_message = str_replace('  ', '&nbsp;&nbsp;', $error_message);        // Replace TAB-characters with their HTML-counterpart        $error_message = str_replace("\t", '&nbsp;&nbsp;&nbsp;&nbsp;', $error_message);        // Replace linebreaks        $error_message = nl2br($error_message);        echo '<code>' . "\n"            . $error_message . "\n"            . '</code><br /><br />' . "\n";        echo '</div>';        if (!empty($back_url) && $exit) {            $goto_back_url='<a href="' . (strstr($back_url, '?') ? $back_url . '&amp;no_history=true' : $back_url . '?no_history=true') . '">&nbsp;';            echo '            </td> ' . "\n"               . '        </tr>' . "\n"               . '        <tr><td class="tblHeaders" align="center">';            echo '[' . $goto_back_url . $GLOBALS['strBack'] . '&nbsp;</a>]';        }        echo '            </td>' . "\n"           . '        </tr>' . "\n"           . '    </table>' . "\n\n";        if ($exit) {            require_once('./footer.inc.php');        }    } // end of the 'PMA_mysqlDie()' function    /**     * Defines whether a string exists inside an array or not     *

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?