エンジニア足立のコーディング日記

エンジニア足立のコーディング日記

ブログトップ >> 『PHP』の記事一覧

『PHP』の記事一覧

PHP PDFファイルのアップロード機能を追加

お客様から、 既存システムにPDFファイルをアップロードする機能を追加したという依頼を頂きました。 その機能について少し説明したいと思います。   まず、 ファイルの選択画面のHTMLは、 みたいになりますね。   それで、 ファイルのアップロード処理を行うPHP側のコードは、 みたなコードにな …

公開日 更新日

PHP パスワードのクライアントへの表示について

サイト制作を行っていると、 会員制サイトを構築することも多々あると思います。   それで、 会員登録フォーム作成時、 ユーザーに希望のパスワードを入力させる仕様にした場合、 考えないといけないのが、 確認画面に 入力したパスワードをマスク化せずにそのまま表示させるのか、 それとも、 マスクして …

公開日 更新日

PHP クッキー(Cookie)にセキュア属性(secure属性)を付与

セキュリティの専門家の方からの指摘で、 本日は、 以前組んだシステムに脆弱性対策を施しています。   で、 指摘された内容の一つに、 ■セッション管理に使用するクッキー(Cookie)にセキュア属性(secure属性)を付けるようにしろ!! ■セッション管理に使用するクッキー(Cookie)のパスはちゃんと設定し …

公開日 更新日

PHP脆弱性対応 フォームの改行コード、復帰コードの取り扱い

サイト構築時、 大概の場合お問合せフォームを設置すると思いますが、 よく問題になるのが、 テキストボックス項目に入力された「改行コード(\n)」や「復帰コード(\r)」の対応です。   これらの文字を入力されてしまうと、 スパムメールの踏み台やフィッシング詐欺メールに利用されてしまう可能性があり、 …

公開日 更新日

PHP脆弱性対応 クリックジャッキング攻撃への対応

セキュリティー対策には多くの対応が必要ですが、 その対策の一つにクリックジャッキング攻撃への対応があります。   実は、 以前組んだサイトでクリックジャッキング攻撃への不備が見つかったので、 今回はその不備に対する対応方法についての紹介です。   それで、 「クリックジャッキング攻撃」とは …

公開日 更新日

【PHP】substr()を使って郵便番号を「3桁 – 4桁」に …

PHPでの郵便番号の取り扱いについて、 メモ程度に情報を残しておきます。   弊社では郵便番号と紐づけてデータベースから住所を引っ張ってくるといった処理をよく実装するのですが、 検索時に、 郵便番号にハイフン(-)を入れて検索される方と 数字のみ7桁で入力される方がいらっしゃいます。   デー …

公開日 更新日

PHPで「Warning: A non-numeric value encountered」とい …

かなり前に弊社で組んだシステムをPHP7.1の環境に移行しているのですが、 Warning: A non-numeric value encountered in ... という警告メッセージが出ていました。   メッセージの内容でなんとなく分かると思いますが、 数字として処理しないといけない場面で、 数字以外を渡してしまっていました。   …

公開日 更新日

さくらインターネット 共用サーバでエラーログを出力

さくらインターネットの共用サーバを借りて頂いている業者さんからの依頼でオリジナルのシステムを作成していた際の話です。   「display_errors=Off」の設定で開発を行っていたのですが、 ブラウザ上から確認すると画面に何も表示されない状態(真っ白な状態)になりました。   PHPで開発を行っていると …

公開日 更新日

Fatal error: Call to undefined function hash_hmac() in …

パスワードからハッシュ値を生成してDBに登録しようと、 ※「$password」と「$secretKey」の値は適当です。 というPHPコードを書いて実行すると、 Fatal error: Call to undefined function hash_hmac() in ..... というエラーが!!   hash_hmac()が利用できないようです。   どうも必要なモジュール …

公開日 更新日

お問合せフォームのスパム対策

お問合せフォームからスパムメールが大量に届くという報告が入りました。   スパムメールの内容はこれです。 =========================================================== ・ ・ お名前:注冊送188菜金980856点com加威信v202368 メールアドレス:523564608@qq.com ・ ・ ============================== …

