WebEngine

だらだらと綴る技術系メモ

php

複数の値がすべて等しいか判断したい

手法 値をすべて配列に格納 値が重複しないように配列(リスト)を操作 配列(リスト)の要素数を調べる 調べた要素数が1ならば、すべての値が等しい。 以下は、PHP、Python、JavaScriptの記述です。 処理速度などは一切考慮していません。 PythonとJavaScr…

Docker ComposeでLAMP環境構築

この記事は今までのDocker系記事のゴール地点になる位置づけになります。(まだまだ怪しいところたくさんあるけれど...) Dockerは初めて、という方は以下の記事を順に追う形で読まれていくとぼんやりとイメージが湧いてくるんじゃないかと思います。 Docker…

DockerfileでPHP7環境構築

今回、Docker HubにあるPHP公式リポジトリのCreate a Dockerfile in your PHP projectの部分を参考にしました。 環境 mac OS Sierra上にDocker for macでPHP7 + apacheの環境を構築していきます。今はnginxが主流となりつつありますが、トラブルシューティン…

PHPのforeachの罠

php

foreachの$valueは参照渡しではない $arrayに格納されている要素を、すべて空文字列に置き換えたいとします。 方法はいろいろありますが、今回はforeachの話なので、foreachを使います。 string(3) "php" [1]=> string(6) "python…

PDOのfetch系メソッド

前提 PHP 5.6 mysql Ver 14.14 Distrib 5.7.18 Google Chromeでしかテストしていません PDOのfetch系メソッドをまとめただけです テストデータを用意 ※ fetch系メソッドだけ調べたい方は下の方まで飛ばしてください ターミナルでMySQLを起動。それから以下の…

ComposerでSmartyを入れて遊ぶだけ

php

Composer 最近のPHPerには必須のツール。PHP系ライブラリをインストールする際、依存関係を標準的に管理してくれる。(ある ライブラリをインストールした際、あのライブラリも要るのかあ、という状況を解決してくれる) Smarty PHPのテンプレートエンジン。…

今さらながら == と === の挙動の違いをチェック

そもそもコレなんて呼ぶ PHP、javaScriptで、いつも使っているけど、何て言うのか 覚えていますか? ネット上とかで毎回見ているけど、意外とスルーしていたりします。 正解は == 等価演算子 === 厳密等価演算子 うーん、会話で使うには長いんですよね。普段…

PHPでJSONを扱う

php

JSONってなに? JSON(JavaScript Object Notation)は、テキストフォーマットの一種です。シンプルで 開発者が理解しやすい構造をしており、コンピュータにとっては高速で処理しやすいというすぐれもの。 WebAPIなどを使って引っ張ってくる形式のファイルはCS…

パスワードをデータベースに保存するときは、一緒に塩を入れよう

セキュアに保存する -> 漏れた場合を想定する データベース(以下DB)にパスワードを保存するとき、そのまま (平文で)保存してはいけません。データが漏れた場合に、パスワードが 見た瞬間わかってしまうからです。 パスワードを保存する場合、暗号化してからD…

Vagrant + Ubuntu14.04 でLAMP環境構築

追記(2017.1.7) 久々に見直したところ、step.5の工程が必要ないことに気づきました。必要ない方は飛ばしてもらって結構です。 Step.0 前提条件 VirtualBoxインストール済み Vagrantインストール済み WindowsならばPuTTY or TeraTermインストール済み Step.1 …

PHPでクロスサイトリクエストフォージェリ対策を実装

php

クロスサイトリクエストフォージェリ(CSRF)とは? ユーザの意図しない操作を、そのユーザの権限で実行させてしまうという恐ろしい攻撃です。CSRFと略称で呼ばれること が多いです。 たとえば、情報発信系サービスであれば、AさんがログインすればAさんしか…

PHP簡易カレンダー作成

php

DateTimeクラスで簡易カレンダーを実装 date()関数で書いても良いのですが、サンプルがインターネット上に結構あったので、今回はDateTimeクラスで実装してみようと思います。DateTimeクラスは日付をオブジェクトとして扱うことのできるクラスです。個人的に…

filter_input関数を使って簡潔なコードを書こう

php

filter_input関数ってなに? (HTMLフォームのinputタグなどから)外部変数を受け取り、フィルタリングする関数。 一般的には、ユーザが入力した値などが妥当であるか調べたりするのに使います。 利点 通常フォームなどから値を受けとるとき、以下のように書く…

SQLインジェクション対策の一歩としてプレースホルダを利用する

そもそもSQLインジェクションとは? 悪意を持ったユーザが入力フォームなどにSQLを打ち込んで、不正に データベース(以下DB)にアクセスすること。XSS(クロスサイトスクリプティング)に次いで 有名な攻撃手法とも言われます。 この攻撃を受けると・・・ D…

emptyとisset

php

emptyとissetの違い ※ここに書いてあるのは、PHP5以上のバージョン話になります。 過去のバージョンでは仕様が若干違うようです。 empty -> 変数が空かチェックする isset -> 変数がセットされているかチェックする この2つ、よく使うわりにバグの温床になり…

inputタグのvalueにPHPを組み込む

php

inputタグのvalueにPHPを組み込む 初心者は意外なところでつまずいたりします。たとえば、プログラミング初心者が コード内に全角スペースを入力してしまうのは王道的なミスでしょう。この記事の 内容も若干それに近いです。熟練のPHPerの方はもっと有益なサ…