sql >> Databasteknik >  >> Database Tools >> phpMyAdmin

phpMyAdmin-konfigurationslagringsfel

Efter att ha tittat igenom koden hamnade jag på den här funktionen.

/**
 * Gets all available MIME-types
 *
 * @access  public
 * @staticvar   array   mimetypes
 * @return array    array[mimetype], array[transformation]
 */
function PMA_getAvailableMIMEtypes()
{
    static $stack = null;

    if (null !== $stack) {
        return $stack;
    }

    $stack = array();
    $filestack = array();

    $handle = opendir('./libraries/plugins/transformations');

    if (! $handle) {
        return $stack;
    }

    while ($file = readdir($handle)) {
        $filestack[] = $file;
    }

    closedir($handle);
    sort($filestack);

    foreach ($filestack as $file) {
        if (preg_match('|^.*_.*_.*\.class\.php$|', $file)) {
            // File contains transformation functions.
            $parts = explode('_', str_replace('.class.php', '', $file));
            $mimetype = $parts[0] . "/" . $parts[1];
            $stack['mimetype'][$mimetype] = $mimetype;
            $stack['transformation'][] = $mimetype . ': ' . $parts[2];
            $stack['transformation_file'][] = $file;

        } elseif (preg_match('|^.*\.class.php$|', $file)) {
            // File is a plain mimetype, no functions.
            $base = str_replace('.class.php', '', $file);

            if ($base != 'global') {
                $mimetype = str_replace('_', '/', $base);
                $stack['mimetype'][$mimetype] = $mimetype;
                $stack['empty_mimetype'][$mimetype] = $mimetype;
            }
        }
    }

    return $stack;
}

Mina php-kunskaper är begränsade men jag kan se att det läser igenom filerna i plugins/transformations-katalogen och returnerar dessa filnamn till skripten som refererar till denna funktion. När jag bläddrade i den här katalogen från en terminal märkte jag att den var fylld med ._-filer skapade av finder. Jag använder en mac för att göra min utveckling på och jag hade hämtat den senaste kopian av phpmyadmin med finder istället för wget så alla dessa ._-filer skapades. Något med dem förstörde den här funktionen och när jag väl tog bort dem med ett sökkommando på basnivå fungerade allt som det var tänkt. Här är sökkommandot för alla som upplever något liknande:

find . -type f -name '._*' -exec rm {} \;

Återigen, kör det på basnivån i phpmyadmin-katalogen och allt borde vara bra.




  1. Hur man uppdaterar/infogar slumpmässiga datum i SQL inom ett specificerat datumintervall

  2. SQL Azure:SMO-undantag vid skriptning av objekt i SSMS 2008 R2

  3. phpMyAdmin-uppdatering till 4.3.6 genererar odefinierat index:navwork-fel

  4. Hämtar tidsstämpel för skapande av MySQL-rader från metadata?