公開日 更新日

【CVE-2017-5340】PHP7 脆弱性の対応

結構前の話になってしまうのですが、 PHP7.0.xxとPHP7.1.xx系で脆弱性の報告が出ていました。   具体的には、「PHP 7.0.15 未満」と「PHP 7.1.1 未満の 7.1.x」のバージョンが対象になります。 CVE-2017-5340 http://jvndb.jvn.jp/ja/contents/2017/JVNDB-2017-001055.html   弊社で運用しているサ …

公開日 更新日

PHPの最新リポジトリを追加でエラー!!

Ubuntu(バージョンは16.xx)で構築したサーバに、 PHP7.0.xxの最新バージョンを使用したかったので、 最新のリポジトリを追加しようと以下のコマンドを実行 # sudo apt-add-repository ppa:ondrej/php   ところが、こんなエラーが出てしまいました。↓↓ sudo: apt-add-repository: command not found   …

公開日 更新日

「preg_replace」じゃなく「preg_replace_callback」を使 …

あるお客さんのサーバでの話です。   今までPHPのバージョンが5.6だったのですが、 この度、PHP7を使用出来るようになりました。   で、折角なので、 この機会にPHP7にバージョンアップしてみました。   まず、WordPressでは問題は発生せず、OK!!   ただ、 オリジナルで組んでいるシス …

公開日 更新日

勝手にサーバ移行はやめて。。。

かなり前に弊社が作成したデータの入力システムでエラーが発生したと報告がありました。   そのシステムの中に「コメント」を入力して登録する機能があるのですが、 「コメント」を入力しても登録されない!! との報告でした。   何年間も正常に稼働していたのに急にどうして?   と言いたいとこ …

公開日 更新日

UbuntuサーバからPHP5.6を完全に削除

UbuntuサーバにインストールしているPHP5.6を訳合ってアンインストールしたかったのですが、 そんな場合には、# sudo apt-get --purge remove php5.6で完全に削除出来ます。もし、設定ファイルを残したい場合には、# sudo apt-get remove php5.6とすればいいようです。

公開日 更新日

MySQLのトランザクション処理

今日は久しぶりにはまりました。 現在、 バッチ処理でデータベースからデータを一旦全て削除して、 新規に取り込み直す処理を作成しています。※データベースはMySQLです。 TRUNCATE で全削除!! その後、 新規にデータを INSERT!! というような処理を書いたのですが、&n …

公開日 更新日

「PHPINIDir」でphp.iniのパスを指定

php.iniを修正したのですが、 Apacheの再起動までちゃんと行ったのですが、 反映されないという現象が。。。 で、php.iniのパスが間違っているのかと思い、 <?php phpinfo(); ?>で確認すると、 「Loaded Configuration File」が(none)になっていました。※サーバ環境は「entOS7」、「Apach …

公開日 更新日

WPの記事インポートで画像のサムネイルが作成されない!!

WPに記事をインポートしてみたのですが、 どうも記事の画像がリンク切れを起こしてしまいます。 使用しているサーバのPHPのバージョンは、「PHP7.0.5」です。   画像自体はアップロード出来ているようなのですが、 サムネイルが作成されていないようです。   ということは、 考えられるのはGDを利用出 …

公開日 更新日

ConoHaのVPSサーバへPHP7をインストール

こちらの記事では、 ConoHa VPSサーバへのPHP7のインストール方法をまとめています。   ■PHPをインストール # cd /usr/local/src/ # wget http://jp2.php.net/distributions/php-7.0.5.tar.gz # tar xzvf php-7.0.5.tar.gz # cd php-7.0.5 # ./configure --with-apxs2=/usr/local/apache2/bin/apxs --l …

公開日 更新日

CodeIgniter データベースキャッシュ機能を利用

