Hogyan tudom egy bővítményben az ékezetes karaktereket beállítani?

Most éppen a “Staff directory” bővítménnyel próbálkozom - a hosszú ő és ű betűk helyett kérdőjelek vannak. A kódban nincs megadva karakterkódolás. Tudna segíteni valaki, melyik php-ba fájlba milyen parancsot kell beírni ehhez?











Lehet ezt általánosan javítani, mert már több pluginnál előfordult ilyen hiba.











Köszönettel,





boresuta

Ennek oka az, hogy latin1_swedish_ci be menti el az adatokat.











Próbáld ki azt, hogy:










  1. inaktiváld a bővítményt! (nem kell törölni, csak ne legyen aktív!)




  2. Menj be a phpmyadmin-ba (a tárhelyedhez biztos kaptál hozzáférést), keresed meg az adazbázisodat, menj bele és töröld ki ezt a 3 táblát (de csak ezeket!):











    wp_staff_directory





    wp_staff_directory_categories





    wp_staff_directory_templates











    Ezzel elvesznek az adatok, de gondolom még nincsennek feltöltve.
















  3. Keresd meg a a wp-content/plugins/staff-directory/admin/admin-functions.php -fájlt! Ezt fogjuk szerkeszteni. Ezt mentsd le és nyisd meg szerkesztésre.











    Ebben az admin-functions.php -fájlban keresd meg a 20. sort (meg ami utána van sql utasítás), ami így néz ki:















    $sql = “CREATE TABLE " . STAFF_DIRECTORY_TABLE . " (



    staff_id INT(11) NOT NULL AUTO_INCREMENT ,



    name VARCHAR(30) NOT NULL ,



    position VARCHAR(30) NOT NULL ,



    email_address VARCHAR(30) NOT NULL ,



    phone_number VARCHAR(30) NOT NULL ,



    photo VARCHAR(60) NOT NULL ,



    bio TEXT NOT NULL ,



    category varchar(3),



    image varchar(100),



    PRIMARY KEY (staff_id)



    )”;















    Ezt cseréld le erre:











    $sql = “CREATE TABLE " . STAFF_DIRECTORY_TABLE . " (



    staff_id INT(11) NOT NULL AUTO_INCREMENT ,



    name VARCHAR(30) character set utf8 ,



    position VARCHAR(30) character set utf8 ,



    email_address VARCHAR(30) character set utf8,



    phone_number VARCHAR(30) character set utf8,



    photo VARCHAR(60) character set utf8,



    bio TEXT character set utf8,



    category varchar(3) character set utf8,



    image varchar(100) character set utf8,



    PRIMARY KEY (staff_id)







    )”;











    Ezzel rákényszerítjük, hogy a tábla minden egyes eleme tuti utf8 legyen, mert phpmyadmin ban is meg lehetne, de ott valójában nem biztos hogy át is állítja!







    Ezután keresd meg a 46. sort, ott is lesz egy ilyen:











    $sql = “CREATE TABLE " . $staff_directory_categories . " (



    cat_id INT(11) NOT NULL AUTO_INCREMENT ,



    name VARCHAR(30) NOT NULL ,



    PRIMARY KEY (cat_id)



    )”;











    Ezt is cseréljük, utf-8 ra beállítva: (name részt elég)











    $sql = “CREATE TABLE " . $staff_directory_categories . " (



    cat_id INT(11) NOT NULL AUTO_INCREMENT ,



    name VARCHAR(30) character set utf8 ,



    PRIMARY KEY (cat_id)



    )”;











    És van még a 110. sorban is egy sql utasítás:











    $sql = “CREATE TABLE " . $staff_directory_templates . " (



    template_id INT(11) NOT NULL AUTO_INCREMENT ,



    template_name VARCHAR(50) NOT NULL ,



    template_code TEXT NOT NULL ,



    PRIMARY KEY (template_id)



    )”;











    …helyett ez legyen:











    $sql = “CREATE TABLE " . $staff_directory_templates . " (



    template_id INT(11) NOT NULL AUTO_INCREMENT ,



    template_name VARCHAR(50) character set utf8 ,



    template_code TEXT character set utf8 ,



    PRIMARY KEY (template_id)



    )”;















    A fájl módosítása után utf-8 ban mentsed el magát ezt a fájlt! Minden esetben, amikor ilyen történik, akkro valahol, valami nem utf-8! Mindennek utf-8 nak kell lennie, (adatbázis és a kapcsolódás, adatok, fájlok)







    Utána másold vissza ezt a fájlt a helyére, és csak aktiválni kell a bővítményt, le fog futni ez az install rész és megint elkészíti a 3 új táblát, de most már biztosan utf-8 lesz, így pl az Ő is Ő lesz és nem ? kerül a helyére.





    $sql = “CREATE TABLE " . STAFF_DIRECTORY_TABLE . " (





    staff_id INT(11) NOT NULL AUTO_INCREMENT ,





    name VARCHAR(30) NOT NULL ,





    position VARCHAR(30) NOT NULL ,





    email_address VARCHAR(30) NOT NULL ,





    phone_number VARCHAR(30) NOT NULL ,





    photo VARCHAR(60) NOT NULL ,





    bio TEXT NOT NULL ,





    category varchar(3),





    image varchar(100),





    PRIMARY KEY (staff_id)





    )”;























    Ezt cseréld le erre:















    $sql = “CREATE TABLE " . STAFF_DIRECTORY_TABLE . " (



    staff_id INT(11) NOT NULL AUTO_INCREMENT ,



    name VARCHAR(30) character set utf8 ,



    position VARCHAR(30) character set utf8 ,



    email_address VARCHAR(30) character set utf8,



    phone_number VARCHAR(30) character set utf8,



    photo VARCHAR(60) character set utf8,



    bio TEXT character set utf8,



    category varchar(3) character set utf8,



    image varchar(100) character set utf8,



    PRIMARY KEY (staff_id)







    )”;











    Ezzel rákényszerítjük, hogy a tábla minden egyes eleme tuti utf8 legyen, mert phpmyadmin ban is meg lehetne, de ott valójában nem biztos hogy át is állítja!







    Ezután keresd meg a 46. sort, ott is lesz egy ilyen:











    $sql = “CREATE TABLE " . $staff_directory_categories . " (



    cat_id INT(11) NOT NULL AUTO_INCREMENT ,



    name VARCHAR(30) NOT NULL ,



    PRIMARY KEY (cat_id)



    )”;











    Ezt is cseréljük, utf-8 ra beállítva: (name részt elég)











    $sql = “CREATE TABLE " . $staff_directory_categories . " (



    cat_id INT(11) NOT NULL AUTO_INCREMENT ,



    name VARCHAR(30) character set utf8 ,



    PRIMARY KEY (cat_id)



    )”;











    És van még a 110. sorban is egy sql utasítás:











    $sql = “CREATE TABLE " . $staff_directory_templates . " (



    template_id INT(11) NOT NULL AUTO_INCREMENT ,



    template_name VARCHAR(50) NOT NULL ,



    template_code TEXT NOT NULL ,



    PRIMARY KEY (template_id)



    )”;











    …helyett ez legyen:











    $sql = “CREATE TABLE " . $staff_directory_templates . " (



    template_id INT(11) NOT NULL AUTO_INCREMENT ,



    template_name VARCHAR(50) character set utf8 ,



    template_code TEXT character set utf8 ,



    PRIMARY KEY (template_id)



    )”;















    A fájl módosítása után utf-8 ban mentsed el magát ezt a fájlt! Minden esetben, amikor ilyen történik, akkro valahol, valami nem utf-8! Mindennek utf-8 nak kell lennie, (adatbázis és a kapcsolódás, adatok, fájlok)







    Utána másold vissza ezt a fájlt a helyére, és csak aktiválni kell a bővítményt, le fog futni ez az install rész és megint elkészíti a 3 új táblát, de most már biztosan utf-8 lesz, így pl az Ő is Ő lesz és nem ? kerül a helyére.





    $sql = “CREATE TABLE " . STAFF_DIRECTORY_TABLE . " (





    staff_id INT(11) NOT NULL AUTO_INCREMENT ,





    name VARCHAR(30) character set utf8 ,





    position VARCHAR(30) character set utf8 ,





    email_address VARCHAR(30) character set utf8,





    phone_number VARCHAR(30) character set utf8,





    photo VARCHAR(60) character set utf8,





    bio TEXT character set utf8,





    category varchar(3) character set utf8,





    image varchar(100) character set utf8,





    PRIMARY KEY (staff_id)











    )”;

















    Ezzel rákényszerítjük, hogy a tábla minden egyes eleme tuti utf8 legyen, mert phpmyadmin ban is meg lehetne, de ott valójában nem biztos hogy át is állítja!











    Ezután keresd meg a 46. sort, ott is lesz egy ilyen:















    $sql = “CREATE TABLE " . $staff_directory_categories . " (



    cat_id INT(11) NOT NULL AUTO_INCREMENT ,



    name VARCHAR(30) NOT NULL ,



    PRIMARY KEY (cat_id)



    )”;











    Ezt is cseréljük, utf-8 ra beállítva: (name részt elég)











    $sql = “CREATE TABLE " . $staff_directory_categories . " (



    cat_id INT(11) NOT NULL AUTO_INCREMENT ,



    name VARCHAR(30) character set utf8 ,



    PRIMARY KEY (cat_id)



    )”;











    És van még a 110. sorban is egy sql utasítás:











    $sql = “CREATE TABLE " . $staff_directory_templates . " (



    template_id INT(11) NOT NULL AUTO_INCREMENT ,



    template_name VARCHAR(50) NOT NULL ,



    template_code TEXT NOT NULL ,



    PRIMARY KEY (template_id)



    )”;











    …helyett ez legyen:











    $sql = “CREATE TABLE " . $staff_directory_templates . " (



    template_id INT(11) NOT NULL AUTO_INCREMENT ,



    template_name VARCHAR(50) character set utf8 ,



    template_code TEXT character set utf8 ,



    PRIMARY KEY (template_id)



    )”;















    A fájl módosítása után utf-8 ban mentsed el magát ezt a fájlt! Minden esetben, amikor ilyen történik, akkro valahol, valami nem utf-8! Mindennek utf-8 nak kell lennie, (adatbázis és a kapcsolódás, adatok, fájlok)







    Utána másold vissza ezt a fájlt a helyére, és csak aktiválni kell a bővítményt, le fog futni ez az install rész és megint elkészíti a 3 új táblát, de most már biztosan utf-8 lesz, így pl az Ő is Ő lesz és nem ? kerül a helyére.





    $sql = “CREATE TABLE " . $staff_directory_categories . " (





    cat_id INT(11) NOT NULL AUTO_INCREMENT ,





    name VARCHAR(30) NOT NULL ,





    PRIMARY KEY (cat_id)





    )”;

















    Ezt is cseréljük, utf-8 ra beállítva: (name részt elég)















    $sql = “CREATE TABLE " . $staff_directory_categories . " (



    cat_id INT(11) NOT NULL AUTO_INCREMENT ,



    name VARCHAR(30) character set utf8 ,



    PRIMARY KEY (cat_id)



    )”;











    És van még a 110. sorban is egy sql utasítás:











    $sql = “CREATE TABLE " . $staff_directory_templates . " (



    template_id INT(11) NOT NULL AUTO_INCREMENT ,



    template_name VARCHAR(50) NOT NULL ,



    template_code TEXT NOT NULL ,



    PRIMARY KEY (template_id)



    )”;











    …helyett ez legyen:











    $sql = “CREATE TABLE " . $staff_directory_templates . " (



    template_id INT(11) NOT NULL AUTO_INCREMENT ,



    template_name VARCHAR(50) character set utf8 ,



    template_code TEXT character set utf8 ,



    PRIMARY KEY (template_id)



    )”;















    A fájl módosítása után utf-8 ban mentsed el magát ezt a fájlt! Minden esetben, amikor ilyen történik, akkro valahol, valami nem utf-8! Mindennek utf-8 nak kell lennie, (adatbázis és a kapcsolódás, adatok, fájlok)







    Utána másold vissza ezt a fájlt a helyére, és csak aktiválni kell a bővítményt, le fog futni ez az install rész és megint elkészíti a 3 új táblát, de most már biztosan utf-8 lesz, így pl az Ő is Ő lesz és nem ? kerül a helyére.





    $sql = “CREATE TABLE " . $staff_directory_categories . " (





    cat_id INT(11) NOT NULL AUTO_INCREMENT ,





    name VARCHAR(30) character set utf8 ,





    PRIMARY KEY (cat_id)





    )”;

















    És van még a 110. sorban is egy sql utasítás:















    $sql = “CREATE TABLE " . $staff_directory_templates . " (



    template_id INT(11) NOT NULL AUTO_INCREMENT ,



    template_name VARCHAR(50) NOT NULL ,



    template_code TEXT NOT NULL ,



    PRIMARY KEY (template_id)



    )”;











    …helyett ez legyen:











    $sql = “CREATE TABLE " . $staff_directory_templates . " (



    template_id INT(11) NOT NULL AUTO_INCREMENT ,



    template_name VARCHAR(50) character set utf8 ,



    template_code TEXT character set utf8 ,



    PRIMARY KEY (template_id)



    )”;















    A fájl módosítása után utf-8 ban mentsed el magát ezt a fájlt! Minden esetben, amikor ilyen történik, akkro valahol, valami nem utf-8! Mindennek utf-8 nak kell lennie, (adatbázis és a kapcsolódás, adatok, fájlok)







    Utána másold vissza ezt a fájlt a helyére, és csak aktiválni kell a bővítményt, le fog futni ez az install rész és megint elkészíti a 3 új táblát, de most már biztosan utf-8 lesz, így pl az Ő is Ő lesz és nem ? kerül a helyére.





    $sql = “CREATE TABLE " . $staff_directory_templates . " (





    template_id INT(11) NOT NULL AUTO_INCREMENT ,





    template_name VARCHAR(50) NOT NULL ,





    template_code TEXT NOT NULL ,





    PRIMARY KEY (template_id)





    )”;

















    …helyett ez legyen:















    $sql = “CREATE TABLE " . $staff_directory_templates . " (



    template_id INT(11) NOT NULL AUTO_INCREMENT ,



    template_name VARCHAR(50) character set utf8 ,



    template_code TEXT character set utf8 ,



    PRIMARY KEY (template_id)



    )”;















    A fájl módosítása után utf-8 ban mentsed el magát ezt a fájlt! Minden esetben, amikor ilyen történik, akkro valahol, valami nem utf-8! Mindennek utf-8 nak kell lennie, (adatbázis és a kapcsolódás, adatok, fájlok)







    Utána másold vissza ezt a fájlt a helyére, és csak aktiválni kell a bővítményt, le fog futni ez az install rész és megint elkészíti a 3 új táblát, de most már biztosan utf-8 lesz, így pl az Ő is Ő lesz és nem ? kerül a helyére.





    $sql = “CREATE TABLE " . $staff_directory_templates . " (





    template_id INT(11) NOT NULL AUTO_INCREMENT ,





    template_name VARCHAR(50) character set utf8 ,





    template_code TEXT character set utf8 ,





    PRIMARY KEY (template_id)





    )”;























    A fájl módosítása után utf-8 ban mentsed el magát ezt a fájlt! Minden esetben, amikor ilyen történik, akkro valahol, valami nem utf-8! Mindennek utf-8 nak kell lennie, (adatbázis és a kapcsolódás, adatok, fájlok)











    Utána másold vissza ezt a fájlt a helyére, és csak aktiválni kell a bővítményt, le fog futni ez az install rész és megint elkészíti a 3 új táblát, de most már biztosan utf-8 lesz, így pl az Ő is Ő lesz és nem ? kerül a helyére.

Köszönöm szépen,











nálam kicsit másképpen néznek ki a kódok, de a phpmyadmin jó ötlet volt, átállítottam a mezők nyelvkiosztását, és megoldódott a probléma.











Köszönöm a segítséget, ha közvetve is, de benne volt a megoldás!