Przeniesienie Joomli na nowy serwer - krzaki
Strona 1 z 2 12 OstatniOstatni
Wyniki 1 do 10 z 17

Temat: Przeniesienie Joomli na nowy serwer - krzaki

  1. #1
    Nowicjusz
    Dołączył
    25-08-2006
    Wpisy
    24
    Punkty
    10

    Domyślny Przeniesienie Joomli na nowy serwer - krzaki

    Witam!

    Przeniosłem ostatnio swoją Joomlę na nowy serwer. Niestety, zamiast polskich znaków pojawiły się krzaki. Czy jest możliwe ich naprawienie? Mam jeszcze dostęp do starego serwera, więc mogę wykonać wszystko ponownie, już w prawidłowy sposób - o ile mi napiszecie, jaki on jest

    Baza jest kodowana w latin2. I jako taka byłą wgrywana.
    Jak to wygląda możecie zobaczyć na http://maxenglish.edu.pl
    Ostanio edytowane przez Amfidiusz : 21-07-2009 21:22

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2
    Senior zwiastun awatar
    Dołączył
    20-09-2005
    Wpisy
    27 315
    Punkty
    1142

    Domyślny

    Jakieś info o nowej bazie danych?
    Korzystaj i ciesz się!
    ===============
    Zwiastun
    Biblioteka Elektronicznej Dokumentacji Joomla!

  4. #3
    Nowicjusz
    Dołączył
    25-08-2006
    Wpisy
    24
    Punkty
    10

    Domyślny

    Hmm.. Wybacz, nie jestem specem w tej dziedzinie. Jakich info potrzebujesz?
    Kodowanie: latin2_general_ci
    W bazie nie ma polskich znaków: Zakończenie Roku
    Więc pewnie trzeba będzie ją ponownie wgrać - tylko w jaki sposób?

  5. #4
    Senior zwiastun awatar
    Dołączył
    20-09-2005
    Wpisy
    27 315
    Punkty
    1142

    Domyślny

    W phpMyAdmin masz informację o kodowaniu bazy danych oraz metodzie porównywania napisów
    Korzystaj i ciesz się!
    ===============
    Zwiastun
    Biblioteka Elektronicznej Dokumentacji Joomla!

  6. #5
    Nowicjusz
    Dołączył
    25-08-2006
    Wpisy
    24
    Punkty
    10

    Domyślny

    Cytat Wysłane przez zwiastun Zobacz wiadomość
    W phpMyAdmin masz informację o kodowaniu bazy danych
    Wiem, podałem powyżej.
    oraz metodzie porównywania napisów
    A tego nie umiem znaleźć...

    ----------EDIT-----------

    Za dużo nie pomogłeś, ale dzięki chociaż za zainteresowanie tematem. Nie mogę dłużej czekać i liczyć na to, że ktoś mi wytłumaczy, jak przenieść poprawnie bazę. Zaczynam zmieniać wpisy ręcznie - mam nadzieję, że w kilka godzin się wyrobię.

    Temat do zamknięcia.
    Ostanio edytowane przez Amfidiusz : 22-07-2009 07:01

  7. #6
    Senior zwiastun awatar
    Dołączył
    20-09-2005
    Wpisy
    27 315
    Punkty
    1142

    Domyślny

    Bez sensu! Ręczna zmiana bez wiedzy o przyczynie problemu zaowocuje co najwyżej jeszcze większym bałaganem.
    Pomóc to musisz sobie przede wszystkim sam. Informacja o kodowaniu znaków i informacja o metodzie porównywania napisów to dwie z podstawowych, jakie są potrzebne, żeby cokolwiek orzekać. I skoro się szuka porady w kwestii problemów z kodowaniem, to wypadałoby takie informacje podać od razu, a nie dopiero po wypytaniu o nie i na dodatek opatrywać to komentarzem, że nie otrzymałeś zbyt wielkiej pomocy (na szczęście, nie jest to komentarz nieżyczliwy ).
    W każdej tabeli - gdy w phpMyAdminie przeglądasz ich strukturę - masz kolumnę "metoda porównywania napisów".
    Informacje o kodowaniu powinieneś podać zarówno w odniesieniu do jednej, jak i do drugiej bazy (starej i nowej).
    Ponadto:
    - brak informacji o samym Joomla! (wydanie, skąd pobrane)
    - bak informacji, czy i jakie - opisane - sposoby rozwiązania problemów z kodowaniem stosowałeś (np. zdefiniowanie kodowania w pliku database.php)
    Korzystaj i ciesz się!
    ===============
    Zwiastun
    Biblioteka Elektronicznej Dokumentacji Joomla!

  8. #7
    Bywalec
    Dołączył
    19-10-2005
    Skąd
    Wrocław
    Wpisy
    228
    Punkty
    11

    Domyślny

    Zwiastun napisał:
    W każdej tabeli - gdy w phpMyAdminie przeglądasz ich strukturę - masz kolumnę "metoda porównywania napisów".
    Metoda porównywania napisów oraz jej zmiana zupełnie nic nie daje przy zmianie kodowania znaków. Jak sama nazwa mówi - słuzy jedynie do porównywania. Dokładniej skrypt przy zapytaniu do bazy danych wyswietli liste wyrazów wg alfabetu zgodnie z metodą porównania - czyli przykładowa czcionka z ogonkiem moze byc wyswietlona w innej kolejnosci alfabetycznej niz powinna, jesli nie zastosujemy odpowiedniej metody porównania.

    Tresc z krzakami mozna przekonwertować w taki sposób bezposrednio na stronie www.

    Kod PHP:
    <?php
        iconv_set_encoding
    ("internal_encoding""UTF-8");
        
    iconv_set_encoding("output_encodinf""ISO-8859-2");
        
    ob_start("ob_iconv_handler");
        
    // Tutaj możemy umieścić resztę kodu skryptu i strony zakodowanego w Unikodzie. 
        // Do przeglądarki trafi ISO-8859-2
    ?>
    Co do przekonwertowania pobranych plików z bazy danych ( z poziomu shell) to polecam doinstalować Iconv potrafi przekodować plik oraz standardowe wejście (stdin). W przypadku wywołania programu bez parametru z nazwą pliku, iconv będzie oczekiwał na tekst w stdin. Argumenty programu są bardzo proste: -f kodowanie określa kodowanie pierwotne (from), a -t kodowanie określa kodowanie docelowe (to). Jako ostatni argument podajemy nazwę pliku. I tak, w przypadku kodowania z ISO do Unikodu wywołamy program następująco:
    iconv -f ISO-8859-2 -t UTF-8 zażółć.txt > zażółć-utf.txt
    Dobrze, ale w przypadku gdy mamy wiele plików do przekodowania, ręczne wpisywanie komendy w linię poleceń będzie nużące. Co z tym zrobić? Iconv nie obsługuje konwersji wielu plików na raz, więc należy sobie pomóc językiem powłoki.
    for i in `ls *.txt`; do
    > cp $i /tmp/
    > iconv -f ISO-8859-2 -t UTF-8 /tmp/$i >$i
    > done
    Takim prostym skryptem przekodujemy wszystkie pliki z rozszerzeniem txt. Kopiujemy te pliki do katalogu /tmp/ ponieważ nie możemy czytać i zapisywać do tego samego pliku na raz.
    Lista kodowań (i ich nazw) możliwych do wykorzystania jest dostępna po uruchomieniu programu z parametrem --list.
    Ostanio edytowane przez hazael : 22-07-2009 14:31
    biżuteria etniczna, orientalna, arabska - https://piekielko.com

  9. #8
    Senior zwiastun awatar
    Dołączył
    20-09-2005
    Wpisy
    27 315
    Punkty
    1142

    Domyślny

    @Amfidiusz jak widzę poradził swoją metodą.
    @hazael: Wszystko ładnie pięknie, tylko na jakiej to podstawie mniemasz, ze tak trzeba i po co?
    Cały problem sprowadza się zwykle do poprawnego przeniesienia bazy danych. Żeby wszakże rozstrzygać cokolwiek, to trzeba by wiedzieć co, skąd, do czego i jak przenoszono.
    Korzystaj i ciesz się!
    ===============
    Zwiastun
    Biblioteka Elektronicznej Dokumentacji Joomla!

  10. #9
    Bywalec
    Dołączył
    19-10-2005
    Skąd
    Wrocław
    Wpisy
    228
    Punkty
    11

    Domyślny

    Cytat Wysłane przez zwiastun Zobacz wiadomość
    Wszystko ładnie pięknie, tylko na jakiej to podstawie mniemasz, ze tak trzeba i po co?
    Cały problem sprowadza się zwykle do poprawnego przeniesienia bazy danych. Żeby wszakże rozstrzygać cokolwiek, to trzeba by wiedzieć co, skąd, do czego i jak przenoszono.
    Napisałem tak, bo domyślam się z jakim problemem się boryka. Sam przez to przechodziłem przenosząc baze danych ze starej joomli na nową.

    W starej wersji jesli ktoś miał ustawione kodowanie na utf-8, to w bazie sql tresc z ogonkami była zapisywana w postaci krzaczków. W nowej wersji joomla tresc jest zapisywana w windows-1250. Więc odczytanie starej bazy w kodowaniu utf spowoduje krzaki w nowej joomli. Jedyna i szybka metoda to konwersja znaków w plikach bazie danych za pomocą iconv z utf-8 na win-1250.

    Oczywiście to były moje domysły. jeżeli jednak jest to ciągle ta sama joomla - bez modyfikacji, to oczywiscie problemem jest zle wykonany zrzut bazy danych.
    Ostanio edytowane przez hazael : 22-07-2009 17:20
    biżuteria etniczna, orientalna, arabska - https://piekielko.com

  11. #10
    Bywalec
    Dołączył
    19-10-2005
    Skąd
    Wrocław
    Wpisy
    228
    Punkty
    11

    Domyślny

    mozliwe jest też, że na poprzednim serwerze jest inna wersja bazy danych np starsza niż 4.1+ i wtedy mozna to rozwiazac w taki oto sposób:

    Kod PHP:
    <?php 
    /** 
    * Funkcja wczytuje plik sql do bazy danych 

    * @author FanFataL 
    * @param string Nazwa pliku z zrzutem bazy danych 
    * @param resource Uchwyt do połączenia z bazą danych 
    * @param [string] Kodowanie - tylko dla MySQL wersji 4.1 i wyższej (np. latin2) 
    * @return mixed 
    */ 
    function mysqlPutFile($url$conn_id$charset='latin2') { 
        
    // Sprawdzeine czy plik istnieje 
        
    if (!file_exists($url)) die('Brak pliku'); 

        
    // Sprawdzenie czy wersja bazy danych jest 4.1+ (thx to omeck) 
        
    $set_charset false
        if (
    function_exists('mysql_get_client_info')) { 
            if (
    preg_match('/^(\d+\.\d+)/'mysql_get_server_info($conn_id), $matched)) { 
                
    $v = (float)$matched[1]; 
                if (
    $v>=4.1
                    
    $set_charset true
            } 
        } 

        if (
    $set_charset && $charset) { 
            
    // Ustawienie kodowania dla połączenia 
            
    $query 'SET NAMES '.$charset
            @
    mysql_query($query$conn_id) or die(mysql_error($conn_id)); 

            
    // Ustawienie kodowania i systemu porównań dla bazy danych 
            
    $query 'SELECT DATABASE()'
            
    $result = @mysql_query($query$conn_id) or die(mysql_error($conn_id)); 
            
    $row mysql_fetch_row($result); 
            
    $query 'ALTER DATABASE `'.$row[0].'` DEFAULT CHARACTER SET '.$charset.' COLLATE '.$charset.'_general_ci'
            @
    mysql_query($query$conn_id) or die(mysql_error($conn_id)); 

            
    // Ustawienie kodowania i systemu porównań dla istniejących tabel 
            
    $query 'SHOW TABLES'
            
    $result = @mysql_query($query$conn_id) or die(mysql_error($conn_id)); 
            while (
    $row mysql_fetch_row($result)) { 
                
    $query 'ALTER TABLE `'.$row[0].'` DEFAULT CHARACTER SET '.$charset.' COLLATE '.$charset.'_general_ci'
                @
    mysql_query($query$conn_id) or die(mysql_error($conn_id)); 
            } 
        } 

        
    // Wczytanie pliku 
        
    if(!$file = @fopen($url'r')) die('Nie udało się odczytać pliku'); 
        
    $query ''
        
    $is_create false

        while (!
    feof($file)) { 
            
    $line fgets($file); 
            
    $tmp trim($line); 
            
    // Pominięcie komentarzy 
            
    if ($tmp!='' && substr($tmp02)!='--' && substr($tmp01)!='#') { 
                
    // Sprawdzenie czy nie jest tworzona tabela 
                
    if ($set_charset && $charset && !$is_create && preg_match('/^CREATE\s+TABLE\s+(IF\s+NOT\s+EXISTS\s+)?(`)?([\w\d\_]+)(\\2)?/im'trim($query), $matched)) { 
                    
    $is_create $matched[3]; // nazwa tabeli 
                

                
    // Sprawdzenie czy koniec zapytania 
                
    $end_pattern '/;\s*((\#|(\-\-)).*?)?$/'
                if (
    preg_match($end_pattern$line)) { 
                    
    $line preg_replace($end_pattern''$line); 
                    
    $query .= $line
                    
    $result = @mysql_query($query$conn_id) or die(mysql_error($conn_id)); 
                    if(
    $is_create) { // Jak jest tworzona to zmieniamy kodowanie i system porównań 
                        
    $query 'ALTER TABLE `'.$is_create.'` DEFAULT CHARACTER SET '.$charset.' COLLATE '.$charset.'_general_ci'
                        @
    mysql_query($query$conn_id) or die(mysql_error($conn_id)); 
                        
    $is_create false
                    } 
                    
    $query ''
                } 
                else { 
                    
    $query .= $line
                } 
            } 
        } 
        
    fclose($file); 


    // Przykład użycia 
    $con mysql_connect('localhost','user','*******'); 
    mysql_select_db('test'); 

    mysqlPutFile('./kaalog/plik.sql'$con'latin2'); 
    ?>
    Ostanio edytowane przez hazael : 22-07-2009 17:30
    biżuteria etniczna, orientalna, arabska - https://piekielko.com

Strona 1 z 2 12 OstatniOstatni

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •