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

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

関連記事

no image

swiftでゲームプログラミング(開始前)

iPhoneアプリを開発するために必要な言語「Swift」 そういえばこれまで適当な書き方で無理やり実装していたなと思い、教科書的なものを買いました。 初心者の人は独学でやるより、教科書買ってやった方 …

[python]MNISTの学習モデルを保存し、テストする

機械学習のHello World的なMNISTにて、学習モデルを保存し、実行する際のメモ。 用意するもの PC コマンドプロンプト インストール(python、sklearn、numpy) 学習時のコ …

とても簡単なPythonインストール in Windows10

拍子抜けするほど簡単なPythonインストール。 パソコン初心者のあなたにも簡単にできます! 目次 Pythonとは? Pythonの入手 Pythonのインストール Pythonの動作確認 インスト …

[Meisyo]練習試合にレーティング制を導入

練習試合にレーティング制を導入しました。 レートはメイン画面に下記のように表示されます。 平均レートは1000です。 レーティングの変動⊿Rは下記の式で表されます。 a(レートRa)がb(レートRb) …

no image

iPhoneアプリを開発してみよう

最近ずっとiPhoneアプリで遊んでて、 「なんか頭使うゲームないな?」と思い(”本質的には育成ゲー”が多すぎてゲンナリ) 「複数人でのRTS」があればな~と。 「他ゲーに文句 …

筆者情報

名将と呼ばれた者達(Meisyo)公式ブログ
ゆっくりとした時間間隔で進行する高校野球チーム育成シミュレーションゲーム。
個性豊かな選手たちを育成し、監督としてチームを優勝に導こう!

ご連絡はTwitter(R@おいす)でしていただけると、すぐ反応できます。

メインサイト:Rの考え方

気に入ったらクリックしてね!