前回質問の続きです。

下記のphp記述の意味と詳しい内容をお願いいたします。
}else{
$userdata['password'] = md5($userdata['password']);
$userdata['birthday'] = sprintf("%04d%02d%02d",
$userdata['birthday']['Y'],
$userdata['birthday']['m'],
$userdata['birthday']['d']);
if($systemflg){
lock_tables($conn, 'm_member');
db_regist_member($conn, $userdata);
unlock_tables($conn);
$title = '登録完了画面';
$message = "登録を完了しました。";
}else{
$userdata['link_pass'] = md5(uniqid(rand(),1));
lock_tables($conn, 't_pre_member');
db_pre_regist_member($conn, $userdata);
unlock_tables($conn);
mail_to_pre_member($userdata);
$title = 'メール送信完了画面';
$message = "登録されたメールアドレスへ確認のためのメールを送信しました。<BR>";
$message .= "メール本文に記載されているURLにアクセスして登録を完了してください。<BR>";
}
$file = "message.tpl";
}
}

回答の条件
  • URL必須
  • 1人1回まで
  • 登録:2006/05/19 00:39:43
  • 終了:2006/05/19 04:34:39

回答(2件)

id:kato-s No.1

kato-s回答回数91ベストアンサー獲得回数32006/05/19 01:24:54

ポイント35pt

求められているような詳しい解説かはわかりませんが。

概要/ユーザー登録処理です。

一般的によくある

①まず登録確認メールを送信

②確認メール内のURLをクリックすると本登録完了

のような処理のようです。

DBへの書き込み

m_memberテーブル

(本登録)パスワード:md5(暗号化)/誕生日:年、月、日

t_pre_memberテーブル

(仮登録)パスワード:md5(暗号化)/誕生日:年、月、日

     登録用URL


以下、ソースにコメント付けました。

参考になりましたでしょうか?


}else{

//パスワード(md5暗号化して)格納

$userdata['password'] = md5($userdata['password']);

//誕生日を年、月、日に分けて格納

$userdata['birthday'] = sprintf("%04d%02d%02d",

$userdata['birthday']['Y'],

$userdata['birthday']['m'],

$userdata['birthday']['d']);

//(たぶん本登録かどうかフラグ)が本登録の場合

if($systemflg){

 //テーブルをロックしてメンバーテーブルに書き込み

 lock_tables($conn, 'm_member');

 db_regist_member($conn, $userdata);

 unlock_tables($conn);

 //画面に表示する完了メッセージ

 $title = '登録完了画面';

 $message = "登録を完了しました。";

//仮登録の場合

}else{

 //本登録用URLのIDをmd5暗号化で作成し格納

 $userdata['link_pass'] = md5(uniqid(rand(),1));

 

 //仮登録テーブルをロックし仮登録テーブルに書き込み

 lock_tables($conn, 't_pre_member');

 db_pre_regist_member($conn, $userdata);

 unlock_tables($conn);

 //本登録依頼メールを送信

 mail_to_pre_member($userdata);

 //画面に表示する確認メッセージ

 $title = 'メール送信完了画面';

 $message = "登録されたメールアドレスへ確認のためのメール を送信しました。
";

 $message .= "メール本文に記載されているURLにアクセスして 登録を完了してください。
";

}

$file = "message.tpl";

}

}





ダミーです

http://yahoo.co.jp/

id:sera_yr No.2

sera_yr回答回数123ベストアンサー獲得回数62006/05/19 02:14:46

ポイント35pt

$systemflgが0より上なら本会員登録の処理を実行し、そうでなければ仮登録の処理を実行したあとメール送信処理を実行ということですね。詳細は以下の通りかと。

$userdata['password'] = md5($userdata['password']);

↑$userdata['password']のハッシュ値を$userdata['password']に入れる。

$userdata['birthday'] = sprintf("%04d%02d%02d",

$userdata['birthday']['Y'],

$userdata['birthday']['m'],

$userdata['birthday']['d']);

↑$userdata['birthday']に、$userdata['birthday']['Y']から年を4桁、$userdata['birthday']['m']から月を2桁、$userdata['birthday']['d']から日を2桁としてyyyymmddの8桁の形式にして入れる

if($systemflg){  ←もし$systemflgが0より上ならelseまでを実行

lock_tables($conn, 'm_member'); ←これからデータベースに書き込みを行うので、会員データ用のテーブルに他の書き込みをさせないようにする

db_regist_member($conn, $userdata); ←データベースへ登録

unlock_tables($conn); ←他の書き込みを許可

$title = '登録完了画面';

$message = "登録を完了しました。";

}else{ ←$systemflgが0以下なら、実行

$userdata['link_pass'] = md5(uniqid(rand(),1)); ←極めて予測が困難な32文字のIDを作成して$userdata['link_pass']に入れる。

lock_tables($conn, 't_pre_member'); ←これからデータベースに書き込みを行うので、仮会員データ用のテーブルに他の書き込みをさせないようにする

db_pre_regist_member($conn, $userdata); ←データベースへ登録

unlock_tables($conn);

mail_to_pre_member($userdata); ←メールを送信

$title = 'メール送信完了画面';

$message = "登録されたメールアドレスへ確認のためのメールを送信しました。
";

$message .= "メール本文に記載されているURLにアクセスして登録を完了してください。
";

}

$file = "message.tpl";


ダミーです。http://yahoo.co.jp

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません