Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Rekomendowane odpowiedzi

Opublikowano

Witam,

szukałem na forum, ale żadnych dokładnych wskazówek nie znalazłem.

Chciałbym zrobić logowanie do forum na stronie zbudowanej na autorskim CMS.

Z wersją 2.x taki skrypot mi działał (choć nie dokońca jakbym chciał) ale w wersji 3.0.5 coś się musiało zmienić z obsługą sesji bo nie działa wogóle.

Od razu powiem, że nie chcę korzystać z IP.Converge.

Sprawdzanie danych logowania (login i pass) nie stanowi problemu, chodzi mi głównie o to, że jak ktoś się zaloguje na stronie to też będzie zalogowany na forum i odwrotnie.

Czy wpis sesji do forum_sessions wystarczy?

Jak jest tworzone id w tej tabeli?

Potrafi mi ktoś pomóc?

Dzięki

Opublikowano (edytowane)

Witam,

szukałem na forum, ale żadnych dokładnych wskazówek nie znalazłem.

Chciałbym zrobić logowanie do forum na stronie zbudowanej na autorskim CMS.

Z wersją 2.x taki skrypot mi działał (choć nie dokońca jakbym chciał) ale w wersji 3.0.5 coś się musiało zmienić z obsługą sesji bo nie działa wogóle.

Od razu powiem, że nie chcę korzystać z IP.Converge.

Sprawdzanie danych logowania (login i pass) nie stanowi problemu, chodzi mi głównie o to, że jak ktoś się zaloguje na stronie to też będzie zalogowany na forum i odwrotnie.

Czy wpis sesji do forum_sessions wystarczy?

Jak jest tworzone id w tej tabeli?

Potrafi mi ktoś pomóc?

Dzięki

Witaj,

Tak na wstępie, wytłumacz mi, skoro chcesz zintegrować IP.Board ze swoim własnym, autorskim CMS, to dlaczego nie chcesz skorzystać z narzędzia, którego docelowym założeniem jest właśnie połączyć system logowania z innych źródeł z IP.Board? Zakładam, że Twoja wiedza z zakresu PHP, MySQL i OO jest większa niż napis 'Add Above' lub 'Add Before'? Przepraszam za takie pytanie, ale musimy dojść do sensownego porozumienia.

Przejdźmy do założeń i samego problemu - pamiętasz IP.Board w wersji 2.3.X? Czy od czasu przejścia na IP.Board 3.0.X, nie zauważyłeś pewnych zmian? W nich są między innymi:

  • Inna struktura katalogów
  • Przepisanie IP.Board z PHP4 na PHP5
  • Żadna modyfikacja z serii 2.3.X nie działa na IP.Board 3.0.X

Jeżeli nie zauważyłeś zmian, to absolutnie w niczym Ci nie pomożemy. Dodam Ci tylko od siebie, że IP.Board w wersji 3.0.X przeszło zupełną zmianę, panowie z Invision Power Services postawili na nowy schemat programowania, przygotowali narzędzia dla programistów i dali im pełne pole do popisu bez edycji kodu źródłowego. Na początek Twojego pytanie odpowiedziałem - nazwy funkcji zostały na 100% zmienione wg. notacji, że pierwszy człon piszę się z małej litery, a drugi i kolejny z dużej ( nie pamiętam niestety nazwy... ), więc, jeżeli miałeś funkcję -> $this->ipsclass->get_method( 'main' );, to w obecnej wersji napisaliby to tak -> $this->registry->getMethod( 'name' ); Twój skrypt dlatego zapewne nie działa.

Większość rzeczy się nie zmieniło, nawet komentarze zostawili te same, zmienili jedynie nazewnictwo i samo jądro IP.Board. Na początek Ci polecę to:

Developer: Log a user in

Developer: Creaing a login module

Powinny Ci rozjaśnić trochę sytuację z IP.Board. Wypada poczytać, poszukać w informacji dla developerów, ponieważ logicznym jest, że nie podadzą informacji o swoim API ( Google.pl jeśli nie wiesz co to ), zwykłemu klientowi, ponieważ przyprawi go to o ból głowy :-)

Życzę udanej zabawy z nowym, lepszym IP.Board!

Pozdrawiam,

Largo

Edytowane przez Largo

Jeżeli Ci pomogłem, nie zapomnij proszę o kliknięciu - add.png

Możesz liczyć na moją pomoc z zakresu: PHP5, MySQL, JavaScript i Ajax | W trakcie nauki CSS i xHTML!

W sprawie pomocy z zakresu IP.Board służę pomocą w dziale Zaawansowane programowanie IP.Board

