Jump to content

Dodawanie kont na IPS 4.1C


maxerxxl
 Share

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.

Link to comment
Share on other sites

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

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

  • 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 = '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.

Link to comment
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ę.

Link to comment
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
Link to comment
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
Link to comment
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
 Share

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