- 1. 目次
- 2. 1.完成イメージ
- 2.0.1. echoとprintの違い
- 2.0.2. Fuelを使ってパラメータ付きPOSTリクエストを送信した
- 2.0.3. 本日の学習内容part2
- 2.0.4. 配列で受け取ったRequestに対してのバリデーション
- 2.0.5. CircleCi2.0でphpunit実行時に Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate… が出たときの対処法
- 2.0.6. Laravel ソースコードリーディング サービスコンテナ編 part.1 – bindとmake、buildとresolve –
- 2.0.7. Laravelのサーバレス用ライブラリbrefを使い、lambdaでhello world
- 2.0.8. Serverless Frameworkのアプリにカスタムドメインを付与する
- 2.0.9. XAMPP なしで、Windows の Visual Studio Code を使って PHP デバッグしてみる
- 2.0.10. Laravelでスコープ
- 2.0.11. WordPressのカスタマイザーで設定できるオプションタイプとサンプルコードまとめ
- 2.0.12. Laravel ベースレイアウトを使って表示するページのheaderやfooterのデザインを統一しよう
- 2.0.13. 【Laravel】配列取り出し方パターン
- 2.0.14. Laravel 検索機能サンプル
- 2.0.15. PHPのisset()と等価な条件式を書いてisset()への理解を深めたい
- 2.0.16. モデルメソッドの使い方
暗号化って結局どれを選べば良いの?OWASP Cryptographic Storage Cheat Sheetまとめ
# はじめに
WEBアプリケーションを開発するときに、「個人情報は暗号化して保存すること」といった要件を見かけます。一口に暗号化といっても、共通鍵暗号、公開鍵暗号、AES、DES、RSA、SHA、暗号モード、ブロック暗号と色々なワードが出てきて、どれを選んだら良いかわからなくなります(した)。本記事では、その時に調べてわかったことを備忘録的に書きます。本記事では、以下に2つを参考にしています。
– [OWASP Cryptographic Storage Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cryptographic_Storage_Cheat_Sheet.html)
– [CRYPTREC暗号リスト
(電子政府推奨暗号リスト)](https://www.cryptrec.go.jp/method.html)なお、パスワードは、本記事で紹介する暗号化して保存することはしないでください。パスワードはハッシュ化して保存します。詳しくは、[OWASP ASVS 4.0 V2.4 からパスワードの保存
PHPの時間関連の関数について
PHPの時刻関連の処理でわからないことがあったので調べた。
## date関数
ローカルの日付・時間を書式化する。指定された引数(timestamp)を与えられた文字列によってフォーマットし、日付文字列を返す。
タイムスタンプが与えられない場合は、現在の時刻が利用される。タイムスタンプのデフォルト値は現在のUnixタイムスタンプを返すtime関数となっている。### 説明
“`php
date ( string $format [, int $timestamp = time() ] )
“`#### 引数
##### format
一つ目の引数である`format`で出力される文字列の書式を決定する。
##### timestamp
Unixタイムスタンプを渡す。#### 返り値
日付を表す文字列が返される。timestampに数字以外が使用された場合は、FALSEが返される。### 利用例
“`php
echo date(“m.d.y”); // 3.21.20echo date(“H:i:s”); // 12:40:22
echo date(
LravelのDBテーブル作成&データ投入
##お約束事
本記事で発信される情報は、正確性、完全性、有用性、その他の事項について一切責任を負いかねます。自己判断にてご活用ください。#全体の流れ
– Migrationを行いテーブルを作成する
1. migrationコマンドを実行するための空ファイルの作成
2. 作成されたmigrationファイルをテーブル構造通りに記述する
3. migrateコマンドで実際にテーブルを作成する
4. 型変更、カラム追加・削除等– Sheederを用いてテーブルデータを投入する
1. seedを実行するための空ファイルの作成
2. 作成されたseedファイルを投入したいデータに合わせて記述する
3. seedコマンドで実際にテーブルにデータを投入する##Migrationでテーブルを作成する
###1、migrationするための空ファイルの作成
“`:ターミナルでの作業
$php artisan make:migration {テーブル名}
Created Migration: {年}_{月}_{日}_{時間}_{テーブル名}
“`
{プロジェクトRoot
【fullcalendar】Laravelとfullcalendar(v4)を使って予約管理システムを作った話【Laravel】
仮想案件
家庭教師予約システムをつくる仕様概要
・家庭教師派遣会社は先生(学生バイト達)をAdmin管理画面からスケジューリング
・会員(生徒)は任意の先生を管理画面から予約
・派遣会社の画面と会員の画面はそれぞれ別の認証経路(マルチAuth)
・UIはGoogleカレンダー風を希望前提
・fullcalendarメインの記事になります
・Laravelの基本を理解している方向けです
・非同期通信の基本も理解している方向けです
・データベース設計の基本も理解している方向けです
要はfullcalendarにポイントを置いてます。目次
1. 完成イメージ
2. LaravelのマルチAuth対応
3. 管理画面の作成
4. fullcalendarの組み込み
5. ビジネスロジックの実装
6. 補足1.完成イメージ
家庭教師派遣会社が使用するAdmin管理画面(週表示)
カレンダー左横の先生の箱をカレンダーにドロップしてイベントを作成
![スクリーンショット_2020-03-2
echoとprintの違い
PHPの`echo`と`print`はどちらも関数ではなく言語構造です。どちらも文字列を出力バッファに書き出すという機能では同じですが、使われかたが異なります。
“`php
echo 1, 2, 3; // ← syntax error ではない
print 1, 2, 3; // ← これは syntax errorecho print 1; // ← syntax error ではない
print echo 1; // ← これは syntax error
“`## 形式的に言うと
* `echo`と`print`はどちらも**出力バッファ**に書き込む機能です
* まれに「標準出力する」と言及されますが、それは間違いです
* `fwrite(STDOUT, $str)`の実行結果とは一致しないということです
* `echo`は文ですが`print`は式です
* `echo`は複数の引数をとりますが、`print`は1つの引数をとります
* 便宜上関数マニュアルに掲載されているが**関数ではありません**## どれを使えばいいの?
好み
Fuelを使ってパラメータ付きPOSTリクエストを送信した
なんとかHTTPリクエストをAndroidのエミュレーターからローカルホストのLaravelサーバーに送信することができたので投稿します。
# ライブラリのインストール
`app/build.gradle`にインストールするライブラリを書いていきます。“`gradle:app/build.gradle
dependencies {
// Fuel for HTTP Connections
implementation ‘com.github.kittinunf.fuel:fuel:2.2.0’
implementation ‘com.github.kittinunf.fuel:fuel-gson:2.2.0’implementation “com.squareup.moshi:moshi:1.5.0”
implementation “com.squareup.moshi:moshi-kotlin:1.5.0”
}
“`HTTPリクエストを送信するための`Fuel`と,JSONのパラメータを作成するための`moshi`をインストー
本日の学習内容part2
##参考記事
https://phpjp.com/sha1.php##パスワードの暗号化(sha1)
あるパスワードをDBに登録時に暗号化した(ハッシュ計算)後、ログイン画面で入力したパスワードがDBのパスワード(暗号化済み)と合っているかどうかをチェックする時は暗号化を行う。
“`login.php
if ($_POST[‘password’] !== ”) {
$login = $db->prepare(‘SELECT * FROM members WHERE password=?’);
$login->execute(array(
sha1($_POST[‘password’])
));
$member = $login->fetch();
“`##感想
学習した内容を上手く文章に出来なくててもどかしい(笑) これからそのスキルも磨いていきたい。
配列で受け取ったRequestに対してのバリデーション
“`view