- 1. GuzzleのJSONでのPOSTに大変苦労したお話
- 2. Cannot end a section without first starting one. [Laravel]
- 3. LaravelのMailで、機能ごとに送信元アドレスを切り替えたい(Gmailなど)時にめっちゃ詰まった話
- 4. 効果的な簡単のWebサーバセキュリティ対策「PHP編」
- 5. Slim 3とSlim 4のContainerInterfaceはnamespaceが違う
- 6. cookieで条件分岐するときはjQueryよりPHPがいいってハナシ。
- 7. 【Laravel】PHPテンプレートの利用
- 8. [PHP]パッケージ管理ツールComposerを図で理解する
- 9. 【Laravel】Bladeでレイアウトを作成する
- 10. Laravel 6で認証機能を入れる
- 11. Slim3 Framework×slim-skeleton不使用×twigでプロジェクトを作成する(1. プロジェクト作成~各種設定)
- 12. Slim3フレームワークおすすめチュートリアル
- 13. PHP: Starttls でメールの送信
- 14. Trello投稿時に自社システムに通知する
- 15. Laravel Eloquantでデータを得ようとしたらエラーが出た話
- 16. [PHP] Messaging APIを使ったLINEbotで色々試してみる
- 17. Laravel $loop変数のプロパティと実行結果
- 18. 「WebShellQuickScanner」Linuxサーバの指定フォルダーのPHPファイル中に、WebShellと高リスクファイルを速いて探し出すのクイックチェックツール,そして、検査結果をTelegramにプッシュする。
- 19. web上にある表やExcelからSQL文を自動生成する
- 20. Laravel、プロジェクトを作成して最初にやること
GuzzleのJSONでのPOSTに大変苦労したお話
##who are you?
Guzzle使うから〜と聞いた時に本当に1mmも知りませんでした()ギリギリcurlは触ったことはあるし、ただいつもAPIへ通信していたのが、
何故かajaxばかりの環境で育ってきた僕育ってきた環境が違うから〜知らない言語はしょうがない〜
・・・(ー_ー)
それでもGuzzleを使うと言うことであれば、
やらなきゃならない事がある><・・・
###環境
PHP:7系
Guzzle:6系
Laravel:7系(例題はLaravelでの実装ですが他もほぼほぼ変わらないと思います)###Guzzleを使ったAPI通信
“`GuzzleSampleController.php
$client = new Client();
$options = [
‘header’ => [
‘Authorization’ => $token,
‘Content-Type’ => ‘application/json’,
],
‘form_
Cannot end a section without first starting one. [Laravel]
`Cannot end a section without first starting one. `
bladeテンプレートの構文エラーと発生する原因について
## 発生する原因
シンタックスエラーの可能性:セクションが正しく囲われていないケース
“`php:master.blade.php
@section
〜記述
@endsection
“`
タイポ:共通レイアウトの呼び出し名が間違っているケース“`php:master.blade.php
// 呼び出した共通レイアウト名が正しいか確認する
@extends(‘layouts.base’)
“`タイポ:構文が間違っているケース
“`php:master.blade.php
// sectionがsecitonになっている
@seciton(‘main’){{ $msg }}
@endsection
“`
LaravelのMailで、機能ごとに送信元アドレスを切り替えたい(Gmailなど)時にめっちゃ詰まった話
顧客「Aの機能の時は、hoge@gmail.comで確認メールを送信して欲しいんだよね」
ぼく「わかりました」
顧客「Bの機能の時は、hogehoge@gmail.comで確認メールを送信して欲しいんだよね」
ぼく「承知の助」
1時間後
ぼく「ん?むずくね?」
というわけで、詰まったお話
##なんで詰まったのか
LaravelのMailってfromとかのfunctionがあって一見簡単に切り替えられるように見えるんですけど
“`ruby:こんな感じに変えられそう
Mail::from(‘hogehoge@gmail.com’)
->to($request->user_mail)
->send(new Mail($request->user_name));
“`まぁ当たり前なんですけど、ダメなわけで
そもそもGmailを使用するには、当然usernameとpasswordを使用しているわけで、それを.envに書いて読み込んでるわけですよね
“`ruby:.env
MAIL_DRIVER=smtp
MAIL_HOST=smtp.
効果的な簡単のWebサーバセキュリティ対策「PHP編」
今日では、PHPを使って開発されたウェブサイトやウェブアプリケーションは、世界のインターネットの80%を占めています。PHPは登場以来、多くの問題を抱えています。その中に最も重要なのは、様々なセキュリティ問題です。
確かに、PHPのカーネルには非常に多くの脆弱性がありるですが、でも今まで、セキュリティ問題のほとんどは、PHPカーネルではなく、ウェブアプリケーションのロジック自身の脆弱性に起因しています。
Webアプリケーション自身の問題を置いといて、サーバー内のPHP環境の設定が間違っていることがもう一つの原因だ。
# セキュリティ対策前提条件
**`FastCGI`モードや`apache2handler`モードなど、どのような方法でphpを実行しても、`root`ユーザーとしてphpを実行することはいけません。そうでなければ、すべてが無意味になってしまう。**
# PHP環境のセキュリティ設定
それでは、PHP環境のセキュリティ設定を始めましょう。
## リスク関数を無効化
以下のPHP関数は、ほとんどのWebShellが利用している。 そのため、それらを無効にする必
Slim 3とSlim 4のContainerInterfaceはnamespaceが違う
## 背景
社内にSlim 3のPJとSlim 4のPJがあって、Slim 4側は最近実装された新規開発でだいぶきれいに書かれていたので、レガシーなプロジェクト(Slim 3)のリファクタリング時にSlim 4の実装を真似していたらハマりました。
(こんな状況はなかなかないので参考にならなそうですが。。。)`TypeError: Argument 1 passed to app\helpers\XxxHelper::__construct() must be an instance of Psr\Container\ContainerInterface, instance of Slim\Container given, called in /xxx/app/app.php on line 75 in xxxxx.php on line 19`
## 結論
`Slim\Container`を見ても`implements ContainerInterface`してるのになぜ?ってなってしまいましたが、
よくよくその定義を確認すると、Slim 3とSlim 4では `Contai
cookieで条件分岐するときはjQueryよりPHPがいいってハナシ。
**「同じページに2回目以降は表示させない」**
というのをやりたかったのですが、
つまったので、苦労の後を記録しておきます。##jQueryの場合
jQueryのクッキー使うときは、以下のように
– jQuery
– jquery.cookie.js
– cookieを発火させる記述の順番に記述します。
“`html