RのWeb制作

Webサービス制作のための技術情報を。データ分析(Python、機械学習コンペ他)や自作野球ゲームMeisyoのこと中心。

Web制作

[PHP]まとめ読みをPSRで改良する(3)

投稿日:

Cord
(2)の記事から「PDO」を使い、データの通信をオブジェクト化しました。
password_hashを使い、パスワード処理の暗号化も行いました。

PDOを導入する一番の理由は「mysql_query」などは近い内に使えなくなるようです!

ネイティブドライバについては、もうひとつ注意すべきことがある。 PHP 用の mysql 拡張モジュールの開発はすでに終了しており、PHP 5.4.0 の時点での公式発表によると 「長期的には廃止予定」だ。つまり、近い将来に削除されるということであり、 PHP 5.6 (になるかどうかわからないけど、5.5 の次にくるやつ) の頃には使えなくなるだろう。
PHP The Right Way.より)

PDOは「PHP Data Objects」の略で、どのデータベースを使っているかを隠蔽してくれるもの(のよう)です。
使えるのはMySQL、PostgreSQL、SQLiteなど。

PDOの接続方法

PDOの利用の方が詳しいですが、どう使うのかは載っていません・・・。

Class内の関数に入れるのなら

    // DBに接続
    public function connectDb()
    {
        $dsn = 'mysql:dbname=' . self::$dbInfo['name'] . ';host=' . self::$dbInfo['host'];
        try{
            self::$db = new PDO($dsn, self::$dbInfo['user'], self::$dbInfo['pass']);
        }catch (PDOException $e){
            print('Connection failed:'.$e->getMessage());
            die();
        }
    }

設定の書き方

public $dbInfo = [
        'host' => 'localhost', 'name' => 'database', 'user' => 'root', 'pass' => ''
    ];

設定を導入する関数と必要なものを記述すること!
これはDBに接続すると同じ所で使うといいかも?
(そもそも使い方がおかしいかもしれない)

    private static $dbInfo;
    private static $db;
    // DBの情報を設定
    public static function setInfo($dbInfo)
    {
        self::$dbInfo = $dbInfo;
    }
    // DBの接続切断
    public function disconnectDb()
    {
        self::$db = null;
    }

暗号化方法password_hash(password_compact)の使い方

さくらサーバーはPHP 5.4までしか使えない問題があります。
PHP5.5で導入された「password_hash」が使えない・・・。

↓解決策
PHP5.5から使える暗号化「password_hash」を「password_compact」を使って以前のバージョンで利用する
すごく簡単です。

現状

ミニ四駆ブログまとめ

  • 表示
  • PC、スマートフォン両方利用可能です。
    > PC表示
    PC
    > スマートフォン表示
    スマホ

  • PDOでのDB通信で安全化の強化
  • 「?id=1%3BDELETE+FROM+users」のようなデータを受け取らないようにしました。
    以前のバージョンではできます/(^o^)\

  • password_compactで管理パスワード比較の安全化
  • パスワード自体の変換(保存用)は「crypt」を使っています。

  • 読み込み速度の向上
  • 「使っていた関数を見直す」
    「更新されていないRSSを読まない」
    「RSS情報は受け取るが、日付がある程度過去の場合更新しない」
    「無駄な読み込みはなくす」

    まとめ

    現在、サイトの動作をテストしています。
    特に問題はなさそう。
    一週間行って問題がなさそうなら公開・配布しますね!

    でもオブジェクト指向の書き方、MVCの書き方にそぐわなさそうなので少しずつ改良していきます!

-Web制作

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

[Meisyo]各選手の試合成績の追加

試合成績を追加しました。 んーでもこれ・・・スマホだと右端見えるのか?

[Meisyo]ver0.04へのアップデート

Meisyoがバージョン0.04になりました。 バージョンNo.の基準はありません。(1.00(正式リリース)が遠い) 下記機能が0.04で追加されました。 目的としては、「ユーザがゲームを長く楽しめ …

ゲームアプリ運営の分析ノウハウ vol.1 概要編

はじめに 以前から、Twitterなどでこんな悩みを見聞きしていました。 「ゲームアプリを運営する際に、どのような視点で、どのような指標を分析すべきかわからない」というものです。今回はそちらのお悩みに …

[Meisyo]第3回公式戦決勝戦

本日、Meisyoの第3回公式戦決勝戦がありました。 ダークホースの「sagasitamitaina」高校、悲運の帝王ジャガ畑高校。 チーム総合力を比較してみましょう 国立sagasitamitain …

(VPSでつくる) VPSへのログイン

連載第一回目です。 まずは、さくらVPSへログインしたいと思います。 ログインすることによって、VPSサーバーの設定ができるようになります。 連載の全体を俯瞰してみると、赤枠の部分です。 あなたのPC …