PHPで次月、前月の出すときの注意点

PHPで次月や前月を抽出するときに注意するべき点。

私は下記の方法で処理してました。

■次月を出力

上記方法だと特定の日で予想と違う結果が返ってくる

1/30、1/31に処理を見ると結果は「3月」になってしまう。
「2月」が返ってきてほしいが…

1/30に見ると処理は今日の日付の”月”に+1するので「2/30」→「3/1」となり、
結果は「3月」となってしまう。

これを回避するために下記の処理にすること

しっかりと「01」と指定してあげることで回避できる。

PHPのエラーを表示する

PHPでエラーが表示されずに困っていてその調整で初めて知ったこと。

PHPのエラー表示には「display_errors」を使います。
これがOffになっているとエラーが表示されません。

今回これがOnになっているのにエラーが表示されないのです。
PHPのバージョンは5.6.x

htaccessを見てみると下記の通り

お判りいただけただろうか…

正解は下記です。

なんと!htaccessで記述する場合はE_ALLのような定数を使ってはいけないのです。
数値で記述するとちゃんと認識されます!

各定数の数値はこちらで調べてください。

あー 知らなかった~
勉強なりました。

SSLとセッション

当然のことかもしれないけど、知らなかったので結構はまってしまった。

SSLとセッションの読み書き
SSL内ではnonSSLとは違うセッションが発行される。

SSL内
○ SSL内セッションの読み書き
○ nonSSLセッションの読み書き

nonSSL内
× SSL内セッションの読み書き
○ nonSSLセッションの読み書き

当然だけどnonSSLからSSLのセッションにはアクセスできない。

SSLとnonSSLが混在しているサイトはセッションの扱いに気をつけないといけない。

セッション使うならサイト全体をSSLにしちゃったほうが悩まずにすみますね。

OAuth2の認証を使う(Misoca API)

OAuth2の認証を使う(Misoca API)

Misoca(ミソカ)のAPIを使ってみよう!
OAuth2の認証を使っているということなのでOAuth2のことを調べてみた。

■Misoca(ミソカ)
Misocaにアカウントを登録してAPIの準備をします。

Misoca APIのドキュメント
https://doc.misoca.jp/
Misoca API v1
https://doc.misoca.jp/v1/
Misoca API v3
https://doc.misoca.jp/v3/

上記ドキュメントの「アプリケーション登録」の手順でAPIの準備をします。
・Application Id
・Secret
・Callback urls
上記の3つの値をメモします。

■OAuth2
https://github.com/thephpleague/oauth2-client

OAuth2の認証は上記ツールを使いました。
ダウンロードしたバージョンは2.4.1です。

上記バージョンだとPHP5.6、7~7.3まで対応です。

Composerで必要ツールを用意します。

 

プログラムコード

README.mdの中に記載のあるコードを使いましょう。
修正したものが下記になります。

 

●修正内容
2~7行目を修正
8行目に「scopes」を追加

41~63行目を追加・修正
リクエスト&レスポンスを追加
詳しくはMisocaのドキュメントを確認してください

OAuth2にすごい時間かかりました・・・(疲

htaccessでerror_reportingの変更

htaccessでerror_reportingを変更する場合にはまったので備忘録

 

上記のような感じで書いちゃうと動かないみたいだ。

htaccessで指定する場合はビット値での指定が必須のようです。

各値は公式サイトを参考に。

E_ALLを指定する場合は「32767」を指定
※PHP5.4は32767、5.3は30719、5.2は6143、それ以前は2047とバージョンによって若干値が変わります。

E_ALL & ~E_NOTICE & ~E_DEPRECATED

例えば上記を指定したい場合

E_ALL:32767
E_NOTICE:8
E_DEPRECATED:8192

NOTの分を引き算します。
32767 – 8 – 8192 = 24567

 

となる。

PDOでMySQLの操作をしてみる

PHP7での話し。
PHP7ではMDB2が動かなかったので、PDOでDB操作をしてみたの。

かなり簡単だけどサンプルコードを作ってみましたのよ。

PHPのショートタグ

サーバー移転時にショートタグで書いているプログラムがたくさんあった。

ショートタグ↓こんなやつ

全部修正は無理なのでショートタグを許可しちゃいます。

.htaccessに下記を記載

Deprecated警告の消し方

PHP5.3から上記警告が表示されるようになっています。
将来的にサポートされなくなる関数を使用した場合に表示される警告です。

その関数を修正するのが良いのですが、状況によっては修正に時間がかかる場合もありますね。

php.iniや.htaccess、ソースで表示をOFFの設定が可能です。

php.iniの場合(要Apacheのリロードor再起動)

.htaccessの場合

ソースの場合