Jump to content

Hosting dHosting.pl - 10% rabat!

maxerxxl

Dodawanie kont na IPS 4.1C

Recommended Posts

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.

Share this post


Link to post
Share on other sites

Dopiero co o tym pisałem:

 


intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Share this post


Link to post
Share on other sites
31 minut temu, DawPi napisał:

Dopiero co o tym pisałem:

 

 

Ciężko mi zrozumieć z tego tematu działanie kodu. Możesz mi wskazać co w moim kodzie robię nie tak?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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.

Edited by maxerxxl

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
1 godzinę temu, DawPi napisał:

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

W logach w ACP nic nie ma?

 

Właśnie pusto. Sprawdziłem też przez var_dump i jest ok.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
19 godzin temu, DawPi napisał:

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

 

Ustawiłem bez zmienne hasło na "test" i nic.

Share this post


Link to post
Share on other sites

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 = 'elouuuu@okadoka.pl';
	$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.

Share this post


Link to post
Share on other sites

Mogę:

image.png


intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Share this post


Link to post
Share on other sites
<?php

    require_once 'init.php';
    $member = new \IPS\Member;
    $member->name = 'super_mega_nick';
    $member->email = 'elouuuu@okadoka.pl';
    $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ę.

Share this post


Link to post
Share on other sites

I gdzie dodajesz ten plik i jak go wywołujesz?


intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Share this post


Link to post
Share on other sites

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', 'elouuuu@okadoka.pl', '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}

 

Edited by YoutuberAidis

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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}

 

Edited by YoutuberAidis

Share this post


Link to post
Share on other sites

To kod pod 4.4. :)


intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Share this post


Link to post
Share on other sites

Nigdzie tego nie mam zainstalowanego. To już zabytek - przechodź na 4.4. 


intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.