現在、CodeIgniterを利用してシステムの開発を行っています。 で、 大量のマスターデータを保存したデータベース(テーブル)からデータを取得する処理が含まれるのですが、 毎回アクセスの度にデータベースにアクセスするのは勿体無いので、 キャッシュを利用したいですよね。 そんな場合は、& …

公開日 更新日

Smarty modifier(修飾子プラグイン)

以前、以下の様な記事を書きました。https://www.deep-blog.jp/engineer/archives/3803 で、 同じ様に全角英数字を半角に変換するという処理を実案件でも実装することになりました。 ということで、 今回は、modifier(修飾子プラグイン)を作成して対応することに。http://www.smarty.net/docsv2/ja …

公開日 更新日

Smartyで全角英数字を半角英数字に変換

今日は、久しぶりにSmartyを触りました。 といっても、 社内システムを少しいじっただけですが。 で、修正内容は、 mb_convert_kana()関数を使って、 全角数字で登録されているデータを半角英数字に変換して表示させる というもの。 社内システムだし、 あまり手間を掛けたくな …

公開日 更新日

「expose_php = off」の設定

今日はお客さんのサーバのPHP環境を1か所変更すことに。   php.ini に 「expose_php」という項目があると思います。   こちら、 有効になっていると、 HTTPヘッダにPHPのバージョンを一緒に出してしまいます。   こんな感じで↓ なので、   ここは「expose_php = off」と設定してやる …

公開日 更新日

新着情報の不具合

お客さんからホームページに表示させている新着情報が表示されなくなったという報告がありました。 レンタルサーバ側が仕様変更を行った直後に不具合が発生したようなので、 それが原因だと思いますが、 放置する訳にもいかないので修正です。 仕様は、 MTを使ったブログから配信されているRSS …

公開日 更新日

Nginx+WordPressでブログを運営(PHP5.5のインストール)

PHP5.5のインストール手順です!!   まずは、  # rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm  としてリポジトリを作成します。   # vi /etc/yum.repos.d/remi.repo  で作成されたリポジトリファイルを確認すると、 ==================================================== …

公開日 更新日

in_array()関数では第3引数(true)を設定する

ある配列の中に特定の値が貼っているかをチェックする場合、 in_array()関数を使うことがありますね。   ただ、 この関数は注意しないといけない点が!! ========================================$array = array(1, 2, 3, 4, 5);if(in_array(1, $array)){    echo "データが存在します。";}else{    echo "デ …

公開日 更新日

久しぶりのsmartyです!!

今日は、久しぶりにsmartyを触りました。と言っても、作業内容は単純で、データベースから取得した配列のデータを{foreach}を使ってループで1件ずつ取り出して、一覧を表示させるだけです。こんな感じです↓↓↓================================{foreach from=$aryData item="data"}処理{/foreach}======================== …

公開日 更新日

プレースホルダ(プリペアド・ステートメント)

私が入社する前に外注先に組んで貰ったかなり古いプログラムになるのですが、SQLインジェクションに関する不具合が見つかりました。で、コード解析を行いながら、該当箇所をチェックすることに。確かに、select * from テーブル名 where code=$codeなどというまずい記述が見つかりました。ここは、当然プレースホルダ(プ …

公開日 更新日

mb_strlen()関数の注意点!!

PHPでバイト数ではなく文字数を取得したい場合、   mb_strlen()関数を使用します。   ただ、   改行の入ったテキストの文字数を取得しようとすると、   改行を2文字と数えているみたいで、   正確な文字数が取得できません。   原因は「\r\n」を2文字と数えてしまう為です。 …

公開日 更新日

imagejpeg(): Filename cannot be empty in…

以前組んだシステムを別のサーバーに設置することに!!   PHPのバージョンは5.3から5.4に変わります。。。   何かしら問題は発生するだと思っていたのですが、   やはりエラーが。。。   ログを見てみると、 ==============================================imagejpeg(): Filename cannot …

公開日 更新日
このページのTOPへ戻る

著者情報

足立 拓也(あだち たくや)
1980年生まれ。
出身:兵庫県丹波市。
趣味:ボクシングジム通い。
特技:歴史の話しをすること。

カテゴリー