phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

FAQFAQ - PIERWSZA POMOC!!  regulaminREGULAMIN  SzukajSZUKAJ  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload  katalog Forów DyskusyjnychKatalog Forów   FAQ Video tutoriale

Poprzedni temat «» Następny temat
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.
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
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

Skocz do:  

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,09 sekundy. Zapytań do SQL: 12
Polecane serwisy

Najlepsze oprogramowanie do prowadzenia sklepu internetowegoNajlepszy program do sklepu firmowany przez Przem'a

Sklep z gadżetami

serwis laptopów

phpbb

Design Cart - Tworzenie sklepu internetowego

iRonin.IT

• Zamów reklamę