|
|
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo
|
|
Przesunięty przez: joli 01-05-2009, 14:19 |
Baza danych - gdzie znajdują się informacje... |
Autor |
Wiadomość |
piekarz
Posty: 79
|
Wysłany: 15-02-2009, 13:29 Baza danych - gdzie znajdują się informacje...
|
|
|
Witam, chciałem zrobić własną prostą rejestrację, która połączyłaby rejestrowanie forum phpbb by przemo i cms;a extreme fusion.
Przechodząc przez pisanie kolejnych linijek kodu stwierdziłem, że nie mogę znaleźć w bazie danych informacji o tym gdzie przechowywane są:
- informacja o ostatnio zarejestrowanym użytkowniku
- ilość zarejestrowanych użytkowników na forum
Chciałbym by podczas rejestracji, którą stworzę, te 2 rzeczy się zmieniały, a zatem pytam gdzie w bazie danych -> tabela -> rekord znajdują się te informacje.
Drugie pytanie jest bardziej ogólne. Generalnie wolałbym ominąć dokładną analizę rejestracji domyślnej na forum przema i po prostu napisać ją samemu, dlatego zadam to pytanie:
Czy powinienem jeszcze zmienić/dodawać jakieś wartości przy dodawaniu nowego użytkownika na forum za pomocą mojego skryptu rejestracji? Czy może wystarczą już tylko dane użytkownika i te 2 informację o które pytałem w 1 pytaniu?
Z góry dziękuję za odpowiedzi. |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
nicon
Pomógł: 359 razy Posty: 2151
|
Wysłany: 15-02-2009, 13:50
|
|
|
piekarz napisał/a: | - informacja o ostatnio zarejestrowanym użytkowniku |
Bo nie ma, po prostu to selectuje ostatni username z phpbb_users.
piekarz napisał/a: | - ilość zarejestrowanych użytkowników na forum |
j/w, funkcja count-1 w select.
piekarz napisał/a: | Czy powinienem jeszcze zmienić/dodawać jakieś wartości przy dodawaniu nowego użytkownika na forum za pomocą mojego skryptu rejestracji? Czy może wystarczą już tylko dane użytkownika i te 2 informację o które pytałem w 1 pytaniu? |
Raczej tak |
_________________ Pozdrawiam, Piotr `nicon` Kowalczyk.
Pomoc poza forum tylko odpłatna.
DBA - jak sama nazwa wskazuje - jest to osoba, która dba o bazy danych. |
|
|
|
|
Radek
Pomógł: 955 razy Posty: 4614
|
Wysłany: 15-02-2009, 14:07
|
|
|
piekarz napisał/a: | - informacja o ostatnio zarejestrowanym użytkowniku |
phpbb_config -> config_name = newestuser
Cytat: | - ilość zarejestrowanych użytkowników na forum |
phpbb_config -> config_name = usercount
Po zmianie tych danych musisz wyczyścić cache. |
|
|
|
|
piekarz
Posty: 79
|
Wysłany: 15-02-2009, 14:24
|
|
|
RuseK napisał/a: | newestuser |
Ok, to mam, a możesz mi wytłumaczyć co oznacza ten zapis, bo mam tam taką wartość:
Kod: | a:2:{s:8:"username";s:4:"ziom";s:7:"user_id";s:1:"3";} |
rozumiem, ze "username" wskazuje, ze "ziom" jest ostatnio zarejstrowaną osobą, tak samo "user_id" wskazuje ze "3" to nr id ostatnio zarejestrowanego uzytkownika, natomiast nie bardzo czaję skąd i po co bierze się reszta tych dziwnych cferek i nawiasików.
RuseK napisał/a: | Po zmianie tych danych musisz wyczyścić cache. | Ok, a zatem pewnie istnieje jakaś funkcja, która to robi, mógłbyś mi wypisać gdzie znajduje się ta funkcja lub napisać jak ją użyć w zewnętrznym pliku -> w sensie w moim formularzu rejestracji?
EDIT:
Chciałem się zapytać, czy rozwiązanie, które znalazłem jest prawidłowe.
Czyli tak, rozumiem, że po dodaniu nowego użytkownika do bazy powinienem użyć funkcji:
Kod: | db_stat_update('newestuser'); |
W takiej postaci, a zaraz po nie wywołać 3x funkcję:
Kod: |
sql_cache('clear', 'user_groups');
sql_cache('clear', 'groups_data');
sql_cache('clear', 'moderators_list'); |
w takiej postaci? I powinno działać? Niech ktoś napisze mi czy dobrze myślę. Będę bardzo wdzięczny. |
|
|
|
|
Radek
Pomógł: 955 razy Posty: 4614
|
Wysłany: 15-02-2009, 19:08
|
|
|
piekarz napisał/a: | Czyli tak, rozumiem, że po dodaniu nowego użytkownika do bazy powinienem użyć funkcji:
Kod: |
db_stat_update('newestuser'); | |
Dokładnie. Po tym do czyszczenia cache używasz funkcji sql_cache():
Kod: | sql_cache('clear', 'board_config');
sql_cache('clear', 'user_groups');
sql_cache('clear', 'groups_data'); |
Ważne jest, żeby wyczyścić plik board_config.php z katalogu cache/
Co do odczytu danych z phpbb_config -> config_name = newestuser:
Zapisana jest tam zserializowana tablica, aby ją odczytać musisz użyć kodu:
Kod: | $newestuser = unserialize($board_config['newestuser']); |
(zakładając że Twój kod jest zintegrowany z phpBB - dane znajdują się w tablicy $board_config, jeżeli nie musisz newestuser odczytać z bazy danych)
Teraz pod $newestuser masz tablicę o elementach: username, user_id
(odczyt: $newestuser['username'], $newestuser['user_id'] ) |
|
|
|
|
piekarz
Posty: 79
|
Wysłany: 15-02-2009, 19:51
|
|
|
Hm, generalnie mój kod na pewno nie jest zintegrowany z phpbb, raczej bardziej z extreme.
Na chwilę obecną zrobiłem już wszelkie testowanie czy użytkownik istnieje w obu bazach i sprawdzenie email'i, teraz konstruuje już kod odpowiedzialny za dodanie nowego usera.
Przy załadowaniu functions.php niestety wywaliło mi błąd, dlatego zrobiłem osobny plik z 1 funkcją tą - Kod: | db_stat_update('newestuser'); |
i zaincludeowalem ten plik.
Aczkolwiek w tej funkcji jest sporo phpBBowych zmiennych i teraz zastanawiam się które mam pliki include;ować, żeby działało to:
Kod: | . USERS_TABLE .
. ANONYMOUS .
message_die
GENERAL_ERROR
. CONFIG_TABLE .
update_config |
|
|
|
|
|
Radek
Pomógł: 955 razy Posty: 4614
|
Wysłany: 15-02-2009, 21:17
|
|
|
Zamiast kombinować na początku pliku wstaw:
Kod: | define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx); |
i teraz w $phpbb_root_path ustaw sciezke do forum. Bedziesz mgol uzywac wszystkich funkcji / stalych z phpBB. |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
piekarz
Posty: 79
|
Wysłany: 15-02-2009, 21:59
|
|
|
No i właśnie tu się tworzy problem, bo nie wyświetla się formularz rejestracyjny, tak jakby kod po tych linijkach co dopisalem w ogóle nie był interpretowany.
Mam za to pomysł jak to rozwiązać.
Gdybym stworzył plik, który wykonywałby dodanie nowego usera do bazy przema, razem z tą aktualizacją ostatnio zarejestrowanego, to mógłbym zrobić w kodzie przekierowanie na ten plik, on by się wykonał i potem zrobiłbym tam przekierowanie spowrotem do register, który wyświetliłby info o pomyślnej rejestracji.
Niestety nie wiem jak zrobić przekierowanie na konkretny adres poza headerem. W sensie gdy zrobi się przekierowanie headerem w środku pliku, to wyskoczy błąd, że sekcja head została załadowana.
No chyba, że jednak dałoby się naprawić to, że nie wyświetla mi się reszta strony po dodaniu tych linijek.
EDIT:
Dobra, rejestracja mi działa, w zasadzie wszystko ładnie i pięknie temat do zamknięcia. |
|
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!
Powered by phpBB modified by Przemo © 2003 phpBB
| Strona wygenerowana w 0,07 sekundy. Zapytań do SQL: 13 | |
|
|