phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

phpMyAdmin-Konfigurationsspeicherfehler

Nachdem ich den Code durchgesehen hatte, landete ich bei dieser Funktion.

/**
 * 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;
}

Meine PHP-Kenntnisse sind begrenzt, aber ich kann sagen, dass es die Dateien im Verzeichnis plugins/transformations durchliest und diese Dateinamen an die Skripte zurückgibt, die auf diese Funktion verweisen. Als ich dieses Verzeichnis von einem Terminal aus durchsuchte, bemerkte ich, dass es mit ._-Dateien gefüllt war, die von finder erstellt wurden. Ich verwende einen Mac, um meine Entwicklung durchzuführen, und ich hatte diese neueste Kopie von phpmyadmin mit Finder anstelle von wget abgerufen, sodass alle diese ._-Dateien erstellt wurden. Etwas an ihnen hat diese Funktion durcheinander gebracht und nachdem ich sie mit einem Suchbefehl auf der Basisebene entfernt hatte, funktionierte alles wie beabsichtigt. Hier ist der Find-Befehl für alle, denen etwas Ähnliches passiert:

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

Führen Sie das erneut auf der Basisebene des phpmyadmin-Verzeichnisses aus und alles sollte gut sein.