- 1. sendgrid php で smtp 送信 ライブラリ無しでもOK
- 2. Slim4 に dotenv と migration の機能を追加していい感じにする
- 3. DQLで日付関数とGROUP BY
- 4. 【初心者が解く】Windows10環境でLaravel sailインストールのエラーが起きる時
- 5. Mysqlで躓いた時 確認するよ
- 6. Paiza出力は同じなのにエラーになる原因
- 7. テスト投稿
- 8. さくらでcronの実行
- 9. 【Laravel,MySQL】MySQLへのinsert速度について調べてみた
- 10. 初めてのコードレビューで指摘されまくったコメントの書き方を改善する
- 11. 【Laravel,MySQL】LaravelからDBへの接続エラーの原因と解決策
- 12. PHP8.1でPECLが使えなかったので修正した話
- 13. laravelシンボリックリンクしても画像が表示されない
- 14. 【PHP】htmlspecialchars()の使い方
- 15. mySqlではtimestampにNullを入れられない
- 16. PHPファイルの読み込み方
- 17. 【3秒で】phpでリダイレクト
- 18. [Vulnhub]Quaoarの脆弱性診断
- 19. XAMPPでYahoo!メールからメールを送信する
- 20. 【Laravel,MySQL】設定ファイル.env、.env.example、database.phpの違いとは?
sendgrid php で smtp 送信 ライブラリ無しでもOK
今回は cakeemail を使用。
メールサーバーってマジで不安定だから大変。
しかも最近はAPI送信とかになっているからsmtpの送信方法が無くて困る。以下の方法ならアカウントを設定するだけだから
ライブラリとか必要無しで送信できるので便利。ということで早速方法。
sendgridを利用
https://sendgrid.kke.co.jp/docs/API_Reference/SMTP_API/integrating_with_the_smtp_api.html
まずはメールの設定です
“`
public $default = array(
‘host’ => ‘smtp.sendgrid.net’,//固定
‘port’ => 587,//固定
‘transport’ => ‘Smtp’,//固定
‘username’ => ‘apikey’, //固定
‘password’ => ‘SG.Uxxxxxxxxxxx229’,//要変更 パスワード
‘from’ => ‘you@localhost’,//任
Slim4 に dotenv と migration の機能を追加していい感じにする
## 環境
* Slim4 (Skelton じゃない方だが、どっちでも行けそう?)
* PHP7.4 (or later)
* MySQL5.7 (MariaDB)
* dotenv ライブラリ: `vlucas/phpdotenv@5.4.1`
* マイグレーションライブラリ: `robmorgan/phinx@0.12.9`## dotenv ライブラリの準備
PHP 向けの dotenv ライブラリは2種類くらいメジャーなのがあるが、今回は `vlucas/phpdotenv` を採用した。### インストール
“`sh
composer require vlucas/phpdotenv
“`### 設定ファイル作成
“`sh
touch .env
“`自分の環境に合わせて、設定内容を書く。
“`/.env
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database
DB_USERNAME=username
DB_PASSWORD=password
DB_CHARSET=utf8
“`## マイグレー
DQLで日付関数とGROUP BY
DQLでDATEカラムをGROUP BYする方法がわからなかったので調べた
#DoctrineExtensionを入れる
https://github.com/beberlei/DoctrineExtensions
でSQLの関数を追加“`
composer require beberlei/doctrineextensions
“`
`configs/packages/doctrine.yaml`に追加“`
doctrine:
orm:
dql:
string_functions:
MONTH: DoctrineExtensions\Query\Mysql\Month
YEAR: DoctrineExtensions\Query\Mysql\Year
DATE_FORMAT: DoctrineExtensions\Query\Mysql\DateFormat
“`
#QueryBuilder
例えば`NewsPost`エンテ
【初心者が解く】Windows10環境でLaravel sailインストールのエラーが起きる時
初心者の自分なりに解決方法を見つけたので、メモ用として記載しておきます。
OS: Windows10
にてエラーを確認(macは持っていないので同様の処理でうまくいくかは不明です。)症状
インストール時に下記のエラー表記が出る“`
failed to solve: rpc error: code = Unknown desc = executor failed running [/bin/sh -c apt-get update && apt-get install -y gnupg gosu curl ca-cer
tificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2 && mkdir -p ~/.gnupg && chmod 600 ~/.gnupg && echo “disable-ipv
6” >> ~/.gnupg/dirmngr.conf && apt-key adv –homedir ~/.gnupg –k
Mysqlで躓いた時 確認するよ
Mysqlの学習で躓いた時に見ていたサイト達です
お世話になりました。Mysqlのインストール手順から初期設定まで
参考サイト: https://webkaru.net/mysql/windows-env/ターミナルにてSQL文の発行
参考サイト:https://webkaru.net/mysql/windows-sql-query/【エラー】
PATHが通っていない時
参考サイト: https://nichi-petit.com/entry/path-error※見つけ次第追記していきます。
Paiza出力は同じなのにエラーになる原因
#Paiza提出前に確認すること
最近Paizaを始めた者です。
出力は同じなのにエラーになったので原因を探ったところ簡単なミスでした。
しかし同じミスで解決できてない方もいるかもなので共有しておきます。##実際の処理
“`php
//期待される出力
3 3 7 3 7 5 8 3 5 3
//出力処理
foreach($posts as $post){
echo $post.’ ‘;
}
//実際の出力
3 3 7 3 7 5 8 3 5 3
“`こちらでエラーになりました。
結論から原因は最後の数値の後ろにもスペースが入っているというものでした。
Paizaさんも提出前にちゃんと
「期待する出力と出力結果が同じに見えるのに失敗になる場合、半角スペースや改行の数が異なっていると考えられます。
余分な半角スペースや改行がないかを今一度ご確認ください。」
と教えてくれていました。しっかり最後まで文章を読まなくては。。。
##解決策
一応今回のケースの解決策も載せておきます。“`php
//期待される出力
テスト投稿
[テスト](https://taco3suisui.com “https://taco3suisui.com”)
リンクを貼ってみた。
さくらでcronの実行
![スクリーンショット 2022-01-11 17.43.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417196/f9fa2258-6bf0-da6c-73fc-8dc74652005f.png)
## さくらサーバーでcronの設定を行いました。
– 実行コマンドについて
– cd /home/アカウント/www/app/batch;
– これで、対象のディレクトリまで移動します
– 今回はphpで実行したいので、 /usr/local/bin/phpがプログラムのコマンドパスになります([参照1](https://help.sakura.ad.jp/206206041/))
– 黒塗り.phpが実行するファイルになります
– 実行日時は上記の設定だと2分毎に実行されます参考
https://usortblog.com/sakuracron/
【Laravel,MySQL】MySQLへのinsert速度について調べてみた
#概要
本記事は、[PHPフレームワークLaravel入門 第2版](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFLaravel%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798060992/ref=pd_lpo_1?pd_rd_i=4798060992&psc=1)で学習している中の疑問・つまづきの備忘録です。今回はLaravelからMySQLへのinsert速度について調べたことをまとめます。
なお、[PHPフレームワークLaravel入門 第2版](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFLaravel%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%
初めてのコードレビューで指摘されまくったコメントの書き方を改善する
先日初めてコードレビューをしていただけました。
その際コメントの書き方についての指摘が多かったので、指摘事項を備忘録としてまとめておきたいと思います。##はじめに
コメントを書く際の注意点については「[プログラマが知るべき97のこと](https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%8C%E7%9F%A5%E3%82%8B%E3%81%B9%E3%81%8D97%E3%81%AE%E3%81%93%E3%81%A8-%E5%92%8C%E7%94%B0-%E5%8D%93%E4%BA%BA/dp/4873114799/ref=sr_1_1?adgrpid=121577874136&hvadid=536041735659&hvdev=c&hvqmt=e&hvtargid=kwd-1268462898664&hydadcr=23104_13451920&jp-ad-ap=0&keywords=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9
【Laravel,MySQL】LaravelからDBへの接続エラーの原因と解決策
#概要
本記事は、[PHPフレームワークLaravel入門 第2版](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFLaravel%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798060992/ref=pd_lpo_1?pd_rd_i=4798060992&psc=1)で学習している中の疑問・つまづきの備忘録です。今回はLaravelからDBへの接続エラーの原因と解決策についてまとめます。
なお、[PHPフレームワークLaravel入門 第2版](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFLaravel%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88
PHP8.1でPECLが使えなかったので修正した話
PHP8.1にバージョンアップしpeclでインストールを行おうとした際に発生した問題です.解決方法まで書いていきます.
### 基本情報
“`
$ cat /etc/os-release
NAME=”Ubuntu”
VERSION=”20.04.3 LTS (Focal Fossa)”
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME=”Ubuntu 20.04.3 LTS”
VERSION_ID=”20.04″$ php -v
PHP 8.1.1 (cli) (built: Dec 31 2021 07:26:20) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.1, Copyright (c) Zend Technologies
with Zend OPcache v8.1.1, Copyright (c), by Zend Technologies
“`## 問題
MongoDBとの接続のためPHPのドライバーを入れる際に発生しました“`bash
$ sudo pecl
laravelシンボリックリンクしても画像が表示されない
# 画像アップロードの仕方
laravelでは画像をアップロードして保存する際に“`php
public function store(Request $request) {
$filename = $req->imgpath->getClientOriginalName();
$img = $req->imgpath->storeAs(”, $filename);
}
“`のようにして保存できるのですが、その時のフォルダは
“`
storage/app
“`
になっているようです。僕が保存したときは上記のフォルダに保存されました。#アップロードした画像を表示
表示はとても簡単です。“`php
“`これで普通なら表示できるのですが、何も表示されないと思います。
理由は簡単`asset関数`はpublicフォルダを参照するからそもそもフォルダ違うよねということです。ではどうするのか。
シンボリックリンクをしてあげましょう。#シンボリックリン
【PHP】htmlspecialchars()の使い方
#背景
会員登録画面を作成中に出てきたので、備忘録かねて作成しました。
macOS : Monterey
PHP : 8.1.1#エスケープ処理について
htmlspecialchars()はエスケープ処理を行う関数であるが、まずエスケープ処理ってなんだってなったので調べてみた。
マークアップ言語のHTMLに限らず、プログラミング言語ではその言語にとって特別な意味を持つ記号があり、それをエスケープシーケンス(エスケープ文字、特殊文字)と言う。例えばHTMLでは < とか > とかが該当する。
記事に文章を入力するときなどに < や > を使おうとすると、通常これらの文字は、HTMLを動かす為に必要な記号だと判断され上手く表示されない。
そのため、入力フォームなどで < や > を文字として変換するための処理が用意されており、その処理のことをエスケープ処理という。#htmlspecialchars()の使い方
“`php:htmlspecialchars()の引数
htmlspecialchars(変換したい文字列, フラグ(変換するルールみたいなもの), エンコード, 既存
mySqlではtimestampにNullを入れられない
初投稿になります。
Udemyの[こちら](https://www.udemy.com/share/104N8g3@lKjwibOOW8wJEfVdhyKoDtP2jeghxhDe3AepXnkal6YJBh-ll792a-BWTMK5DnGsqQ==/)の講座で一通り勉強したので、仕事であったら便利そうなWebアプリを作ってみようと思っています。
プログラミングの勉強を始めたきっかけはいつか別記事で書きたいと思っています。
# つくろうとしている物
弊社には顧客管理や見積請求作成ソフトがありデータがリンクするようになっているのですが、リース器具管理だけ独立してexcelデータで、そこの管理を任されているので業務効率化とプログラミングの勉強を兼ねて`リース管理アプリ`を作成しようと思いました。
# 躓いたところ
1. リース商品は契約開始日や更新日、解約日など日付を入力する部分がたくさんあります。
講座を写径しながら、自分で作りたいものに作り替えいくとエラーにぶち当たりました。
エラーに慣れていなくてまったく読みもせずに、どこを写し間違えたかと見直し→書き直し→migrateをループし
PHPファイルの読み込み方
#ファイルの読み込み方の種類
PHPのファイルの読み込み方には1行ずつ読み込むか一気に読み込むかの2通りあります。
1.1行ずつ読み込む→fgets()
2.一気に読み込む→fread()具体的に
##fgets()
流れ
1.第二引数にreadの頭文字を取った’r’を設定してファイルを読み込む。
2.fgets()は読み込む行が無くなった場合falseを返すのでfalseが返るまでwhileで1行ずつ取得し表示。
3.ファイルを閉じる。“`php
$fp = fopen(“ファイル名”, “r”);
while (($content = fgets($fp)) !== false){
echo $content;
}
fclose($fp);
“`##fread()
流れ
1.第二引数にreadの頭文字を取った’r’を設定してファイルを読み込む。
2.fread()で全ての値を変数に格納。
3.ファイルを閉じる。
4.格納されたものを表示。“`php
$fp = fopen(“ファイル名”, “r”);
$contents = fread($fp, fi
【3秒で】phpでリダイレクト
“`php
“`
[Vulnhub]Quaoarの脆弱性診断
# はじめに
## 免責事項
:::note alert
本記事で紹介する内容は、教育目的または脆弱性について仕組みを理解し周知、啓発を行うためだけに作成しております。
記載されているコードを実行した場合の損害は一切責任を負いません。
また、ハッキング行為をいかなる稼働環境・サービスに対しても行わないでください。成功しなくても試みること自体が違法行為にあたる場合があります。
上記の内容を十分理解された方のみ本記事をお読みください。
:::また、本記事の記載内容で、法的または倫理的に問題があると思われる箇所、その他お気づきの点などがございましたら、お手数ですがコメント欄までお知らせください。
## Quaoarの概要
2017年6月にViper氏により制作されました。
ダウンロードは以下よりできます。
https://www.vulnhub.com/entry/hackfest2016-quaoar,180/
以下のコメントがありました。
>クアオールへようこそ
これは、Hackfest 2016 CTF http://hackfest.ca/ のために私が作成した脆
XAMPPでYahoo!メールからメールを送信する
XAMMPのローカル環境で、PHPを使って自分のYahoo!メールアカウントからメールを送信する方法を解説します。
# 環境
– PC : Windows10
– ローカル環境 : XAMPP version 3.3.0
– メール : Yahoo!メール尚、gmailでも基本的なやり方は同じですが、SMTPのポート番号や外部アプリケーションの受け入れ設定などが変わってきます。gmailの解説をした記事は既に多数ありますので、本稿では解説しません。
# php.iniファイルの設定
まずは、いくつかのXAMPP設定ファイルの内容を変更する必要があります。
ひとつめは`php.ini`ファイルです。ファイルの場所はデフォルトでは`C:\xampp\php\php.ini`になります。:::note warn
作業前には必ずバックアップを取るようにしましょう
:::ファイルを見つけたら、テキストエディタで次のように修正します。該当箇所は`mail function`で検索すると出てきます。
“`php.ini
[mail function]
SMTP=loc
【Laravel,MySQL】設定ファイル.env、.env.example、database.phpの違いとは?
#概要
本記事は、[PHPフレームワークLaravel入門 第2版](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFLaravel%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798060992/ref=pd_lpo_1?pd_rd_i=4798060992&psc=1)で学習している中の疑問・つまづきの備忘録です。今回はLaravelでDBを利用する際の設定ファイルについてまとめます。
なお、[PHPフレームワークLaravel入門 第2版](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFLaravel%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%