/** * ユーザ情報を登録する * @param unknown $db */ public function userCreate($db) { try { // 現在日時を取得 $user_date = date('Y-m-d H:i:s'); // SQL文を作成 $sql = 'INSERT INTO user_table (user_id, user_name, user_email, user_password, user_age, user_gender, user_profile, user_profile_photo, user_profile_background, user_date) VALUES (:user_id, :user_name, :user_email, :user_password, :user_age, :user_gender, :user_profile, :user_profile_photo, :user_profile_background, :user_date);'; $prepare = $db->prepare($sql); // SQL文のプレースホルダーに値をバインドする $prepare->bindValue(':user_id', $_SESSION['user_id'], PDO::PARAM_STR); $prepare->bindValue(':user_name', $_SESSION['user_name'], PDO::PARAM_STR); $prepare->bindValue(':user_email', $_SESSION['user_email'], PDO::PARAM_STR); // パスワードをハッシュ化 $prepare->bindValue(':user_password', crypt($_SESSION['user_password']), PDO::PARAM_STR); $prepare->bindValue(':user_age', $_SESSION['user_age'], PDO::PARAM_STR); $prepare->bindValue(':user_gender', $_SESSION['user_gender'], PDO::PARAM_STR); $prepare->bindValue(':user_profile', $_SESSION['user_profile'], PDO::PARAM_STR); $prepare->bindValue(':user_profile_photo', $_SESSION['user_profile_photo'], PDO::PARAM_STR); $prepare->bindValue(':user_profile_background', $_SESSION['user_profile_background'], PDO::PARAM_STR); $prepare->bindValue(':user_date', $user_date, PDO::PARAM_STR); $prepare->execute(); } catch (PDOException $e) { echo 'エラー' . entity_str($e->getMessage()); } }
/** * うついねを取り消すメソッドです * @param unknown $db * @param unknown $login_id * @param unknown $good_post_id */ public function deleteGood($db, $login_id, $good_post_id) { try { // SQL文を作成 $sql = 'UPDATE good_table SET good_delete_flag = 1 WHERE good_post_id = :good_post_id AND good_user_id = :good_user_id'; $prepare = $db->prepare($sql); // SQL文のプレースホルダーに値をバインドする $prepare->bindValue(':good_post_id', intval($good_post_id), PDO::PARAM_INT); $prepare->bindValue(':good_user_id', $login_id, PDO::PARAM_STR); return $prepare->execute(); } catch (PDOException $e) { $errors[] = entity_str($e->getMessage()); } }
/** * ユーザプロフィールを更新する * @param unknown $db * @param unknown $user_id * @param unknown $user_name * @param unknown $user_profile * @return boolean */ public function profileEdit($db, $user_id, $user_name, $user_profile, $user_profile_photo) { try { // SQL文を作成 $sql = 'UPDATE user_table SET user_name = :user_name, user_profile = :user_profile, user_profile_photo = :edit_user_profile_photo WHERE user_id = :user_id AND user_delete_flag = 0'; $prepare = $db->prepare($sql); // SQL文のプレースホルダーに値をバインドする $prepare->bindValue(':user_name', $user_name, PDO::PARAM_STR); $prepare->bindValue(':user_profile', $user_profile, PDO::PARAM_STR); $prepare->bindValue(':user_id', $user_id, PDO::PARAM_STR); $prepare->bindValue(':edit_user_profile_photo', $user_profile_photo, PDO::PARAM_STR); // 成功したときにtrue失敗したときにfalseを返す return $prepare->execute(); } catch (PDOException $e) { $errors[] = entity_str($e->getMessage()); } }
/** * 投稿をDB登録する * @param unknown $db * @param unknown $login_id * @param unknown $color_id * @param unknown $post_body */ public function postCreate($db, $login_id, $color_id, $post_body) { try { // 現在日時を取得 $post_date = date('Y-m-d H:i:s'); // SQL文を作成 $sql = 'INSERT INTO post_table (user_id, color_id, post_body, post_date) VALUES (:user_id, :color_id, :post_body, :post_date);'; $prepare = $db->prepare($sql); $prepare->bindValue(':user_id', $login_id, PDO::PARAM_STR); $prepare->bindValue(':color_id', intval($color_id), PDO::PARAM_INT); $prepare->bindValue(':post_body', $post_body, PDO::PARAM_STR); $prepare->bindValue(':post_date', $post_date, PDO::PARAM_STR); if (!$prepare->execute()) { $errors[] = 'DB登録処理に失敗しました'; } } catch (PDOException $e) { $errors[] = entity_str($e->getMessage()); } }
/** * ユーザIDとパスワードの組み合わせでチェック * @param unknown $db * @param unknown $login_id * @param unknown $login_pass * @return boolean */ public function loginCheck($db, $login_id, $login_pass) { try { // SQL文を作成 $sql = 'SELECT user_id, user_password FROM user_table WHERE user_id = :login_id'; $prepare = $db->prepare($sql); // SQL文のプレースホルダーに値をバインドする $prepare->bindValue(':login_id', $login_id, PDO::PARAM_STR); $prepare->execute(); // 結果セットを取得(引数には戻り値の型を入力) $result = $prepare->fetch(PDO::FETCH_ASSOC); if (count($result) > 0 && crypt($login_pass, $result['user_password']) === $result['user_password']) { return true; } else { return false; } } catch (PDOException $e) { echo 'エラー' . entity_str($e->getMessage()); } }
/** * ユーザーをアンフォローします * @param unknown $db * @param unknown $login_id * @param unknown $follower_user_id */ public function unfollowUser($db, $login_id, $follower_user_id) { try { // SQL文を作成 $sql = 'UPDATE follow_table SET follow_delete_flag = 1 WHERE follow_user_id = :login_id AND follower_user_id = :follower_user_id'; $prepare = $db->prepare($sql); // SQL文のプレースホルダーに値をバインドする $prepare->bindValue(':login_id', $login_id, PDO::PARAM_STR); $prepare->bindValue(':follower_user_id', $follower_user_id, PDO::PARAM_STR); $prepare->execute(); } catch (PDOException $e) { $errors[] = entity_str($e->getMessage()); } }
$login_pass = ''; // エラー保持用配列 $errors = array(); // DBコネクトオブジェクト取得 try { $db = get_db_connect(); } catch (PDOException $e) { $errors[] = entity_str($e->getMessage()); } if (!isPost()) { include_once '../include/view/login.php'; } else { if (getPost('action_id') === 'login') { // ユーザIDとパスワードの組み合わせでチェック $login_id = entity_str(getPost('login_id')); $login_pass = entity_str(getPost('login_pass')); // todo ユーザID入力チェック if (!isExist($login_id)) { $errors[] = 'ユーザIDを入力してください'; } // todo パスワード入力チェック if (!isExist($login_pass)) { $errors[] = 'パスワードを入力してください'; } // 入力エラーがない場合DB認証チェック if (count($errors) === 0) { $login = new user_login_model(); if ($login->loginCheck($db, $login_id, $login_pass)) { // ログインIDを記録 $_SESSION['login_id'] = $login_id; setcookie('login_id', $login_id, time() + 60 * 60 * 24 * 30);
if ($user_password_confirm !== $_SESSION['user_password']) { $errors[] = '確認用パスワードが一致しません'; } $_SESSION['user_age'] = entity_str(getPost('user_age')); if (!isExist($_SESSION['user_age'])) { $errors[] = '年齢を入力してください'; } else { if (!isOverText($_SESSION['user_age'], 3) || !isOnlyNumber($_SESSION['user_age'])) { $errors[] = '正しい年齢を入力してください'; } } $_SESSION['user_gender'] = entity_str(getPost('user_gender')); if (!isExist($_SESSION['user_gender'])) { $errors[] = '性別を選択してください'; } $_SESSION['user_profile'] = entity_str(getPost('user_profile')); if (!isExist($_SESSION['user_profile'])) { $errors[] = 'プロフィールを入力してください'; } else { if (!isOverText($_SESSION['user_profile'], 200)) { $errors[] = '文字数は200文字以内にしてください'; } } // 画像アップロード処理 if (!checkPostMaxSize()) { $errors[] = 'ファイルサイズは100KB以下にしてください'; } if (isset($_FILES['user_profile_photo'])) { for ($i = 0; $i < count($_FILES['user_profile_photo']['name']); $i++) { // アップロードファイルチェック list($result, $ext, $error_msg) = checkFile($i);
if (getPost('action_id') === 'profile_edit') { $my_profile = $main->getMyProfile($db, $login_id); $my_time_line = $main->getMyTimeLine($db, $login_id); include_once '../include/view/my_profile_edit.php'; } else { if (getPost('action_id') === 'profile_edit_complete') { // todo: プロフィール更新処理 $edit_user_name = entity_str(getPost('edit_user_name')); if (!isExist($edit_user_name)) { $errors[] = 'ユーザネームを入力してください'; } else { if (!isOverText($edit_user_name, 20)) { $errors[] = '文字数は20文字以内で入力してください'; } } $edit_user_profile = entity_str(getPost('edit_user_profile')); if (!isExist($edit_user_profile)) { $errors[] = 'プロフィールを入力してください'; } else { if (!isOvertext($edit_user_profile, 200)) { $errors[] = '文字数は200文字以内にしてください'; } } if (isset($_FILES['edit_user_profile_photo'])) { // todo: 画像アップロード入力チェック if (!checkPostMaxSize()) { $errors[] = 'ファイルサイズは100KB以下にしてください'; } // アップロードファイルチェック list($result, $ext, $error_msg) = checkUpdateFile(); $errors = array_merge($errors, $error_msg);
if (count($main->getUserList($db, $login_id)) === 0) { $msg[] = 'ユーザ一覧データがありません'; } else { $user_list = $main->getUserList($db, $login_id); } // タイムラインを取得します if (count($main->getAllTimeLine($db, $login_id, $my_follow_list)) === 0) { $msg[] = 'つぶやきがありません'; } else { $all_time_line = $main->getAllTimeLine($db, $login_id, $my_follow_list); } if (isPost()) { if (getPost('action_id') === 'post_create') { $color_id = entity_str(getPost('color_id')); echo $color_id; $post_body = entity_str(getPost('post_body')); // 入力チェック if (isExist($color_id) !== true) { $errors[] = '色を選択してください'; } else { if (preg_match('/^[1-5]$/', $color_id) !== 1) { $errors[] = '正しい色を選択してください'; } } if (isExist($post_body) !== true) { $errors[] = 'つぶやきを入力してください'; } else { if (isOvertext($post_body, 140) !== true) { $erros[] = 'つぶやきは140文字以内で入力してください'; } }
/** * ユーザ一覧を取得する * @param unknown $db * @param unknown $login_id * @return multitype: */ public function getUserList($db, $login_id, $index = 10) { try { // SQL文を作成 $sql = 'SELECT user_id, user_name, user_profile, user_profile_photo FROM user_table WHERE user_id <> :login_id AND user_delete_flag = 0 ORDER BY user_date DESC LIMIT :index'; $prepare = $db->prepare($sql); // SQL文のプレースホルダーに値をバインドする $prepare->bindValue(':login_id', $login_id, PDO::PARAM_STR); $prepare->bindValue(':index', $index, PDO::PARAM_INT); $prepare->execute(); // 結果セットを取得 $result = $prepare->fetchAll(PDO::FETCH_ASSOC); return $result; } catch (PDOException $e) { $errors[] = entity_str($e->getMessage()); } }