Proszę o nie wysyłanie próśb PW o prywatną pomoc - pomagam JEDYNIE na forum lub na zlecenie!

Opublikowano

Nigdy nie miałem szczególnej potrzeby (ani ochoty) zagłębiać się w sposób w jaki to forum jest czy było pisane.

Z php i mysql jakoś sobie poradzę, dzięki za sugestie.

IP.Converge kiedyś zainstalowałem, ale że się tak wyrażę, nie działało chyba (o ile dobrze pamiętam) i napisałem coś po swojemu.

Chyba, że wiesz jak w prosty sposób przystosować IP.Converge do własnej strony?

Opublikowano

Jeden z przykładów jaki mi podesłałeś zadziałał.

Tworzy faktycznie sesje w forum_sessions, czyli to o co mi chodziło, ale tworzy wpis dla "gościa" mimo poprawnego zalogowania - bez wypełnionych pól:

member_name

seo_name

member_id

member_group

current_appcomponent

current_module

current_section

Teraz wystarczy, że je uzupełnie w bazie i już wszystko gra i jestem zalogowany.

Teraz mam pytanie: czy jest jeszcze jakaś funkcja, która wybiera te dane i zapisuje w tej tabeli? Oczywiście mogę to zrobić po swojemu, ale chciałem już może skorzystać z gotowej funkcji jeśli takowa jest.

Skorzystałem z tego przykładu http://forum.invisionize.pl/topic/3859-log-a-user-in/

  • Manager
Opublikowano

Plik: admin/sources/classes/session/publicSessions.php

	/**
 * Converts a guest session to a member session
 *
 * @access	public
 * @param	array 		Array of incoming data (member_id, member_name, member_group, login_type)
 * @return	string 		Current session ID
 */
public function convertGuestToMember( $data )
{

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano

Plik: admin/sources/classes/session/publicSessions.php

	/**
 * Converts a guest session to a member session
 *
 * @access	public
 * @param	array 		Array of incoming data (member_id, member_name, member_group, login_type)
 * @return	string 		Current session ID
 */
public function convertGuestToMember( $data )
{

Fajnie dzięki, niestety funkcja ta tworzy mi prawidłowe i wypełnone wpisy (sesje dla użytkownika zalogowanego) w tabeli forum_sessions tylko wtedy, gdy nie ma stworzonego wcześniej ciasteczka.

Gdy session_id jest już zapisane w ciastku, funkcja ta wypełnia w tabeli forum_sessions jedynie pole seo_name, a reszta jest zapisana jak sesja gościa.

Poza tym, nie wiem czemu ale po wykonaniu loginAuthenticate( $username, $email_address, $password ) ustawiana jest sesja dla gościa.

Gdy wykonuje convertGuestToMember( $data ) tworzony jest drugi wpis w forum_sessions już dla zalogowanego użytkownika.

Po wykonaniu tych dwóch funkcji mam 2 wpisy w forum_session z czego jeden dla zalogowanego a drugi dla gościa.

W ciastku nadal widnieje session_id dla wpisu gościa, jakby po wykonaniu convertGuestToMember( $data ) nie było uaktualniane session_id, które jest zapisane w ciastku.

Czy tak powinno być?

Jest jakaś funkcja coś na podobieństwo loginAuthenticate( $username, $email_address, $password ), która po poprawnym podaniu danych do logowania ustawi sesję dla użytkownika a nie dla gościa?

  • Manager
Opublikowano

Teraz Ci tego nie zdiagnozuję, gdyż to wymagałoby testów etc., jednak widzę, że z PHP sobie radzisz i pomyślisz nad kodem nie dodającym nową sesję, a aktualizującą poprzednią ( gościa ).

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano

Teraz Ci tego nie zdiagnozuję, gdyż to wymagałoby testów etc., jednak widzę, że z PHP sobie radzisz i pomyślisz nad kodem nie dodającym nową sesję, a aktualizującą poprzednią ( gościa ).

Byłoby to banalne, ale niestety funkcja loginAuthenticate( $username, $email_address, $password ) nie zwraca session_id, które tworzy i nie jestem w stanie dobrać się do odpowiedniego wpisu w tabeli, żeby zrobić update.

Niestety też nie mogę skorzytać z zapisanego session_id w ciastku, bo możliwe jest to dopiero po przeładowaniu strony.

Mogłbym ustawiać session_id w ciastku na takie jak sesja stworzona przez convertGuestToMember( $data ) i wtedy ładnie sie loguje i nie ma problemu, jednak tak jak pisałem w poprzednim poście - nie ma problemu gdy ciastka wczensiej nie ma.

No nic będę kombinował.

Dzięki.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • 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ę.