🐘php– tag –
-
《PHP8上級試験対策》unserialize() のコンストラクタ・デストラクタ挙動を図解で理解
はじめに PHP8上級試験では、オブジェクトのシリアライズ・アンシリアライズに関する問題が頻出です。特に「コンストラクタは呼ばれる?デストラクタは呼ばれる?」とい... -
《PHP8上級試験対策》serialize() / unserialize()でオブジェクトを保存・復元してみよう
はじめに データを「一時的に保存したい」「通信で送受信したい」とき、オブジェクトや配列をそのまま扱うことはできません。そんなときに活躍するのが serialize() と ... -
《PHP8上級試験対策》__serialize()と__unserialize()の動作を理解しよう
はじめに オブジェクトをシリアライズ/アンシリアライズするとき、その「直列化」や「復元」に介入したいときがあります。 PHP8ではそのための新しいマジックメソッド_... -
《PHP8上級試験対策》ファイルアップロード時に $_FILES[‘type’] を信用してはいけない理由
はじめに アップロードフォームを使えば、ユーザは自由にファイルをサーバに送信できます。しかし、送られてくるファイル名・拡張子・タイプ情報は、すべてユーザ側の情... -
《PHP8上級試験対策》複数ファイルアップロード時の $_FILES の構造を理解しよう
はじめに ブラウザのフォームからファイルを2つアップロードしたとき、PHPで $_FILES を var_dump() してみると、2つの配列が並んで表示されます。これが正しい挙動なの... -
《PHP8上級試験対策》ファイルアップロードと enctype=”multipart/form-data” の関係
はじめに ファイルアップロードを行うとき、<form> タグに enctype="multipart/form-data" を指定しないと正しく動作しません。この属性がないと、ブラウザはファイ... -
《PHP8上級試験対策》BCRYPTの72バイト制限とpassword_verifyの落とし穴
はじめに password_hash() と password_verify() を使えば、PHPで安全なパスワード認証が実現できます。しかし、現在 PASSWORD_DEFAULT に指定されている PASSWORD_BCRY... -
《PHP8上級試験対策》password_verify()で平文パスワードとハッシュ値を照合する仕組み
はじめに パスワード認証では、ユーザーが入力した平文パスワードと、データベースに保存されたハッシュ化済みパスワードを比較する必要があります。しかし、ハッシュは... -
《PHP8上級試験対策》password_hash()とsaltの正しい扱い方【手動saltは誤り!】
はじめに 「パスワードは平文で保存してはいけない」とはよく言われますが、では実際にどう保存すべきか?PHP8上級試験では、「password_hash() 関数と salt(ソルト)... -
《PHP8上級試験対策》catchブロックで複数の例外をまとめて処理する方法(パイプ記法)
はじめに 例外処理を行う際、同じような種類の例外をひとまとめにキャッチしたいことがあります。PHP7.1以降では、catchブロックに「パイプ記号(|)」を使うことで、複...