function main() { // Quickform2インスタンス作成 $form = new HTML_Quickform2('qform_smarty', 'POST', array('action' => 'index.php')); // Form要素の構築 $uname = $form->addElement('text', 'uname', array('style' => 'width: 100px;'), array('label' => "ユーザID:")); $upass = $form->addElement('password', 'upass', array('style' => 'width: 100px;'), array('label' => "パスワード:")); $button = $form->addElement('submit', 'send', array('value' => "ログイン")); // パラメータのルールを設定 $uname->addRule('required', USERIDEMPTY); $upass->addRule('required', PASSEMPTY); $uname->addRule('regex', USERIDERR, '/^[ -~]+$/'); // フィルタの設定 // name に htmlspecialchars関数を適用する $uname->addFilter('htmlspecialchars'); // 全要素にtrim関数を適用する $form->addRecursiveFilter('trim'); // フォームの出力or入力後処理 if ($form->validate()) { // ユーザIDとパスワードが両方入力されたとき if (isset($_POST[P_USERID]) && isset($_POST[P_USERPASS])) { // user.phpの読み込み require_once LIBPATH . 'user.php'; // UserOperationインスタンスの作成 $usr_ins = new UserOperation(); // ログイン判定・ユーザ情報の取得 $res = $usr_ins->userlogin($_POST[P_USERID], $_POST[P_USERPASS]); // データの取得に成功した場合 if ($res[RESFLAG] == TRUE) { // データベース切断 $usr_ins->dbend(); // セッションに値がない場合 if (empty($_SESSION[USER_ID])) { // セッション作成 $_SESSION[USER_ID] = $res[RESDATA]['user_c']; } // SESSIONにユーザIDがあれば、アドレス帳一覧ページに移動 if (!empty($_SESSION[USER_ID])) { // アドレス帳一覧ページに移動 $this->_redirect(DEFAULT_MODULE); } // データの取得に失敗したとき } else { echo "<span style=\"color:#FF0000\">" . LOGINERR . "</span>"; // データベース切断 $usr_ins->dbend(); } $this->createForm($form); } } else { $this->createForm($form); } }
function main() { // Quickform2インスタンス作成 $form = new HTML_Quickform2('qform_smarty', 'POST', array('action' => 'index.php?module=user_setting')); // ユーザDBインスタンス作成 $obj = new UserOperation(); // 登録済みユーザ名取得; // DBにユーザ名があるかチェック $uchk = $obj->userCheck($_SESSION[USER_ID]); if ($uchk[RESFLAG] == FALSE) { echo USERCOMPARE; // データベース接続を解除 $obj->dbend(); $userflag = FALSE; $this->smarty->assign('userflag', $userflag); $this->smarty->display('user_setting.html'); exit; } else { $userflag = TRUE; } // Form要素の構築 // text 要素を追加 $name = $form->addElement('text', 'name', array('style' => 'width: 150px;'), array('label' => "名前:")); // 入力値がない場合、初期値を設定 if ($name->getValue() == "") { $name->setValue($_SESSION[USER_ID]); } // password 要素を追加 $pass_sim = $form->addElement('password', 'pass_sim', array('style' => 'width: 150px;'), array('label' => "現在のパスワード:")); $pass = $form->addElement('password', 'pass', array('style' => 'width: 150px;'), array('label' => "新規パスワード:")); $pass_conf = $form->addElement('password', 'pass_conf', array('style' => 'width: 150px;'), array('label' => "パスワードの確認:")); // ボタンのグループを作成・追加 $buttonGroup = $form->addElement('group', 'buttons'); $buttonGroup->addElement('submit', 'send', array('value' => "登録")); $buttonGroup->addElement('reset', 'reset', array('value' => "リセット")); // パラメータのルールを設定 // 値が空かチェック $name->addRule('required', NAMEEMPTY); $pass_sim->addRule('required', PASSSIMEMPTY); $pass->addRule('required', PASSNEWEMPTY); $pass_conf->addRule('required', PASSCONFEMPTY); // パスワードが不正でないか(半角英数かどうか)チェック $pass->addRule('regex', PASSREGEX, '/^[ -~]+$/'); // 長さチェック $name->addRule('length', NAMELENGTH, array(4, 16)); $pass->addRule('length', PASSLENGTH, array(4, 16)); // 2つの値が同じかどうかチェック $pass->addRule('compare', PASSNEWCOMPARE, array('operator' => '==', 'operand' => $pass_conf)); // フィルタの設定 // name に htmlspecialchars関数を適用する $name->addFilter('htmlspecialchars'); // 全要素にtrim関数を適用する $form->addRecursiveFilter('trim'); // フォームの出力or入力後処理 if ($form->validate()) { // 既存のパスワード確認処理 $passc = $obj->passCheck($pass_sim->getValue()); if ($passc[RESFLAG] == TRUE) { // ユーザ情報更新 $update = $obj->userUpdate($name->getValue(), $pass->getValue(), $_SESSION[USER_ID]); if ($update[RESFLAG] == TRUE) { // sessionに新規ユーザIDを代入 $_SESSION[USER_ID] = $name->getValue(); echo USERUPDATEOK; } else { echo "<span style=\"color:#FF0000\">" . USERUPDATENG . "</span>"; } } else { echo "<span style=\"color:#FF0000\">" . PASSSIMCOMPARE . "</span>"; } $this->createForm($form, $userflag); } else { $this->createForm($form, $userflag); } // データベース接続を解除 $obj->dbend(); }