|
||||||||
![]() |
掲示板目次 > サポート > 個々の機能(Any) |
|
|
ユーザー一括登録時にパスワードも一括登録したい |
|||
| suzukichi |
|
|||||
![]() Newbie ![]() 状態: オフライン ![]() 登録日: 2010年1月 7日 投稿数: 10 |
こんばんは。
ユーザーのみ閲覧できるページをGeeklogに移行しようとしています。 ユーザーのID/パスワードは全てこちらで管理していて ユーザーは変更できないようにしています。 Geeklogでユーザーの一括登録をするときに パスワードも一括登録したいと思っています。 検索したところ下記の話題を見つけました。 ▼ユーザー一括登録におけるウェルカムメッセージの停止について http://www.geeklog.jp/forum/viewtopic.php?showtopic=7319 Quote by: ひろろん少しハックが足りなかったようですね。 前のハックではメールは送られませんがパスワードが空白になってしまいますので、さらにパスワードをテキストファイルから取り込むようにしたハックです。 なお、前回同様、ソースコードでのハックで自分ではテストをしておりませんので、参考までに。 public_html/admin/user.php 899行目から927行目まで PHP Formatted Code list ($full_name, $u_name, $email) = explode ("t", $line); $full_name = strip_tags ($full_name); $u_name = COM_applyFilter ($u_name); $email = COM_applyFilter ($email); if ($verbose_import) { $retval .="<br><b>Working on username=$u_name, fullname=$full_name, and email=$email</b><br />"; COM_errorLog ("Working on username=$u_name, fullname=$full_name, and email=$email",1); } // prepare for database $userName = trim ($u_name); $fullName = trim ($full_name); $emailAddr = trim ($email); if (COM_isEmail ($email)) { // email is valid form $ucount = DB_count ($_TABLES['users'], 'username', addslashes ($userName)); $ecount = DB_count ($_TABLES['users'], 'email', addslashes ($emailAddr)); if ($ucount == 0 && ecount == 0) { // user doesn't already exist $uid = USER_createAccount ($userName, $emailAddr, '', $fullName); USER_createAndSendPassword ($userName, $emailAddr, $uid); これを以下のようにします。 PHP Formatted Code list ($full_name, $u_name, $email, $pass_word) = explode ("t", $line); $full_name = strip_tags ($full_name); $u_name = COM_applyFilter ($u_name); $email = COM_applyFilter ($email); $pass_word = COM_applyFilter ($pass_word); if ($verbose_import) { $retval .="<br><b>Working on username=$u_name, fullname=$full_name, and email=$email</b><br />"; COM_errorLog ("Working on username=$u_name, fullname=$full_name, and email=$email",1); } // prepare for database $userName = trim ($u_name); $fullName = trim ($full_name); $emailAddr = trim ($email); $passWord = trim ($pass_word); if (COM_isEmail ($email)) { // email is valid form $ucount = DB_count ($_TABLES['users'], 'username', addslashes ($userName)); $ecount = DB_count ($_TABLES['users'], 'email', addslashes ($emailAddr)); if ($ucount == 0 && ecount == 0) { // user doesn't already exist $uid = USER_createAccount ($userName, $emailAddr, $passWord, $fullName); //パスワードを自動生成しメールを送るのをやめる //USER_createAndSendPassword ($userName, $emailAddr, $uid); これでハックは完了です。 用意するテキストの項目と順番は、 氏名、ユーザ名、メールアドレス、パスワード です。これらをタブ区切りで用意すればOKです。 ※注意※ サイトの文字コードと同一の文字コードでファイルを保存すること! (サイトをUTF-8で作成した場合は、テキストファイルの保存形式もUTF-8) この箇所を試してみたのですが パスワードがインポートできていないようです。 やりたいことは ○一括登録時に確認メールを送らないようにする ←これはできました。 ○ステータスを有効にしておく ←これはできました。 ●ユーザ一括登録の際にパスワードも一括で登録する ←これができません。 です。 テスト使用中のGeeklogバージョンは1.6.1sr1です。 実現の方法がありましたらご教授いただければ幸いです。 よろしくお願い致します。 |
|||||
|
||||||
| Ivy |
|
|||||
![]() 管理者 ![]() 状態: オフライン ![]() 登録日: 2004年1月 1日 投稿数: 4470 |
ひろろんさんのコードは、テストされたものではありませんから、これを開発者にデバッグしてもらうのが良いと思いますが。
パスワードは、生データですよね? それともすでに暗号化されたものですか? PHP-Nuke系列のCMSなら暗号化されたものであればデータベースにそのまま流しこむだけで利用できますが、暗号化の手法がわからない他のCMSの場合はかなりやっかいだとおもいます。 |
|||||
|
||||||
| suzukichi |
|
|||||
![]() Newbie ![]() 状態: オフライン ![]() 登録日: 2010年1月 7日 投稿数: 10 |
Ivyさん
ご返信ありがとうございます。 インポートするパスワードは生データです。 こちらでもテストしてみますが、 もし何かわかりましたら引き続きご教授いただければ幸いです。 よろしくお願い致します。 |
|||||
|
||||||
| suzukichi |
|
|||||
![]() Newbie ![]() 状態: オフライン ![]() 登録日: 2010年1月 7日 投稿数: 10 |
開発者にデバッグとありますが、
自社の開発者、ということでしょうか? 自社に開発者はいなくて、PHP初心者の私がやっています。 いろいろ書き換えて試しているのですが 氏名、ユーザ名、メールアドレスはインポートできるのですが パスワードがデータベースに格納されないみたいです。 system/lib-user.php public_html/admin/user.php このファイル以外に見直した方がいいファイルなどありますでしょうか? ご教授いただければ幸いです。 よろしくお願い致します。 |
|||||
|
||||||
| Ivy |
|
|||||
![]() 管理者 ![]() 状態: オフライン ![]() 登録日: 2004年1月 1日 投稿数: 4470 |
こういったハックまではこちらのサポート掲示板では対応しきれませんので、
もし必要なら有料で開発を受託する会社にご相談されてはいかがでしょうか。 このコードを提供されたひろろんさんはじめ、数社登録していますので。 開発企業 リスト |
|||||
|
||||||
| 内容生成: 0.39 秒 |
|
|
|