RのWeb制作

Webサービス制作のための技術情報を。

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

Cで簡単プログラミング「二次関数の解」

C言語で簡単なプログラミングをしましょう! 今回は「二次関数の解」です。 ↓Cはコンパイル(機械語に翻訳)が必要なので、以下でコンパイラの「MinGW」をインストールしてください。 C言語およびC++ …

no image

PHPのコーディング規則、PSRを学ぶ(4)

PHPのコーディング規則、PSRを学ぶ(3)の続きです。 今回は実際にクラス名定義を自宅サーバーで試してみます。 1.「SplClassLoader.php」を手に入れる 「ダウンロード」または「直接 …

TensorFlowまで到達

ちょいちょい数式に詰まりながらも、DeeplearningのフレームワークTensorFlowの学習まで漕ぎ着けました。 一番困ったのは「説明無しで数式使うよ!」 マジやめてください・・・まあ勉強する …

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

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

[Meisyo]ビッグデータから学ぶ試合の基礎設計2

名将と呼ばれた者達、めちゃくちゃソースコードが長い(この記事) ここでは、「どのパラメータが打率等にどれくらい関係するのか」を理解することで強いチームを作る指針を記載しておきます。 というわけで27- …