Exemple #1
0
 /**
  * 执行自定义sql
  * @param unknown $sql
  * @return unknown
  */
 public function execute($sql)
 {
     $dbh = $this->_db->prepare($sql);
     $dbh->execute();
     $ret = $dbh->fetchAll();
     return $ret;
 }
Exemple #2
0
/**
 * 
 * @param unknown $user
 * @param unknown $pwd
 * @param unknown $DBH
 * @return found boolean false jos annettua käyttäjää ja salasanaa löydy
 */
function login($user, $pwd, $DBH)
{
    // !! on suola, jotta kantaan taltioitu eri hashkoodi vaikka salasana olisi tiedossa
    //kokeile !! ja ilman http://www.danstools.com/md5-hash-generator/
    //Tukevampia salauksia hash('sha256', $pwd ) tai hash('sha512', $pwd )
    //MD5 on 128 bittinen
    $hashpwd = hash('md5', $pwd . '!!');
    //An array of values with as many elements as there are bound parameters in the
    //SQL statement being executed. All values are treated as PDO::PARAM_STR
    $data = array('kayttaja' => $user, 'passu' => $hashpwd);
    //print_r($data);
    try {
        //print_r($data);
        //echo "Login 1<br />";
        $STH = $DBH->prepare("SELECT * FROM 0mrb_users WHERE email=:kayttaja AND\n\t\tpwd = :passu");
        $STH->execute($data);
        $STH->setFetchMode(PDO::FETCH_OBJ);
        $row = $STH->fetch();
        //print_r($row);
        if ($STH->rowCount() > 0) {
            //echo "Login 4<br />";
            return $row;
        } else {
            //echo "Login 5<br />";
            return false;
        }
    } catch (PDOException $e) {
        echo "Login DB error.";
        file_put_contents('log/DBErrors.txt', 'Login: ' . $e->getMessage() . "\n", FILE_APPEND);
    }
}
Exemple #3
0
    /**
     * ユーザ情報を登録する
     * @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());
        }
    }
Exemple #4
0
    /**
     * うついねを取り消すメソッドです
     * @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());
        }
    }
Exemple #5
0
    /**
     * ユーザプロフィールを更新する
     * @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());
        }
    }
Exemple #6
0
    /**
     * 投稿を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());
        }
    }
Exemple #8
0
    /**
     * ユーザーをアンフォローします
     * @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());
        }
    }
Exemple #9
0
    /**
     * ユーザ一覧を取得する
     * @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());
        }
    }