Afficher un message
Vieux 01/08/2006, 12h48   #15 (permalink)
SuperCed
Membre Confirmé
 
Date d'inscription: juillet 2004
Localisation: Mieszkam w Grenoblu
Messages: 268
Par défaut

Ok, c'est bon, j'ai la solution.

J'ai ajouté 2 lignes dans les fichiers dbi contenus dans le répertoire librairies/dbi/

Voici les lignes pour chaque fichier :
dans mysql.dbi.lib.php
Code :
 
mysql_query("SET SESSION CHARACTER_SET_RESULTS =latin1;",$link);
    mysql_query("SET SESSION CHARACTER_SET_CLIENT =latin1;",$link);
 
Après PMA_DBI_postConnect($link, $is_controluser);
et avant return $link;
Dans la fonction PMA_DBI_connect

Au même endroit, dans le fichier mysqli.dbi.lib.php :
Code :
 
mysqli_query($link, "SET SESSION CHARACTER_SET_RESULTS =latin1;");
mysqli_query($link, "SET SESSION CHARACTER_SET_CLIENT =latin1;");
 
Il s'agit en fait d'éviter au client mysql de faire une double conversion vers l'utf-8.

Voici le code complet des deux pages maintenant pour la fonction à modifier :
Code :
 
function PMA_DBI_connect($user, $password, $is_controluser = FALSE) {
    global $cfg, $php_errormsg;
 
    $server_port   = (empty($cfg['Server']['port']))
                   ? ''
                   : ':' . $cfg['Server']['port'];
 
    if (strtolower($cfg['Server']['connect_type']) == 'tcp') {
        $cfg['Server']['socket'] = '';
    }
 
    $server_socket = (empty($cfg['Server']['socket']))
                   ? ''
                   : ':' . $cfg['Server']['socket'];
 
    if (PMA_PHP_INT_VERSION >= 40300 && PMA_MYSQL_CLIENT_API >= 32349) {
        $client_flags = $cfg['Server']['compress'] && defined('MYSQL_CLIENT_COMPRESS') ? MYSQL_CLIENT_COMPRESS : 0;
        // always use CLIENT_LOCAL_FILES as defined in mysql_com.h
        // for the case where the client library was not compiled
        // with --enable-local-infile
        $client_flags |= 128;
    }
 
    if (empty($client_flags)) {
        $connect_func = 'mysql_' . ($cfg['PersistentConnections'] ? 'p' : '') . 'connect';
        $link = @$connect_func($cfg['Server']['host'] . $server_port . $server_socket, $user, $password);
    } else {
        if ($cfg['PersistentConnections']) {
            $link = @mysql_pconnect($cfg['Server']['host'] . $server_port . $server_socket, $user, $password, $client_flags);
        } else {
            $link = @mysql_connect($cfg['Server']['host'] . $server_port . $server_socket, $user, $password, FALSE, $client_flags);
        }
    }
 
    if (empty($link)) {
        PMA_auth_fails();
    } // end if
 
    PMA_DBI_postConnect($link, $is_controluser);
    
    mysql_query("SET SESSION CHARACTER_SET_RESULTS =latin1;",$link);
    mysql_query("SET SESSION CHARACTER_SET_CLIENT =latin1;",$link);
    return $link;
}
 
et

Code :
 
function PMA_DBI_connect($user, $password, $is_controluser = FALSE)
{
    global $cfg, $php_errormsg;
 
    $server_port   = (empty($cfg['Server']['port']))
                   ? FALSE
                   : (int) $cfg['Server']['port'];
 
    if (strtolower($cfg['Server']['connect_type']) == 'tcp') {
        $cfg['Server']['socket'] = '';
    }
 
    // NULL enables connection to the default socket
    $server_socket = (empty($cfg['Server']['socket']))
                   ? null
                   : $cfg['Server']['socket'];
 
    $link = mysqli_init();
 
    mysqli_options($link, MYSQLI_OPT_LOCAL_INFILE, TRUE);
 
    $client_flags = $cfg['Server']['compress'] && defined('MYSQLI_CLIENT_COMPRESS') ? MYSQLI_CLIENT_COMPRESS : 0;
 
    $return_value = @mysqli_real_connect($link, $cfg['Server']['host'], $user, $password, FALSE, $server_port, $server_socket, $client_flags);
 
    if ($return_value == FALSE) {
        PMA_auth_fails();
    } // end if
 
    PMA_DBI_postConnect($link, $is_controluser);
    mysqli_query($link, "SET SESSION CHARACTER_SET_RESULTS =latin1;");
    mysqli_query($link, "SET SESSION CHARACTER_SET_CLIENT =latin1;");
    return $link;
}
 
__________________
Хајде Јано коло да играмо
SuperCed est déconnecté   Envoyer un message privé Réponse avec citation