Skocz do zawartości

Largo

Użytkownik
  • Postów

    1 157
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Treść opublikowana przez Largo

  1. Largo

    Kodowanie UTF-8

    Witaj, http://diablotrade.dkonto.pl/ Napisz cokolwiek, oto dane, ja Ci potem pokażę wynik w MySQL. Largo/test
  2. Largo

    Kodowanie UTF-8

    Netarteria - jeżeli to wina serwera postaw testowy i zapodaj dane do bazy i zobaczymy :-) Testowałem dhosting.pl i coś to samo jest
  3. Largo

    Kodowanie UTF-8

    Witam, Niestety, spróbowałem teraz dla latin2, przedtem utf8 i nawet funkcji PHP ( mysql_set_charset() ) i nic. Dać Ci dostęp do bazy?
  4. Largo

    Kodowanie UTF-8

    Witam, Yes, Sir! Standardowo serwer ustala UTF-8, ale dla potwierdzenia strzeliłem nową instalację na dev i tam było to samo.
  5. Largo

    Kodowanie UTF-8

    #1227 - Access denied; you need the SUPER privilege for this operation Znajdziesz mi sposób na ominięcie tego problemu? :-) PS. Masz bazę UTF-8? Zapodaj jakieś zdanie z polskimi znakami tutaj.
  6. Largo

    Kodowanie UTF-8

    Witam, HA! Nie prawda! To nie serwer to powoduje, bo Wordpress dodaje znaki polskie tak jak się je piszę, nawet tutaj :-) Wina, niestety leży po stronie naszego skryptu :-) Nad nim trzeba się pomęczyć.
  7. Largo

    Kodowanie UTF-8

    Witaj, Bardzo mi przykro, ale takie zapytanie nie daję nic :-) Aby to zmienić trzeba dać zapytanie: SET GLOBAL character_set_server = utf8 Ciekawy jestem, jaką Ci nazwę wyświetli root'a, bo mój hosting ma SUPER :-)
  8. Largo

    Kodowanie UTF-8

    Witam, Coś mi się wydaje, że coś jest nie tak z IP.Board. Inne skrypty PHP dodają odpowiednio znaki UTF-8, a IP.Board dodając wiele pierdół nic.
  9. Witam, W związku z wielkim zainteresowaniem i chęcią pomocy zapytam się tutaj ( przykro mi, baza danych zostanie zaśmiecona zbędnym tematem... ). Jak stworzyć forum IP.Board w wersji 2.3.6 na UTF-8? Dodam, że to powinno działać na ŚWIEŻEJ instalacji. A więc ja instaluję, zmieniam w ACP kodowanie na utf-8 i dodaję język pod to kodowanie. Wszystko działa, pokazuje polskie znaki na forum, ale dlaczego w bazie pokazuje takie coś:
  10. Witaj, Zainteresowała mnie ta wypowiedź @Micheal'a: Nie wiem jak to ma się do rzeczywistości. Ale spróbuję to ogarnąć. Pozdrawiam, Largo
  11. Witaj, Wysyłanie do większej ilości niż 1 osoba :-) Na dodatek, jeżeli send_pm jest w pętli zwraca błąd, że dostaje bool, a nie mysql_result :-) Pobiera wszystkich mediatorów i nie rozróżnia tych Online również. PS. Sorry Dawid, ale wiesz jak to jest po paru imprezach :-) Wezwę się za to, ale mam lekkie przytrzymanie umysłowe ;] Pozdrawiam, Largo
  12. Witam, Mam pewien problem, możliwe, że zaćmienie, w końcu tydzień domek wolny :-) Ale do sedna: /***********************************************/ // Send PM Notification of Request /***********************************************/ function send_pm_notification( $member = array(), $toOnline = FALSE ) { //----------------------------------------- // Is there any info about sender? //----------------------------------------- if ( !isset( $member ) AND !is_array( $member ) ) { return; } //----------------------------------------- // Load library //----------------------------------------- require_once( ROOT_PATH.'sources/lib/func_msg.php' ); $msg = new func_msg(); $msg->ipsclass =& $this->ipsclass; $msg->init(); //----------------------------------------- // Get the info for our recipients //----------------------------------------- $this->ipsclass->DB->build_query( array( 'select' => 'm.id, m.members_display_name, m.trader', 'from' => array( 'members' => 'm' ), 'where' => 'm.trader IN( '.$this->ipsclass->vars['ram_active_medi'].' )', 'add_join' => array( 0 => array( 'select' => 'me.vdirs', 'from' => array( 'member_extra' => 'me' ), 'where' => 'm.id=me.id', 'type' => 'left' ) ) ) ); $this->ipsclass->DB->exec_query(); while ( ( $members = $this->ipsclass->DB->fetch_row() ) ) { /* Only to Online? */ if ( $toOnline != FALSE ) { $data = $this->ipsclass->member_set_information( $members ); if ( $data['_online'] == 1 ) { $members[] = $data; } else { continue; } } //----------------------------------------- // Construct the PM //----------------------------------------- $msg->force_pm = 1; $this->post_key = md5( microtime() ); $msg->to = $members['members_display_name']; $msg->from_member = $member; $msg->msg_title = "Witaj {$members['members_display_name']}"; $msg->msg_post = "Zostałeś wezwany na mediatora!"; //----------------------------------------- // Send the PM //----------------------------------------- $msg->send_pm( array( 'save_only' => '', 'orig_id' => '', 'preview' => 0, 'track' => 0, 'add_sent' => 0, 'hide_cc' => 0, ) ); } //----------------------------------------- // Error? Show them! //----------------------------------------- if( $msg->error ) { var_dump ( $msg->error ); return FALSE; } else { return TRUE; } } Parametr $member to tablica o userze, który wysłał wezwanie podczas weryfikacji czy na 100% to użytkownik :-) Drugi to kwestia ustawień ACP czy ma wysyłać tylko do Online. Wydaje się, że działa, ale jednak nie. Nie robiłem testów na większej ilości userów. Pozdrawiam, Largo
  13. Witaj, A nie przypisać dynamicznie nowej zmiennej? :-) Służy od tego AS - przykład poniżej: SELECT m.*, m.id AS mid, t.* FROM ibf_members m LEFT JOIN ibf_table ON ( t.id=m.id ) Dla IP.Board pokażę Ci zapis: $this->ipsclass->DB->build_query( array( 'select' => 'ml.*', 'from' => array( 'medi_logs' => 'ml' ), 'add_join' => array( 0 => array( 'select' => 'm.id AS mid, m.members_display_name, m.mgroup', 'from' => array( 'members' => 'm' ), 'where' => 'm.id=ml.medi_id', 'type' => 'left' ), 1 => array( 'select' => 't.tid, t.title', 'from' => array( 'topics' => 't' ), 'where' => 'ml.topic_id=t.tid', 'type' => 'left' ) ), 'where' => 'req_id='.intval( $this->ipsclass->member['id'] ), 'order' => 'date DESC', 'limit' => array( $page, 10 ) ) ); Pozdrawiam, Largo
  14. Witaj, Fakt, wtedy pozbywamy się jednej pętli, ale akurat poprawię sobie do tablicy, aby w notyfikacji mieć informacje o mediatorach Online :-) Jak coś to zostaw temat, a napiszę dokładnie co i jak, albo zadam pytanie. Pozdrawiam, Largo
  15. Witaj, Przed wejściem do możliwości wysłania raportu, sprawdza czy jakikolwiek mediator z ich aktywnych grup istnieje i czy są online. Jeżeli trafi na pierwszy możliwy online kończy wykonywanie kodu. A jeżeli nie trafi na żadnego z wszystkich możliwych, ma pokazać formularz z pytaniem czy mimo to chcę kontynuować.
  16. //----------------------------------------- // Any mediator is Online? //----------------------------------------- if ( $this->ipsclass->vars['ram_no_online_pass'] ) { if ( $this->ipsclass->vars['ram_active_medi'] ) { /* Select all mediator's :-) */ $this->ipsclass->DB->build_query( array( 'select' => '*', 'from' => 'members', 'where' => 'trader IN ( '.$this->ipsclass->vars['ram_active_medi'].' )') ); $this->ipsclass->DB->exec_query(); /* What if tag exists but no members have it? Continue with code :-) */ if ( $this->ipsclass->DB->get_num_rows() ) { while ( $row = $this->ipsclass->DB->fetch_row() ) { $row['members_display_name'] = $this->ipsclass->make_name_formatted( $row['members_display_name'], $row['mgroup'] ); $mediators[] = $this->ipsclass->member_set_information( $row ); } $all = count( $mediators ); //----------------------------------------- // Check all mediator's online indicator //----------------------------------------- foreach ( $mediators AS $mediator ) { /* If at least one mediator is online, break that loop! Thx to oLaudix for great idea! */ if ( $mediator['_online'] == 1 ) { break; } else { $offline++; } } /* No online in loop? So, if no Online, check if all mediators is the same number as offline mediators */ if ( $all == $offline ) { $this->output .= $this->ipsclass->compiled_templates['skin_mediator']->no_medi_online(); return; } } } } Masz lepszy sposób?
  17. Ostatecznie chyba zostaje wersja ze zliczaniem wszystkich mediatorów z zapytania i w foreach dodawać offline i po pętli sprawdzać czy wszyscy są Offline na zasadzie warunku sprawdzającego czy wszyscy z zapytania są równi z wszystkimi z pętli.
  18. Witaj, Hmm - wyobraż sobie zrzucaną tablicę wszystkich danych z members :-) Sparsowaną poprzez member_set_information(). Nie ma sensu. A może wyjaśnić słownie co i jak, a ja sobie to zakoduje. Ale pomyślę nad tym jeszcze. Pozdrawiam, Largo
  19. Witaj, Tak, to jest oczywiste. Nie ma żadnego order i limit :-) Zwykły prosty select z MySQL. Co Ty na to? On prostu musi weryfikować jeszcze na koniec sytuację kiedy nie ma żadnego mediatora.
  20. Witam, Ciutkę pokminiłem i wydajniejszą opcją wydaje się zatrzymanie pętli podczas wystąpienia pierwszego mediatora Online. Wymodziłem taki kodzik: //----------------------------------------- // Check all mediator's online indicator //----------------------------------------- foreach ( $mediators AS $mediator ) { /* If at least one mediator is online, break that loop! */ if ( $mediator['_online'] == 1 ) { break; } else { $this->output .= $this->ipsclass->compiled_templates['skin_mediator']->no_medi_online(); return; } } Zastanawiam się jedynie co się stanie jeśli nie będzie żadnego mediatora? PS. Znalazłem chyba optymalne wyjście z sytuacji. Oto kod: //----------------------------------------- // Any mediator is Online? //----------------------------------------- if ( $this->ipsclass->vars['ram_no_online_pass'] ) { if ( $this->ipsclass->vars['ram_active_medi'] ) { /* Select all mediator's :-) */ $this->ipsclass->DB->build_query( array( 'select' => '*', 'from' => 'members', 'where' => 'trader IN ( '.$this->ipsclass->vars['ram_active_medi'].' )') ); $this->ipsclass->DB->exec_query(); /* What if tag exists but no members have it? Continue with code :-) */ if ( $this->ipsclass->DB->get_num_rows() ) { while ( $row = $this->ipsclass->DB->fetch_row() ) { $row['members_display_name'] = $this->ipsclass->make_name_formatted( $row['members_display_name'], $row['mgroup'] ); $mediators[] = $this->ipsclass->member_set_information( $row ); } $all = count( $mediators ); //----------------------------------------- // Check all mediator's online indicator //----------------------------------------- foreach ( $mediators AS $mediator ) { /* If at least one mediator is online, break that loop! Thx to oLaudix for great idea! */ if ( $mediator['_online'] == 1 ) { break; } else { $this->output .= $this->ipsclass->compiled_templates['skin_mediator']->no_medi_online(); return; } } } } } Z testów co zrobiłem jeżeli istnieją aktywne grupy, ale nie ma usera, omijaj to zabezpieczenie, w innym przypadku pokazuje formularz. Zrobię test na 3 osobach i dam znać. PS2. Cholera, nie do końca. W pętli foreach trzeba dodać chyba if z weryfikacją ilu Medi jest, bo np. mnie ( Largo ) przepuszcza, a inny nick nie ( Doomsday ). Obstawiam foreach.
  21. Witaj, Fakt, dzięki :-) A jak Ty nad myślałeś? Ja właśnie jestem ciekawy czy wybrałem dobry sposób.
  22. Witam, Hmm, tyle ile wymaga member_set_information()? Dałem *, bo on tam wymaga wielu pól, mam je listować? Nie widzę sensu. Do Online potrzebuję: last_visit, login_anonymous i last_activity, mam tylko je pobierać? Jak widzisz lukę w bezpieczeństwo to zmienię. Pozdrawiam, Largo
  23. Witam, Czy zaprezentowany poniżej kod jest optymalny? Oto opis jego działania - przed wezwanie mediatora skrypt ma sprawdzać czy są aktywni jacyś mediatorzy. Jeżeli nie, ma podawać formularz z zapytaniem czy ma dodać mimo to, ale tego nie dodałem tutaj :-) if ( $this->ipsclass->vars['ram_no_online_pass'] ) { if ( $this->ipsclass->vars['ram_active_medi'] ) { /* Select all mediator's :-) */ $this->ipsclass->DB->build_query( array( 'select' => '*', 'from' => 'members', 'where' => 'trader IN ( '.$this->ipsclass->vars['ram_active_medi'].' )') ); $this->ipsclass->DB->exec_query(); while ( $row = $this->ipsclass->DB->fetch_row() ) { $row = $this->ipsclass->member_set_information( $row ); $mediators[] = $row; } $mediators_count = count( $mediators ); $offline = 0; foreach ( $mediators AS $mediator ) { if ( $mediator['_online'] == 0 ) { $offline++; } } /* Is all mediators offline? */ if ( $offline == $mediators_count ) { $this->output .= $this->ipsclass->compiled_templatesp['skin_mediator']->no_medi_online(); return; } } } Pozdrawiam, Largo
  24. Nie chodzi o 'ważność'. Chodzi o to, że 'ważność' ustalamy my :-) Chodziło o to, aby te dane grupy trader'ów były dynamiczne i można je było zmieniać w zależności od ilości aktywnych w niej osób/nie chęci, bo mają dosyć lub innych :-) Teraz nawet dodam w opcjach specjalne ustawienia dla nich jak i inne pierdoły :-) Dziękuje Dawid za dobre nakierowanie, prawie dobrze myślałem, ale muszę dopracować etap 'projektowania' :-) Teraz temat na serio EOT :-) Jak coś PW istnieje. Pozdrawiam, Largo
  25. Witaj, Kojarzysz na forum ( znasz ) tag Trader: Nieznany Znany Mediator Trusted Scammer Dodałem do bazy nową tabelę ibf_mediators z danymi takimi jak ID, nazwa... Następnie w opcjach member'a dodałem listę dynamiczną ( zapytanie ) i generuje listę. Potem sprawdzam czy dany trader ( pole w members ) ma ID znajdujące się w tamtej tabeli. Na tej podstawię będę kolorował nazwę ( ipsclass.php ) i zastanawiam się czy jest do tabeli mediators dodawać takie pola jak kolor itd? A najważniejsze to ma służyć do listy Online mediatorów ( czy w ACP, z tych ustawień #show_traders# ) są ludzie online. A czemu taki dropdown? Założmy, że np. ja i admin mamy trusted, a oni są wyżej niż mediatorzy, ale nie chcę się nam przyjmować PW z informacją o prośbie pomocy i odznaczam Trusted i done :-) Teraz rozumiesz dokładnie? Można potem bez problemu zmienić ich kolor, nazwę, dodać nowe typy :-) Pozdrawiam, Largo
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.