だ。ログ。

開発とかスノボとかやきうとか。

PHP

Laravelで時間がUTCになってしまう

保存している時間がおかしい Laravelでアプリ開発をしていてログを作る機能があったので何気なく $date = date('Y-m-d H:i:s');と言う変数にdate関数で日付と時間を入れ実行。期待結果 2023-12-07 10:00:00となるはずが 実行結果 2023-12-07 01:00:00 と記録…

PHPのfwriteでのエラー

管理画面でfwriteを使ってCSVを作成し、zipに圧縮してダウンロードさせる物があるのだがzipが開けないと言う報告を請けた。 既に運用して1年くらい経っていて、今までそんな兆候すらなかったシステムでのエラーなので不可解に思ったが調査。まずはLinuxのエ…

AWSのロードバランサにSSLにある際の強制SSLリダイレクト

サーバー側とアプリケーション側で開発が別れていると、サーバーサイド側の構成をあまり意識せず書いてしまう事が多いが 強制SSLのリダイレクトを.htaccessに書くと <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{R</ifmodule>…

配列をmb_convert_encodingするとアプリが動かなくなる

ありがちな事だが、テスト用サーバーは古いシステムも新しいシステムも混在する。 なので古いシステムにコンポーネントを合わせて環境がセットアップされている。新しいシステムで、CSVのアップロードが必要との事でローカルの開発環境は常に最新の環境にし…

SendGridのAPIのバージョン変更に伴う不達

送信できない 結局なんでもそうなのだが、現状動いていると言う事にかまけていると気が付かなくなる事の方が多い。 今回も前々から告知は出ていたみたいだが、SendGridの古いAPIのバージョンでメールが送信出来なくなる事象が発生した。 原因 どうやら、API…

CakePHPのセッション管理

CakePHP2のフォームを作る方向で調査していたのだが、POSTの際には $this->request->data で参照出来るのだが、リロードした場合にrequestから全て消滅してしまう。 リロード対策としてPOSTした先でセッションに格納と言う事でなんとか対処しようと $this->S…

mysqlのインポートでRow size too largeが出た場合の対処

そもそも基本的なテーブル構成はインポート出来るがデータ内の容量が大きくなってしまっている時に出るエラーで 意図していないが、開発環境でページの確認をする為に長いデータを入れた際の事を考慮せずにダラダラとデータを入れ続けた結果 インポートする…

PHP7.2環境でのZIPの展開エラー

前にもLaravelで同じような記事を書いたが NOT LOAD extension "ZIP" と言うエラーが出て、環境が復元出来ない事があった。どうしても古い環境なので、その依存性が高い事自体があまりよくない事だが、CentOS7+PHP7.2の環境でyumを利用したインストールで忘…

MacでのDBツールを何にするかと言うはなし

開発環境がいままでWinを主軸にしていたので、Macは遊びと言うか自分が使う分に困らなきゃ程度に考えていた。 ただ、2020年冬の状況下を考えると会社外での仕事をする状況もおうおうにして出てくる事が考えられる。 政府の対策が後手に回ってしまっている事…

SQLからCSV出力した際に携帯電話の0頭を表示させる

結構あるのがデータをCSV形式でダウンロードした際に、携帯電話番号の0が抜けてしまう。正) 080334334334 誤) 80334334334後者となってしまう形である。 要は頭の0が抜けてしまっている状態であると言うこと。 PHPなどのアプリケーション側で形成するのも…

get_headersでHTTPステータスコードが正しく取れない

自分達だけ使っているシステムだとオペレーション上でなんとでもなる事かもしれないが、他人が使っている場合どうしても突拍子もない操作から想定していない自体が起こりうる。 画像が消えた!と言う事を言われる。そもそも既存であるシステムのため、レコー…

wordpressのPOST先が ページが存在しません になってしまう。

フォームを作っていて、何気なく要素名を決めて送信していたのだが フォームから自分にPOSTをした際に何故か「ページが存在しません」となり、設定したコントローラにすら到達出来ていない。 言わばPOSTしたデータを確認しようとしてexitを設定してもその前…

WordPressの固定ページ、投稿で自作PHPの呼び出し

動的なサイトをWPで作らねばならない状況になった。 もともとEC-CUBE等はやってきたが、WPは縁がなかった。 とは言え、今後メシを喰うためにと言うワケではないが動的にデータを取得し、最終的には動的にページを作れるようにならないといけない。 地道に勉…

WordPressのプラグインにFTP情報を聞かれる

AWS ec2インスタンスでWordPressを構築した際にFTPサーバーを構築せず、いわゆるデフォルトのユーザーである ec2-userにてアップロードをしてインストールした。 この後にする事として、SSL化等のプラグインを入れる必要があるがプラグインを検索してインス…

IPでページ表示時のリダイレクト

IP直叩き リダイレクトこの辺の言葉が全てになるが、IPアドレスをブラウザで叩いた際にページが見えてしまう。 apacheの設定上、0.confとか作っておいて優先順位が最上位のconfを読ませておけば。と思ってしまうが商用稼働してしまっているサイトの場合停め…

