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

Dodawanie kont na IPS 4.1C


Split

Rekomendowane odpowiedzi

Cześć. Mam pewien problem. Otóż chciałem sprawdzić działanie funkcji, która dodaje konto na IPS 4.1. Oczywiście wszystko jest dobrze oprócz hasła, bo podczas logowania wyświetla się informacja że hasło jest nieprawidłowe.

 

$member = new \IPS\Member;
$member->name = $username;
$member->email = $email;
$member->members_pass_hash = password_hash($password, PASSWORD_BCRYPT);
//$member->members_bitoptions['validating'] = true;
$member->save();

 

Wszystko zwraca prawidłowo, nazwę użytkownika, adres e-mail, hasło. Lecz z tego co zauważyłem IPS 4.1 posiada inne kodowanie. Przeszukałem wiele for na ten temat i nic nie znalazłem.

 

Drugi problem. Po zalogowaniu mam grupę Gościa zamiast Użytkownika. Muszę po rejestracji zmieniać grupę manualnie czy zmieni się ona automatycznie? Dodam że chcę aby konto było od razu aktywne bez potwierdzenia na e-mail.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Tak spróbuj:

$existingEmail = \IPS\Member::load( $_POST['CUST_EMAIL'], 'email' );

if ( !$existingEmail->member_id )
{
	$member = new \IPS\Member;
	$member->name				= $_POST['CUST_NAME'];
	$member->email				= $_POST['CUST_EMAIL'];
	$password = \IPS\Login::generateRandomString( 8 );
	$member->setLocalPassword( $password );
	$member->joined = time();
	$member->member_group_id	= $group;
	$member->save();
}

Kod oczywiście do edycji (!).

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

14 minut temu, DawPi napisał:

Tak spróbuj:


$existingEmail = \IPS\Member::load( $_POST['CUST_EMAIL'], 'email' );

if ( !$existingEmail->member_id )
{
	$member = new \IPS\Member;
	$member->name				= $_POST['CUST_NAME'];
	$member->email				= $_POST['CUST_EMAIL'];
	$password = \IPS\Login::generateRandomString( 8 );
	$member->setLocalPassword( $password );
	$member->joined = time();
	$member->member_group_id	= $group;
	$member->save();
}

Kod oczywiście do edycji (!).

 

Mój kod

$member = new \IPS\Member;
$member->name = $username;
$member->email = $email;
$member->setLocalPassword($password);
$member->members_bitoptions['validating'] = false;
$member->save();

 

Nie działa. Przedtem działało tylko było złe hasło a po dodaniu tej zmiennej nie tworzy w ogóle konta.

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

  • Manager

To cały kod? Nie sądzę. Daj więcej info - gdzie dodajesz ten kod, jakie zmienne stosujesz etc.

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

  • Manager

Dostałem. Kod jest "prawidłowy". Teraz trzeba go zdebugować i sprawdzić który fragment powoduje problemy.

W logach w ACP nic nie ma?

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

  • Manager

A daj czysty kod ten co podałem i zamiast zmiennych jakieś przykładowe dane - zobacz czy ten kod w ogóle działa. :)

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

  • Manager

To szukaj przyczyn po tamtym skrypcie. Zobacz, że działa. Czysty plik test.php w głównym folderze forum:

<?php

    require_once 'init.php';
	$member = new \IPS\Member;
	$member->name = 'super_mega_nick';
	$member->email = '[email protected]';
	$member->members_pass_hash = password_hash('gxfby756eyeyhte5w435vhdytrybt', PASSWORD_DEFAULT);
    $member->joined = time();
	$member->member_group_id = 3;
	$member->save();

Efekt:

image.png

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

<?php

    require_once 'init.php';
    $member = new \IPS\Member;
    $member->name = 'super_mega_nick';
    $member->email = '[email protected]';
    $member->members_pass_hash = password_hash('gxfby756eyeyhte5w435vhdytrybt', PASSWORD_DEFAULT);
    $member->joined = time();
    $member->member_group_id = 3;
    $member->save();

Wkleiłem dodało ale zalogować dalej nie mogę.

Odnośnik do komentarza
Udostępnij na innych stronach

Do głównego folderu z forum, i wchodzę na link z nim.

INSERT INTO `MTA_core_members` ( `member_group_id`, `mgroup_others`, `joined`, `ip_address`, `timezone`, `allow_admin_mails`, `pp_photo_type`, `member_posts`, `pp_main_photo`, `pp_thumb_photo`, `failed_logins`, `mfa_details`, `pp_reputation_points`, `signature`, `auto_track`, `name`, `members_seo_name`, `email`, `password` ) VALUES ( 3, '', 1567543878, '77.253.121.47', 'UTC', 1, '', 0, NULL, NULL, NULL, NULL, 0, '', '{"content":0,"comments":0,"method":"immediate"}', 'super_mega_nick', 'super_mega_nick', '[email protected]', 'y$TgOk6hkAJlsq7RnjRAkFReOVBiXn/qSxVZ6GeD4/nfyM24mYYAlDq' )
IPS\Db\Exception: Unknown column 'password' in 'field list' (1054)
#0 /home/so716/domains/maxlife-rpg.pl/public_html/forum/system/Db/Db.php(808): IPS\_Db->preparedQuery('/*IPS\\_Member::...', Array)
#1 /home/so716/domains/maxlife-rpg.pl/public_html/forum/system/Patterns/ActiveRecord.php(460): IPS\_Db->insert('core_members', Array)
#2 /home/so716/domains/maxlife-rpg.pl/public_html/forum/system/Member/Member.php(320): IPS\Patterns\_ActiveRecord->save()
#3 /home/so716/domains/maxlife-rpg.pl/public_html/forum/Cn2QNFSVnGVv9eGa.php(10): IPS\_Member->save()
#4 {main}

 

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

  • Manager

I co to za błąd? On jest po wywołaniu tego czystego kodu?

Oczywiście wersje forum masz najnowszą?

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

1 minutę temu, DawPi napisał:

I co to za błąd? On jest po wywołaniu tego czystego kodu?

Oczywiście wersje forum masz najnowszą?

Po wywołaniu kodu go mam.

Wersja 4.1.19

 

A przy setlocalpassword

Error: Call to undefined method IPS\Member::setLocalPassword() (0)
#0 {main}

 

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

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ę.