人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

前回質問の続きです。
下記の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";
}
}

●質問者: K_Fuduki
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:md5 MESSAGE password PHP Rand
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kato-s
●35ポイント

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

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

一般的によくある

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

?確認メール内の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/


2 ● sera_yr
●35ポイント

$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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