Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP + AD] Krzaki w Active Directory, Zapis danych w AD z poziomu strony
Domin
post
Post #1





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 17.11.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam,

Mam problem z zapisem polskich znaków do Active Directory. Zamiast polskich znaków w AD występują krzaki. Natomiast prawidłowo zapisane polskie znaki w AD, wyświetlane są prawidłowo na stronie.

Cała strona jest kodowana w UTF-8.

Do połączenia z katalogiem AD używam, klasy adLDAP dostępnej poniżej.

  1. http://adldap.sourceforge.net/


Czy wie ktoś jak rozwiązać problem? Z góry dzięki za pomoc.

Pozdrawiam,
Domin


--------------------
Głupi wie wszystko, mądry uczy się całe życie.
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




O ile mnie pamięć nie myli, to kodowanie w Windows było zawsze CP1250. [;


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Domin
post
Post #3





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 17.11.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Ja to wiem, ale nie będę przestawiał kodowania całej strony, żeby dział mi zapis do AD, logiczniej jest chyba konwertować zapisywany tekst, ale kiedy? Przed samym zapisem?


--------------------
Głupi wie wszystko, mądry uczy się całe życie.
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No, przecież nie będę Ci mówił, żeby całą stronę dostosować tongue.gif

Tylko teksty lecące do LDAP.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Domin
post
Post #5





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 17.11.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Ostatnio byłem trochę zapracowany i nie miałem czasu, aby sprawdzić rozwiązanie.... ale temat w tym momencie jest aktualny i dość pilny :-(

Niestety konwertowanie danych przed zapisaniem nie pomaga. Być może coś pominąłem, ale nie wydaje mi się... Strona jest kodowana w całości w UTF-8. Dane pobierane z AD wyświetlają się zawsze prawidłowo (oczywiście bez żadnej konwersji).

Próbowałem następujących funkcji...
utf8_decode
utf8_encode
iconv (tutaj próbowałem różnych kombinacji: UTF8, CP1250, ISO-8859-2 i nic...)

Czyli jak krzaki były zapisywane tak są, w zależności od kombinacji krzaki różnie wyglądały w AD (zrozumiałe).

Zauważyłem, że w AD typ pola jest Unicode String ale nie wiem co dalej, gdyż nie mam pomysłów...

Czy komuś przychodzi coś do głowy?

Czy ktoś wie jak rozwiązać ten problem?

Ten post edytował Domin 2.11.2009, 19:32:46


--------------------
Głupi wie wszystko, mądry uczy się całe życie.
Go to the top of the page
+Quote Post
phpion
post
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(Domin @ 4.11.2009, 00:45:48 ) *
iconv (tutaj próbowałem różnych kombinacji: UTF8, CP1250, ISO-8859-2 i nic...)

Nie wiem czy błąd wkradł się podczas pisania posta, ale na wszelki wypadek napiszę (może pomoże): nie CP1250 tylko Windows-1250.

PS: no i nie UTF8 tylko UTF-8.

Ten post edytował phpion 4.11.2009, 11:16:36
Go to the top of the page
+Quote Post
Domin
post
Post #7





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 17.11.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Windows-1250 również próbowałem...

Oczywiście UTF-8 (literówka)

Czy nikt nie ma pomysłów?


--------------------
Głupi wie wszystko, mądry uczy się całe życie.
Go to the top of the page
+Quote Post
mariusz g
post
Post #8





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 25.03.2006

Ostrzeżenie: (0%)
-----


Ja mam problem z wysyłaniem zapytania z php do ldap np:
  1. $sr=ldap_search($ldapconn, ... ....itd , "cn=".$_POST['nazwa']."");

jeśli w "nazwa" mam polski znak to nie wyszuka
jeśli dam bez polskiego znaku to znajdzie i wszystko co zwróci nie zawiera polskich znaków

macie jakiś pomysł na te polskie znaki ?

pozdrawiam
Go to the top of the page
+Quote Post
erix
post
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A przeczytałeś cały ten wątek?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
ssylwester
post
Post #10





Grupa: Zarejestrowani
Postów: 27
Pomógł: 2
Dołączył: 18.05.2010

Ostrzeżenie: (0%)
-----


Ja rozwiązałem ten problem. Choć siedziałem nad tym dosyć sporo analizując dokumentację adLdap i kod klasy. Rozwiązałem to poprzez zakomentowanie linijki:
  1. array_walk($attributes, array($this, 'encode8bit'));

w funkcji
  1. protected function adldap_schema($attributes)

i jak na razie działa bez zarzutu na EN i PL wersji Windows 2003.

Ten post edytował ssylwester 11.03.2011, 12:48:23
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 00:56