Excelとかスプシの列の移動

PHPでExcelとかスプレッドシートを扱う場合に行の移動は数値なので数値を足していけば良い。 しかし横の列に値を入れたい。ってときにどうすればって事で悩む。 A~Zで済むなら配列にABCD持たせて…?等思ったが列数がオーバーした段階で詰む。要はA~Zを越え…

bootstrap3のテーブルのhoverの際の色を変える

自分みたいなコテコテのエンジニア気質であっても、現代のWebでは最低限表示要素の管理をしないとjavascript系の操作が出来ない。 そしてページデザインを要しないbootstrapでのプロトタイプを先行して作成する。等のモックアップの作成等も必要となってくる…

LetsEncrypt証明書をcentos7にインストールする

開発用サーバーのSSL化ってのも現在は必要になっている。 アプリケーションとして環境差異、特にSSLのみで動作に影響あるようなシステムを作ってはいないと考えたいがある程度は整えておきたい。古い開発手法をしていると*.hoge.fugaのマルチドメイン対応で…

CakePHP2の固有ページ用のスクリプトの読込

いまだに化石みたいなシステムを触る事も多い。 共通化部品となっていればそれにこした事はないが、ページ毎に固有で出したいスクリプト等もポツポツと出てくる。 特にコンバージョンタグや計測タグ系は入れては消してが多く、このページ「だけ」出したいと…

速度測定とパワープレイ

環境固有ではあるが。と言う言葉を使うと、解決出来ないのか?と言う質問が返ってくる。 カネを掛ければいけますよ。と毎回笑顔で答えるが「知恵でなんとかしろ」と言われるのが関の山。今回の場合、jQueryのDatePickerを使う為に設定を行った。 初期ロード…

LINEメッセージのURLをデフォルトブラウザで開く。

新しい技術ってワケじゃないけど、LINEを使うってな事が多くなってきている。 大半の人は入っているのでプラットフォームに乗っかってどうにか集客するって言う意味では良い試みだとは思う。ただ気になるのは、LINEアプリ内のブラウザで完結してしまう事があ…

SESからSNSを経由したバウンスメールの通知のjsonが上手くパース出来ない件

SESの大原則、メールのバウンス率が5%を越える事なかれ。 商用環境だろうとなんだろうと無慈悲なサービス停止を回避する為にはメールの送信失敗率を極力抑える必要性がある。 送る事は前提として、どうやって抑えるか。 多分、厳密には送る前にアドレスの正…

AWS SESの差出人の書き方

テンプレなのでコピペすれば良いように。 名前部分の書き方。 $sender_name = mb_convert_encoding("ワイやでワイ", 'ISO-2022-JP', 'UTF-8'); $from = sprintf('%s <%s>', mb_encode_mimeheader($sender_name, 'ISO-2022-JP'), "waiyadewai@hogefuga.mofu")…

CakePHP2で生SQLを発行する。

なんと言うか他者の作ったシステムに手を入れると言うのは非常に手が掛かる。 モデル部分で変な結合が入っていたり、意図しないデータの取得の仕方をしていたりしている為、最短距離でこういうデータってのが取りづらい。 特にSQL部分はモデル部分がいかに基…

CakePHP2でリダイレクト

CakePHPでルーティングでディレクトリごと使わなくなったとかって事がある。 コンテンツとしての価値の問題もあるが、これを.htaccessであれこれコネてしまうと面倒な事になる。 CakePHPのルーティング内であれば Router::connect('/hoge/:fuga', array('con…

各デバイスのカレンダーにPHPから動的にデータを登録する

なかなかそれっぽいググり方が出来なかった自戒も込めて。 まず、カレンダーは形式が決まっていてXMLではないが書き方のお作法がある。 そのお作法にしたがって書く事が要点。ファイル形式は.icsで出力する。そのファイルをブラウザで読み込むと各デバイスOS…

PHP5.3とそれ移行の配列の落とし穴

サイトマップを生成するプログラムを作っていた。 ローカル環境はbent-centos7.2を利用しているので、必然的にPHP7系をインストールしている。 $array_xml([ 'loc' => 'https://hogefuga.mofu/aaaa/bbbb/', 'lastmod' => date('Y-m-d'), 'changefreq' => 'we…

CakePHP2のパスワードの生成の仕方

結構何やってんのかってのが分かり辛いがデフォルトの設定のまま使っているとCakePHP2はsha1で暗号化している。 CakePHP2.6が前提だが、送信されたパスワードをただ暗号化しているだけではない。/app/Config/core.php 230行目付近 Configure::write('Securit…

根本的な見直し

「サーバーが遅い」と言う意見をよく聞く。 ひねくれたシステム屋からすれば、通信環境とか様々な事を加味した上で遅い言ってるワケではないので、サーバーが遅い・重いと言う言葉はどのアーキテクトを触るか?と言う事の判断材料にしたくはない。 根無し草…

aceエディタの入力した内容を取得する

jsプラグインの中でもこの頃多様しているaceエディタ ace.c9.io ブラウザ上でエディタが出せるので便利。とりあえず使うにはこれ。 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/ace.js"></script>