レシピ備忘録

美味しいと思ったレシピを忘れないために

config.php
ini_set('display_errors',1);

エラーをHTML出力の一部として画面に出力するように設定。エラーがブラウザに出力されるので、見やすい。(ターミナルに表示されるエラーがブラウザにも出力されます。)

define('<span style="color: #2196f3">DSN</span>','mysql:host=localhost;dbname=dotinstall_poll_php');
define('<span style="color: #2196f3">DB_USERNAME</span>','dbuser');
define('<span style="color: #2196f3">DB_PASSWORD</span>','t8CmBz4A');

定数の定義: define(定数名,値) 上記のコマンドはconfig.php(configとは設定とゆう意味)で定義してます。 ここで定義された定数(DSN,DB_USERNAME,DB_PASSWORD)は、Poll.phpのデーターベースに接続する設定の所で使用されている。

private function _connectDB() {
    try {
      $this->_db = new \PDO(DSN, DB_USERNAME, DB_PASSWORD);
      $this->_db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
    } catch (\PDOException $e) {
      throw new \Exception('Failed to connect DB');
    }
  }

PDO(PHP data Object)でデーターベースに接続するには、まずデーターベースに接続します。接続するためにはPDOクラスのコンストラクタでオブジェクトを生成します。

生成方法 → new PDO(データーベース接続文字列、ユーザー名、パスワード)   データーベース接続文字列は決まっていてMysqlの場合は new PDO(mysql:host=ホスト;dbname=データーベース名) なのでここでは (mysql:host=localhost;dbname=dotinstall_poll_php‘); としてある。

この長い名前をわずか3文字のDSNで表現できるようにconfig.phpのdefine()で設定していて、DSN使用して Poll.phpでデーターベース接続_connectDB()されている define(‘DSN’,‘mysql:host=localhost;dbname=dotinstall_poll_php’);

PDOクラスのコンストラクタでオブジェクトを生成 (PDOとはPHPからデーターベースにアクセスするためのクラス群。PDOを使用する事で、データーベースをmysqlからSQLiteに変更してもスクリプトの書き換えがほとんど入らなくなるメリット。

data() :data属性の取得

.val() :value属性を返す

  $('#answer).val($(this).data('id'));

boxがclickされたらid answerのvalue属性にこの値をセットしてね。val()でセット。(this)このdataの属性になっている数字を入れる。(数字を入れたいからidにしてる)

data(‘id’) :数字扱い

data(‘user’) : Jackなどstring(文字)が入る

data(‘date-of-birth’) :2000,01,01

if($_SERVER["REQUEST_METHOD"] === 'POST') {

$poll->post();

}

formからの投稿がPOSTメソッドできてるのかどうか。

formなどで送信先にサンクスページなどセットしていて、そこに重要な記述をしてた場合、ダイレクトにサンクスページにアクセスされたら困る。(URLアクセスなどで)そこで、formからpost経由でアクセスされたかを確認する為。(URLからのアクセスだったらエラー返して見せなくする)

formにセットしたmethod属性(post?get?)

$_SERVER : ヘッダ、パス、スクリプト位置などの情報を有する配列で、

$_SERVER[‘’] === ‘POST’

今のURLを表示したり。