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

Sprawdzenie w skrypcie strony czy użytkownik ma konto na forum


Przejdź do rozwiązania Rozwiązane przez DawPi,

Rekomendowane odpowiedzi

Witam

W skrypcie na stronie potrzebuję wiedzy czy dany użytkownik ma konto na forum. Próbowałem to zrobić w ten sposób: user podaje swoj login i hasło, robię takie zapytanie do bazy:

SELECT * FROM ibf_members WHERE members_l_username = $_POST["login"] AND members_pass_hash = md5($_POST["haslo"])

  ale niestety to nie działa. W jaki sposób jest tworzony wpis w tabeli members_pass_hash? Jest tam też members_pass_salt ale nie wiem co z tym zrobić.

Zaglądałem do IPBWI tylko że nie potrzebuję logować się do forum poprzez stronę, potrzebuje tylko informacji czy dany ktoś ma już konto na forum

 

Ktoś może mnie naprowadzić na właściwy trop?

Edytowane przez kodif
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Jeśli chcesz to zrobić przy pomocy loginu oraz bez hasła (jednocześnie chcesz sprawdzać poprawność danych, choć nie wiem czy to dobry pomysł, skoro zamysłem jest chyba tylko sprawdzenie czy użytkownik o takim loginie jest zarejestrowany na forum - musisz to uściślić) możesz skorzystać z metody o nazwie checkNameExists() z pliku admin/sources/classes/member/memberFunctions.php.

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Odnośnik do komentarza
Udostępnij na innych stronach

Zamysłem jest sprawdzenie czy użytkownik jest zarejestrowany na forum, a do tego potrzebuję również i jego hasła, bo co z tego że np login "kodif" jest w  bazie?

Każdy może wpisać login:kodif + dowolne hasło i funkcja checkNameExists() zwróci true, ale nadal nie wiadomo kto podał taki login

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager
  • Rozwiązanie

No to mogłeś napisać, że chodzi o weryfikację danych użytkownika, a nie sprawdzenie czy jest zarejestrowany. Nie napisałeś tego jasno.

 

Skoro tak to musisz spróbować zalogować użytkownika i sprawdzić zwróconą wartość.

 

Najprościej zrobić to przy pomocy metody loginAuthenticate() z pliku admin/sources/handlers/han_login.php - gdzie podajesz dane i zwraca true lub false w zależności od tego czy dane są poprawne czy nie.

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Odnośnik do komentarza
Udostępnij na innych stronach

No może napisałem nieprecyzyjnie, aczkolwiek mam wrażenie że sprawdzenie czy jest zarejestrowany polega właśnie na weryfikacji jego danych ;)

Grunt że już wiadomo o co chodzi ;)

 

Popatrzyłem gdzie mi kazałeś i tak sobie myślę..

Czy nie lepiej skorzystać z metody loginPasswordCheck()?

Bo loginAuthenticate() ma w opisie "Authenticate the user - creates account if possible" a po co mi tworzenie konta?

 

I drugie pytanie (lamerskie :) ) Jak takie funkcje wpiąć do swojego skryptu?  Nie za bardzo znam strukturę kodu IPB

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

No tak tak, źle wkleiłem - oczywiście, że loginPasswordCheck().

 

http://forum.invisionize.pl/topic/27693-uzycie-api-tylko-do-logowania/?p=167797

  • Lubię to 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Odnośnik do komentarza
Udostępnij na innych stronach

To juz wszystko wiem, dziękuję za pomoc.

 

Przy okazji, dla potomnych (bo to też znalazłem) : dane w tabeli ibf_members, w kolumnie members_pass_hash są tworzone w następujący sposób

 

 

md5( md5( $member['members_pass_salt'] ) . md5($password) )

 

 

z tym że dla root admina metoda jest inna (ale tej nie podam :P)

 

Można zamknąć.

Edytowane przez kodif
Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • 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ę.