web-dev-qa-db-ja.com

パスワードを使用して既存のユーザーをインポートする

私はbase64ハッシュパスワードを持つ15000ユーザーの既存のレガシーPHPサイトを持っています、私は彼らのパスワードで新しいワードプレスサイトにこれらすべてのユーザーをインポートしたいと思います、これを実現する最善の方法は何ですか?

Praveen

2
Praveen

wp_insert_userを使うことができます。古いデータベースにはbase64のパスワードがあるので、base64_decodeを使って簡単に元のパスワード文字列を得ることができます。

$new_user_data = array(
        'user_pass' => 'password',//pass your decoded password string
        'user_login' => 'username',//pass your username
        'user_email' => 'email',
        'first_name' => 'firstname',
        'last_name' => 'lastname',
        'role' => 'author'//if you want to specify a different role other than default one
);
wp_insert_user( $new_user_data );

古いデータをcsv、xml、またはテキストファイルにフォーマットし、それに応じてそれらを読んで渡す必要があります。 15000人のユーザー全員を一度にインポートしようとしないでください。いくつかの部分でこれを行います。またsleep()関数はサーバーに休息を与えるのに静かです。

1
тнє Sufi

WordPressはパスワードの暗号化にMD5を使用しています。だから私はユーザーの直接インポートはここで動作するとは思わない。自動生成された新しいパスワードを使用してユーザーをインポートし、すべてのユーザーに電子メールを送信するスクリプトを作成することもできます。

OR

既存のユーザーテーブルでユーザーを検証するには、'authenticate', 'wp_authenticate_user'フィルターフックを使用します。 http://codex.wordpress.org/Plugin_API/Filter_Reference/authenticate

このプラグインは役立つかもしれません: http://wordpress.org/plugins/external-database-authentication/

0
Subharanjan

WPは暗号化にmd5を使用していますが、base64があるので、同じパスワードを直接インポートできるとは思わない。しかし、base64は解読可能であることを私たち全員が知っているように http://www.php.net/base64_decode ですので、古いパスワードをインポートできることは明らかです同様に、CSVファイルからWPデータベースへ、そして新しいパスワードでユーザーをインポートするWPプラグインがいくつかあります。そして、システムはそのユーザーにも新しい資格情報通知メールを送信します。 http://wordpress.org/plugins/members-import/ このプラグインは同じことをするのに役立ちます。 CSVファイルからのパスワードフィールドデータが使用されるこのプラグインでは、その文字列をbase64_decode()関数に渡します。

同じパスワードをインポートしている場合は、通知メールを送信する必要はありません。

0
Manish