daily pastebin goal
53%
SHARE
TWEET

Untitled

a guest Apr 14th, 2018 26 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4.  * Main loader script
  5.  *
  6.  * @package PhpMyAdmin
  7.  */
  8.  
  9. /**
  10.  * Gets some core libraries and displays a top message if required
  11.  */
  12. require_once 'libraries/common.inc.php';
  13.  
  14. /**
  15.  * display Git revision if requested
  16.  */
  17. require_once 'libraries/display_git_revision.lib.php';
  18. require_once 'libraries/Template.class.php';
  19.  
  20. /**
  21.  * pass variables to child pages
  22.  */
  23. $drops = array(
  24.     'lang',
  25.     'server',
  26.     'collation_connection',
  27.     'db',
  28.     'table'
  29. );
  30. foreach ($drops as $each_drop) {
  31.     if (array_key_exists($each_drop, $_GET)) {
  32.         unset($_GET[$each_drop]);
  33.     }
  34. }
  35. unset($drops, $each_drop);
  36.  
  37. /*
  38.  * Black list of all scripts to which front-end must submit data.
  39.  * Such scripts must not be loaded on home page.
  40.  *
  41.  */
  42. $target_blacklist = array (
  43.     'import.php', 'export.php'
  44. );
  45.  
  46. // If we have a valid target, let's load that script instead
  47. if (! empty($_REQUEST['target'])
  48.     && is_string($_REQUEST['target'])
  49.     && ! preg_match('/^index/', $_REQUEST['target'])
  50.     && ! in_array($_REQUEST['target'], $target_blacklist)
  51.     && in_array($_REQUEST['target'], $goto_whitelist)
  52. ) {
  53.     include $_REQUEST['target'];
  54.     exit;
  55. }
  56.  
  57. if (isset($_REQUEST['ajax_request']) && ! empty($_REQUEST['access_time'])) {
  58.     exit;
  59. }
  60.  
  61. // See FAQ 1.34
  62. if (! empty($_REQUEST['db'])) {
  63.     $page = null;
  64.     if (! empty($_REQUEST['table'])) {
  65.         $page = PMA_Util::getScriptNameForOption(
  66.             $GLOBALS['cfg']['DefaultTabTable'], 'table'
  67.         );
  68.     } else {
  69.         $page = PMA_Util::getScriptNameForOption(
  70.             $GLOBALS['cfg']['DefaultTabDatabase'], 'database'
  71.         );
  72.     }
  73.     include $page;
  74.     exit;
  75. }
  76.  
  77. /**
  78.  * Check if it is an ajax request to reload the recent tables list.
  79.  */
  80. require_once 'libraries/RecentFavoriteTable.class.php';
  81. if ($GLOBALS['is_ajax_request'] && ! empty($_REQUEST['recent_table'])) {
  82.     $response = PMA_Response::getInstance();
  83.     $response->addJSON(
  84.         'list',
  85.         PMA_RecentFavoriteTable::getInstance('recent')->getHtmlList()
  86.     );
  87.     exit;
  88. }
  89.  
  90. if ($GLOBALS['PMA_Config']->isGitRevision()) {
  91.     if (isset($_REQUEST['git_revision']) && $GLOBALS['is_ajax_request'] == true) {
  92.         PMA_printGitRevision();
  93.         exit;
  94.     }
  95.     echo '<div id="is_git_revision"></div>';
  96. }
  97.  
  98. // Handles some variables that may have been sent by the calling script
  99. $GLOBALS['db'] = '';
  100. $GLOBALS['table'] = '';
  101. $show_query = '1';
  102.  
  103. // Any message to display?
  104. if (! empty($message)) {
  105.     echo PMA_Util::getMessage($message);
  106.     unset($message);
  107. }
  108.  
  109. $common_url_query =  PMA_URL_getCommon();
  110. $mysql_cur_user_and_host = '';
  111.  
  112. // when $server > 0, a server has been chosen so we can display
  113. // all MySQL-related information
  114. if ($server > 0) {
  115.     include 'libraries/server_common.inc.php';
  116.     include 'libraries/StorageEngine.class.php';
  117.  
  118.     // Use the verbose name of the server instead of the hostname
  119.     // if a value is set
  120.     $server_info = '';
  121.     if (! empty($cfg['Server']['verbose'])) {
  122.         $server_info .= htmlspecialchars($cfg['Server']['verbose']);
  123.         if ($GLOBALS['cfg']['ShowServerInfo']) {
  124.             $server_info .= ' (';
  125.         }
  126.     }
  127.     if ($GLOBALS['cfg']['ShowServerInfo'] || empty($cfg['Server']['verbose'])) {
  128.         $server_info .= $GLOBALS['dbi']->getHostInfo();
  129.     }
  130.     if (! empty($cfg['Server']['verbose']) && $GLOBALS['cfg']['ShowServerInfo']) {
  131.         $server_info .= ')';
  132.     }
  133.     $mysql_cur_user_and_host = $GLOBALS['dbi']->fetchValue('SELECT USER();');
  134.  
  135.     // should we add the port info here?
  136.     $short_server_info = (!empty($GLOBALS['cfg']['Server']['verbose'])
  137.                 ? $GLOBALS['cfg']['Server']['verbose']
  138.                 : $GLOBALS['cfg']['Server']['host']);
  139. }
  140.  
  141. echo '<div id="maincontainer">' . "\n";
  142. // Anchor for favorite tables synchronization.
  143. echo PMA_RecentFavoriteTable::getInstance('favorite')->getHtmlSyncFavoriteTables();
  144. echo '<div id="main_pane_left">';
  145. if ($server > 0 || count($cfg['Servers']) > 1
  146. ) {
  147.     if ($cfg['DBG']['demo']) {
  148.         echo '<div class="group">';
  149.         echo '<h2>' . __('phpMyAdmin Demo Server') . '</h2>';
  150.         echo '<p style="margin: 0.5em 1em 0.5em 1em">';
  151.         printf(
  152.             __(
  153.                 'You are using the demo server. You can do anything here, but '
  154.                 . 'please do not change root, debian-sys-maint and pma users. '
  155.                 . 'More information is available at %s.'
  156.             ),
  157.             '<a href="http://demo.phpmyadmin.net/">demo.phpmyadmin.net</a>'
  158.         );
  159.         echo '</p>';
  160.         echo '</div>';
  161.     }
  162.     echo '<div class="group">';
  163.     echo '<h2>' . __('General settings') . '</h2>';
  164.     echo '<ul>';
  165.  
  166.     /**
  167.      * Displays the MySQL servers choice form
  168.      */
  169.     if ($cfg['ServerDefault'] == 0
  170.         || (! $cfg['NavigationDisplayServers']
  171.         && (count($cfg['Servers']) > 1
  172.         || ($server == 0 && count($cfg['Servers']) == 1)))
  173.     ) {
  174.         echo '<li id="li_select_server" class="no_bullets" >';
  175.         include_once 'libraries/select_server.lib.php';
  176.         echo PMA_Util::getImage('s_host.png') . " " . PMA_selectServer(true, true);
  177.         echo '</li>';
  178.     }
  179.  
  180.     /**
  181.      * Displays the mysql server related links
  182.      */
  183.     if ($server > 0 && ! PMA_DRIZZLE) {
  184.         include_once 'libraries/check_user_privileges.lib.php';
  185.  
  186.         // Logout for advanced authentication
  187.         if ($cfg['Server']['auth_type'] != 'config') {
  188.             if ($cfg['ShowChgPassword']) {
  189.                 $conditional_class = 'ajax';
  190.                 PMA_printListItem(
  191.                     PMA_Util::getImage('s_passwd.png') . "&nbsp;" . __('Change password'),
  192.                     'li_change_password',
  193.                     'user_password.php' . $common_url_query,
  194.                     null,
  195.                     null,
  196.                     'change_password_anchor',
  197.                     "no_bullets",
  198.                     $conditional_class
  199.                 );
  200.             }
  201.         } // end if
  202.         echo '    <li id="li_select_mysql_collation" class="no_bullets" >';
  203.         echo '        <form method="post" action="index.php">' . "\n"
  204.            . PMA_URL_getHiddenInputs(null, null, 4, 'collation_connection')
  205.            . '            <label for="select_collation_connection">' . "\n"
  206.            . '                ' . PMA_Util::getImage('s_asci.png') . "&nbsp;"
  207.                                . __('Server connection collation') . "\n"
  208.            // put the doc link in the form so that it appears on the same line
  209.            . PMA_Util::showMySQLDocu('Charset-connection')
  210.            . ': ' .  "\n"
  211.            . '            </label>' . "\n"
  212.  
  213.            . PMA_generateCharsetDropdownBox(
  214.                PMA_CSDROPDOWN_COLLATION,
  215.                'collation_connection',
  216.                'select_collation_connection',
  217.                $collation_connection,
  218.                true,
  219.                true
  220.            )
  221.            . '        </form>' . "\n"
  222.            . '    </li>' . "\n";
  223.     } // end of if ($server > 0 && !PMA_DRIZZLE)
  224.     echo '</ul>';
  225.     echo '</div>';
  226. }
  227.  
  228. echo '<div class="group">';
  229. echo '<h2>' . __('Appearance settings') . '</h2>';
  230. echo '  <ul>';
  231.  
  232. // Displays language selection combo
  233. if (empty($cfg['Lang']) && count($GLOBALS['available_languages']) > 1) {
  234.     echo '<li id="li_select_lang" class="no_bullets">';
  235.     include_once 'libraries/display_select_lang.lib.php';
  236.     echo PMA_Util::getImage('s_lang.png') . " " . PMA_getLanguageSelectorHtml();
  237.     echo '</li>';
  238. }
  239.  
  240. // ThemeManager if available
  241.  
  242. if ($GLOBALS['cfg']['ThemeManager']) {
  243.     echo '<li id="li_select_theme" class="no_bullets">';
  244.     echo PMA_Util::getImage('s_theme.png') . " "
  245.             .  $_SESSION['PMA_Theme_Manager']->getHtmlSelectBox();
  246.     echo '</li>';
  247. }
  248. echo '<li id="li_select_fontsize">';
  249. echo PMA_Config::getFontsizeForm();
  250. echo '</li>';
  251.  
  252. echo '</ul>';
  253.  
  254. // User preferences
  255.  
  256. if ($server > 0) {
  257.     echo '<ul>';
  258.     PMA_printListItem(
  259.         PMA_Util::getImage('b_tblops.png') . "&nbsp;" . __('More settings'),
  260.         'li_user_preferences',
  261.         'prefs_manage.php' . $common_url_query,
  262.         null,
  263.         null,
  264.         null,
  265.         "no_bullets"
  266.     );
  267.     echo '</ul>';
  268. }
  269.  
  270. echo '</div>';
  271.  
  272.  
  273. echo '</div>';
  274. echo '<div id="main_pane_right">';
  275.  
  276.  
  277. if ($server > 0 && $GLOBALS['cfg']['ShowServerInfo']) {
  278.  
  279.     echo '<div class="group">';
  280.     echo '<h2>' . __('Database server') . '</h2>';
  281.     echo '<ul>' . "\n";
  282.     PMA_printListItem(
  283.         __('Server:') . ' ' . $server_info,
  284.         'li_server_info'
  285.     );
  286.     PMA_printListItem(
  287.         __('Server type:') . ' ' . PMA_Util::getServerType(),
  288.         'li_server_type'
  289.     );
  290.     PMA_printListItem(
  291.         __('Server version:')
  292.         . ' '
  293.         . PMA_MYSQL_STR_VERSION . ' - ' . PMA_MYSQL_VERSION_COMMENT,
  294.         'li_server_version'
  295.     );
  296.     PMA_printListItem(
  297.         __('Protocol version:') . ' ' . $GLOBALS['dbi']->getProtoInfo(),
  298.         'li_mysql_proto'
  299.     );
  300.     PMA_printListItem(
  301.         __('User:') . ' ' . htmlspecialchars($mysql_cur_user_and_host),
  302.         'li_user_info'
  303.     );
  304.  
  305.     echo '    <li id="li_select_mysql_charset">';
  306.     echo '        ' . __('Server charset:') . ' '
  307.        . '        <span lang="en" dir="ltr">';
  308.     if (! PMA_DRIZZLE) {
  309.         echo '           '
  310.             . $mysql_charsets_descriptions[$mysql_charset_map['utf-8']];
  311.     }
  312.     echo '           (' . $mysql_charset_map['utf-8'] . ')'
  313.        . '        </span>'
  314.        . '    </li>'
  315.        . '  </ul>'
  316.        . ' </div>';
  317. }
  318.  
  319. if ($GLOBALS['cfg']['ShowServerInfo'] || $GLOBALS['cfg']['ShowPhpInfo']) {
  320.     echo '<div class="group">';
  321.     echo '<h2>' . __('Web server') . '</h2>';
  322.     echo '<ul>';
  323.     if ($GLOBALS['cfg']['ShowServerInfo']) {
  324.         PMA_printListItem($_SERVER['SERVER_SOFTWARE'], 'li_web_server_software');
  325.  
  326.         if ($server > 0) {
  327.             $client_version_str = $GLOBALS['dbi']->getClientInfo();
  328.             if (preg_match('#\d+\.\d+\.\d+#', $client_version_str)) {
  329.                 $client_version_str = 'libmysql - ' . $client_version_str;
  330.             }
  331.             PMA_printListItem(
  332.                 __('Database client version:') . ' ' . $client_version_str,
  333.                 'li_mysql_client_version'
  334.             );
  335.  
  336.             $php_ext_string = __('PHP extension:') . ' ';
  337.             if (PMA_DatabaseInterface::checkDbExtension('mysqli')) {
  338.                 $extension = 'mysqli';
  339.             } else {
  340.                 $extension = 'mysql';
  341.             }
  342.             $php_ext_string  .= $extension . ' '
  343.                 . PMA_Util::showPHPDocu('book.' . $extension . '.php');
  344.  
  345.             PMA_printListItem(
  346.                 $php_ext_string,
  347.                 'li_used_php_extension'
  348.             );
  349.  
  350.             $php_version_string = __('PHP version:') . ' ' . phpversion();
  351.  
  352.             PMA_printListItem(
  353.                 $php_version_string,
  354.                 'li_used_php_version'
  355.             );
  356.         }
  357.     }
  358.  
  359.     if ($cfg['ShowPhpInfo']) {
  360.         PMA_printListItem(
  361.             __('Show PHP information'),
  362.             'li_phpinfo',
  363.             'phpinfo.php' . $common_url_query,
  364.             null,
  365.             '_blank'
  366.         );
  367.     }
  368.     echo '  </ul>';
  369.     echo ' </div>';
  370. }
  371.  
  372. echo '<div class="group pmagroup">';
  373. echo '<h2>phpMyAdmin</h2>';
  374. echo '<ul>';
  375. $class = null;
  376. // We rely on CSP to allow access to http://www.phpmyadmin.net, but IE lacks
  377. // support here and does not allow request to http once using https.
  378. if ($GLOBALS['cfg']['VersionCheck']
  379.     && (! $GLOBALS['PMA_Config']->get('is_https') || PMA_USR_BROWSER_AGENT != 'IE')
  380. ) {
  381.     $class = 'jsversioncheck';
  382. }
  383. PMA_printListItem(
  384.     __('Version information:') . ' <span class="version">' . PMA_VERSION . '</span>',
  385.     'li_pma_version',
  386.     null,
  387.     null,
  388.     null,
  389.     null,
  390.     $class
  391. );
  392. PMA_printListItem(
  393.     __('Documentation'),
  394.     'li_pma_docs',
  395.     PMA_Util::getDocuLink('index'),
  396.     null,
  397.     '_blank'
  398. );
  399. PMA_printListItem(
  400.     __('Wiki'),
  401.     'li_pma_wiki',
  402.     PMA_linkURL('http://wiki.phpmyadmin.net/'),
  403.     null,
  404.     '_blank'
  405. );
  406.  
  407. // does not work if no target specified, don't know why
  408. PMA_printListItem(
  409.     __('Official Homepage'),
  410.     'li_pma_homepage',
  411.     PMA_linkURL('http://www.phpMyAdmin.net/'),
  412.     null,
  413.     '_blank'
  414. );
  415. PMA_printListItem(
  416.     __('Contribute'),
  417.     'li_pma_contribute',
  418.     PMA_linkURL('https://www.phpmyadmin.net/contribute/'),
  419.     null,
  420.     '_blank'
  421. );
  422. PMA_printListItem(
  423.     __('Get support'),
  424.     'li_pma_support',
  425.     PMA_linkURL('https://www.phpmyadmin.net/support/'),
  426.     null,
  427.     '_blank'
  428. );
  429. PMA_printListItem(
  430.     __('List of changes'),
  431.     'li_pma_changes',
  432.     'changelog.php' . PMA_URL_getCommon(),
  433.     null,
  434.     '_blank'
  435. );
  436. echo '    </ul>';
  437. echo ' </div>';
  438.  
  439. echo '</div>';
  440.  
  441. echo '</div>';
  442.  
  443. /**
  444.  * Warning if using the default MySQL privileged account
  445.  */
  446. if ($server != 0
  447.     && $cfg['Server']['user'] == 'root'
  448.     && $cfg['Server']['password'] == ''
  449. ) {
  450.     trigger_error(
  451.         __(
  452.             'You are connected as \'root\' with no password, which'
  453.             . ' corresponds to the default MySQL privileged account.'
  454.             . ' Your MySQL server is running with this default, is open to'
  455.             . ' intrusion, and you really should fix this security hole by'
  456.             . ' setting a password for user \'root\'.'
  457.         ),
  458.         E_USER_WARNING
  459.     );
  460. }
  461.  
  462. /**
  463.  * As we try to handle charsets by ourself, mbstring overloads just
  464.  * break it, see bug 1063821.
  465.  */
  466. if (@extension_loaded('mbstring') && @ini_get('mbstring.func_overload') > 1) {
  467.     trigger_error(
  468.         __(
  469.             'You have enabled mbstring.func_overload in your PHP '
  470.             . 'configuration. This option is incompatible with phpMyAdmin '
  471.             . 'and might cause some data to be corrupted!'
  472.         ),
  473.         E_USER_WARNING
  474.     );
  475. }
  476.  
  477. /**
  478.  * mbstring is used for handling multibytes inside parser, so it is good
  479.  * to tell user something might be broken without it, see bug #1063149.
  480.  */
  481. if (! @extension_loaded('mbstring')) {
  482.     trigger_error(
  483.         __(
  484.             'The mbstring PHP extension was not found and you seem to be using'
  485.             . ' a multibyte charset. Without the mbstring extension phpMyAdmin'
  486.             . ' is unable to split strings correctly and it may result in'
  487.             . ' unexpected results.'
  488.         ),
  489.         E_USER_WARNING
  490.     );
  491. }
  492.  
  493. if ($cfg['LoginCookieValidityDisableWarning'] == false) {
  494.     /**
  495.      * Check whether session.gc_maxlifetime limits session validity.
  496.      */
  497.     $gc_time = (int)@ini_get('session.gc_maxlifetime');
  498.     if ($gc_time < $GLOBALS['cfg']['LoginCookieValidity'] ) {
  499.         trigger_error(
  500.             __(
  501.                 'Your PHP parameter [a@http://php.net/manual/en/session.' .
  502.                 'configuration.php#ini.session.gc-maxlifetime@_blank]session.' .
  503.                 'gc_maxlifetime[/a] is lower than cookie validity configured ' .
  504.                 'in phpMyAdmin, because of this, your login might expire sooner ' .
  505.                 'than configured in phpMyAdmin.'
  506.             ),
  507.             E_USER_WARNING
  508.         );
  509.     }
  510. }
  511.  
  512. /**
  513.  * Check whether LoginCookieValidity is limited by LoginCookieStore.
  514.  */
  515. if ($GLOBALS['cfg']['LoginCookieStore'] != 0
  516.     && $GLOBALS['cfg']['LoginCookieStore'] < $GLOBALS['cfg']['LoginCookieValidity']
  517. ) {
  518.     trigger_error(
  519.         __(
  520.             'Login cookie store is lower than cookie validity configured in ' .
  521.             'phpMyAdmin, because of this, your login will expire sooner than ' .
  522.             'configured in phpMyAdmin.'
  523.         ),
  524.         E_USER_WARNING
  525.     );
  526. }
  527.  
  528. /**
  529.  * Check if user does not have defined blowfish secret and it is being used.
  530.  */
  531. if (! empty($_SESSION['encryption_key'])
  532.     && empty($GLOBALS['cfg']['blowfish_secret'])
  533. ) {
  534.     trigger_error(
  535.         __(
  536.             'The configuration file now needs a secret passphrase (blowfish_secret).'
  537.         ),
  538.         E_USER_WARNING
  539.     );
  540. }
  541.  
  542. /**
  543.  * Check for existence of config directory which should not exist in
  544.  * production environment.
  545.  */
  546. if (file_exists('config')) {
  547.     trigger_error(
  548.         __(
  549.             'Directory [code]config[/code], which is used by the setup script, ' .
  550.             'still exists in your phpMyAdmin directory. It is strongly ' .
  551.             'recommended to remove it once phpMyAdmin has been configured. ' .
  552.             'Otherwise the security of your server may be compromised by ' .
  553.             'unauthorized people downloading your configuration.'
  554.         ),
  555.         E_USER_WARNING
  556.     );
  557. }
  558.  
  559. if ($server > 0) {
  560.     $cfgRelation = PMA_getRelationsParam();
  561.     if (! $cfgRelation['allworks']
  562.         && $cfg['PmaNoRelation_DisableWarning'] == false
  563.     ) {
  564.         $msg_text = __(
  565.             'The phpMyAdmin configuration storage is not completely '
  566.             . 'configured, some extended features have been deactivated. '
  567.             . '%sFind out why%s. '
  568.         );
  569.         if ($cfg['ZeroConf'] == true) {
  570.             $msg_text .= '<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' .
  571.                 __(
  572.                     'Or alternately go to \'Operations\' tab of any database '
  573.                     . 'to set it up there.'
  574.                 );
  575.         }
  576.         $msg = PMA_Message::notice($msg_text);
  577.         $msg->addParam(
  578.             '<a href="' . $cfg['PmaAbsoluteUri'] . 'chk_rel.php'
  579.             . $common_url_query . '">',
  580.             false
  581.         );
  582.         $msg->addParam('</a>', false);
  583.         /* Show error if user has configured something, notice elsewhere */
  584.         if (!empty($cfg['Servers'][$server]['pmadb'])) {
  585.             $msg->isError(true);
  586.         }
  587.         $msg->display();
  588.     } // end if
  589. }
  590.  
  591. /**
  592.  * Warning about different MySQL library and server version
  593.  * (a difference on the third digit does not count).
  594.  * If someday there is a constant that we can check about mysqlnd,
  595.  * we can use it instead of strpos().
  596.  * If no default server is set, $GLOBALS['dbi'] is not defined yet.
  597.  * Drizzle can speak MySQL protocol, so don't warn about version mismatch for
  598.  * Drizzle servers.
  599.  * We also do not warn if MariaDB is detected, as it has its own version
  600.  * numbering.
  601.  */
  602. if (isset($GLOBALS['dbi'])
  603.     && !PMA_DRIZZLE
  604.     && $cfg['ServerLibraryDifference_DisableWarning'] == false
  605. ) {
  606.     /** @var PMA_String $pmaString */
  607.     $pmaString = $GLOBALS['PMA_String'];
  608.  
  609.     $_client_info = $GLOBALS['dbi']->getClientInfo();
  610.     if ($server > 0
  611.         && /*overload*/mb_strpos($_client_info, 'mysqlnd') === false
  612.         && /*overload*/mb_strpos(PMA_MYSQL_STR_VERSION, 'MariaDB') === false
  613.         && substr(PMA_MYSQL_CLIENT_API, 0, 3) != substr(
  614.             PMA_MYSQL_INT_VERSION, 0, 3
  615.         )
  616.     ) {
  617.         trigger_error(
  618.             PMA_sanitize(
  619.                 sprintf(
  620.                     __(
  621.                         'Your PHP MySQL library version %s differs from your ' .
  622.                         'MySQL server version %s. This may cause unpredictable ' .
  623.                         'behavior.'
  624.                     ),
  625.                     $_client_info,
  626.                     substr(
  627.                         PMA_MYSQL_STR_VERSION,
  628.                         0,
  629.                         strpos(PMA_MYSQL_STR_VERSION . '-', '-')
  630.                     )
  631.                 )
  632.             ),
  633.             E_USER_NOTICE
  634.         );
  635.     }
  636.     unset($_client_info);
  637. }
  638.  
  639. /**
  640.  * Warning about Suhosin only if its simulation mode is not enabled
  641.  */
  642. if ($cfg['SuhosinDisableWarning'] == false
  643.     && @ini_get('suhosin.request.max_value_length')
  644.     && @ini_get('suhosin.simulation') == '0'
  645. ) {
  646.     trigger_error(
  647.         sprintf(
  648.             __(
  649.                 'Server running with Suhosin. Please refer to %sdocumentation%s ' .
  650.                 'for possible issues.'
  651.             ),
  652.             '[doc@faq1-38]',
  653.             '[/doc]'
  654.         ),
  655.         E_USER_WARNING
  656.     );
  657. }
  658.  
  659. /**
  660.  * Warning about incomplete translations.
  661.  *
  662.  * The data file is created while creating release by ./scripts/remove-incomplete-mo
  663.  */
  664. if (file_exists('libraries/language_stats.inc.php')) {
  665.     include 'libraries/language_stats.inc.php';
  666.     /*
  667.      * This message is intentionally not translated, because we're
  668.      * handling incomplete translations here and focus on english
  669.      * speaking users.
  670.      */
  671.     if (isset($GLOBALS['language_stats'][$lang])
  672.         && $GLOBALS['language_stats'][$lang] < $cfg['TranslationWarningThreshold']
  673.     ) {
  674.         trigger_error(
  675.             'You are using an incomplete translation, please help to make it '
  676.             . 'better by [a@https://www.phpmyadmin.net/translate/'
  677.             . '@_blank]contributing[/a].',
  678.             E_USER_NOTICE
  679.         );
  680.     }
  681. }
  682.  
  683. /**
  684.  * prints list item for main page
  685.  *
  686.  * @param string $name            displayed text
  687.  * @param string $listId          id, used for css styles
  688.  * @param string $url             make item as link with $url as target
  689.  * @param string $mysql_help_page display a link to MySQL's manual
  690.  * @param string $target          special target for $url
  691.  * @param string $a_id            id for the anchor,
  692.  *                                used for jQuery to hook in functions
  693.  * @param string $class           class for the li element
  694.  * @param string $a_class         class for the anchor element
  695.  *
  696.  * @return void
  697.  */
  698. function PMA_printListItem($name, $listId = null, $url = null,
  699.     $mysql_help_page = null, $target = null, $a_id = null, $class = null,
  700.     $a_class = null
  701. ) {
  702.     echo PMA\Template::get('list/item')
  703.         ->render(
  704.             array(
  705.                 'content' => $name,
  706.                 'id' => $listId,
  707.                 'class' => $class,
  708.                 'url' => array(
  709.                     'href' => $url,
  710.                     'target' => $target,
  711.                     'id' => $a_id,
  712.                     'class' => $a_class,
  713.                 ),
  714.                 'mysql_help_page' => $mysql_help_page,
  715.             )
  716.         );
  717. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top