PHP
他社のAPIで認証を行わなければならなくなりました。 仕様を確認すると、POST形式でidとパスワードを送信し、結果をXML形式で返してきます。XMLをPHPで処理したことがなかったので検索しました。 curlを使って、idとパスワードを送信 curlでPOSTする方法の参…
PHPには、LDAP関数が用意されていて、LDAP認証を利用できます。 www.php.netldap_connect関数でLDAPサーバーに接続のための引数が妥当か確認し、ldap_bind関数で実際に接続します。 www.php.net www.php.netldap_bind関数の戻り値が、成功のtrueになかなかな…
Webの登録システムで、英文を入力して登録する場合があります。 登録すると、登録内容を通知するメールを送信します。英文を登録した場合、メールに記載する英文の改行の位置は、単語の途中にしないで欲しい、と要望がありました。 自力で実装する場合 単語…
調べながらCentOS 7.6にPHP 7.3とLaravel 6のインストール をしました。 Laravel 6のインストールでハマりましたが解決できました。 EPELリポジトリを追加 最新のApacheのインストールのために既に行っていれば不要です。 $ sudo install epel-release yumを…
PHPで作られた既存のシステムで、CSV形式でのファイルのダウンロード機能に、なぜかfputcsvが使われていませんでした。 fputcsv ファイルを一旦作成後ダウンロードするのではなく、直接データを出力してダウンロードするため、使われていないようです。fputc…
3年以上前に、POSTでデータを渡すための方法を書いていました。 ajya.hatenablog.jpPOSTで使えたのだから、GETでも使えるでしょうと考えて試したところ、使えました。cURL関数のGETでの利用方法以下のようにして、利用できました。 // 初期化 $curl = curl_i…
PHPで、セッション変数の初期化を行いました。 セッションの破棄まではしたくなかったので、 $_SESSION = array(); としました。セッション変数の初期化は、PHPのマニュアルにサンプルとして書いてある方法です。 セッション変数が連想配列になっているから…
古いPHP環境で作成されたシステムで、TSVのファイルを読み込まなければならなくなりました。 PHPでTSVを読み込む方法を検索すると、SplFileObjectを使うと楽そうだとわかりました。 PHP: SplFileObject - Manual TSVを読み込んでみる 試してみると、簡単に読…
以前、2次元配列へのデータの設定方法を書きました。 ajya.hatenablog.jpこれでもいいのですが、 foreach()を使って代入するほうが手間がかかるのではと思ってしまいます。PHP:2次元配列へのデータの設定方法 - ソフトウェア開発者の日常と書いたように、fo…
あまり使いたくはありませんが、2次元配列で値を定義した方が後々管理が楽になる場合があります。定義する値が少ないのであれば、以下のように書けば済みます。 array(1 => 'abc', 2 => 'def'), 2 => array(3 => 'hij', 4 => 'klm'), ); あるいは、 array(…
PHPのdefineに変数を指定したくなって、できた記憶がなかったのでマニュアルを見てみました。 PHP: define - Manualマニュアルによると、 PHP 5 では、value は スカラー値 (integer、 float、string、boolean あるいは NULL) でなければいけません。PHP 7 …
データベースから値を読み込んで、1だったら会員、0だったら非会員のラジオボタンを設定しようとしました。 必ずデータベースに値があるとは限らなかったので、empty()で判定して、empty()の戻り値がfalseならラジオボタンに設定することにしました。 PHP: e…
セレクトボックスが4個ある画面があります。 4個のセレクトボックスには全て同じ選択肢が設定されています。 同じ選択肢を選ばれていないか、チェックが必要です。 重複を除去して、配列の数が異なっていれば、重複して選択していると判定 if文で1個目の選択…
一見すると選択肢がほぼ同じ選択項目が2箇所あります。 2箇所の選択項目の違いは、1個の選択肢の有無だけです。 一方の選択項目の選択肢の最後にある選択肢が、もう一方の選択項目の選択肢にはありません。 それ以外は選択肢は全く一緒です。PHPで選択項目の…
帳票出力のために、出力する文字列の長さが全角で20文字を超えたら、強制的に改行をしなければならなくなりました。 文字コードがUTF-8なので、strlen()とmb_strlen()では、全角20文字が正しく数えられません。 PHP: strlen - Manual PHP: mb_strlen - Manua…
サーバー上のファイルを圧縮するために、ZipArchiveを初めて利用しました。 利用した際、以下の2点に戸惑いました。 アーカイブの作成先のパーミッションが無くてもopenに成功する $zip = new ZipArchive; $res = $zip->open("/home/usr/test/zip/test.zip")…
昨日の記事に続いて、これまでに見たことがあるバグです。 昨日の記事はこちらです。 ajya.hatenablog.jp あるシステムで、データの更新兼削除の設定ができる画面があります。 データを更新するために入力して、更新ボタンを押すと、削除が勝手に設定されて…
これまでに見たことがあるバグです。あるシステムで、 入力内容をデータベースに登録処理 決済処理 メール送信処理 という流れで処理をしていました。決済処理でエラーが発生した場合とは、例えばクレジットカード番号が間違っていて決済できなかったときが…
Webシステムのプログラムで、ログインしていない状態なのに、なぜかデータベースの参照を行っていました。 index.phpにアクセスされると、ログインしていなければlogin.phpに遷移するようになっています。 ログインしていれば、login.phpには遷移せず、index…
JavaScriptの計算誤差への対処を書きました。 ajya.hatenablog.jpこのとき、同時にPHPの小数点以下の切り捨て誤差の対処もしました。 JavaScriptとは異なる箇所で誤差発生 JavaScriptでは、36.3×700=25,410になるはずのところ、25,409になっていました。 PHP…
CentOS 7.4、PHP 5.6の環境でPHPExcelを利用したくなったので、インストールしました。 github.com photo credit: Nguyen Vu Hung (vuhung) CentOS 7 64bit 07 via photopin (license)インストール手順こちらのページを参考にして、以下の手順でインストール…
ファイルアップロードが複数になった場合、どのようなコードを書けばいいのかわかりづらいので、メモとして書いていきます。 photo credit: FootMassagez Coding a program - Credit to https://costculator.com/- Credit to https://costculator.com/ via p…
Webページにラジオボタンがあり、初期は2個でした。 <form method="POST" action="next.php"> <input type="radio" name="radio1" value="1">Aを希望 <input type="radio" name="radio1" value="2">Bを希望 </form> 「Bを希望」を選ばれた場合だけ処理したいときは、PHPで次のフォームを作成していた場合、 if ($_POST["radio1"] === "2") { // Bの処理 } と書けば処理ができます。この状態に対して選…
以前、チェックボックスのname属性を配列のようにして、値を取得する方法を書きました。 ajya.hatenablog.jp今回はラジオボタンを配列のようにして、値を取得する方法です。 今回もうろ覚えで作成して、よくわからなくなって、上の記事を読み直していました…
過去に作られたデータベースにデータを登録するプログラムを、XAMPPをインストールして動作させました。 動作するまでに起きた現象と対処について、以下の記事で書きました。 ajya.hatenablog.jp文字化けが発生するPHPのファイルはShift_JISで作成されていて…
データベースにデータを登録しなければならず、2年前に利用したプログラムを確認しました。 確認した結果、PHPだけあればいいと思っていところ、ApacheとPHPが動作するWebの環境が必要なことがわかりました。手っ取り早くApacheとPHPが動作する環境を構築す…
PHPの実行時間の制限について書きました。 ajya.hatenablog.jpmax_execution_timeの値を長い時間をにして止まらないのを確認するのも方法ですが、1秒という極端に短い時間にして試してみました。 確かに1秒で終了したので、max_execution_timeの値で制限がで…
以前お客さんのWindows Server環境で、PHPで作ったコマンドラインから起動するプログラムを実行していました。 半年に一度ほどの作業で、時間がかかる処理というのはわかっていました。 処理の状況から1時間半くらいで終了するかと予想して待機していました…
Webページのフォームに、久しぶりに一から複数のチェックボックスを配置して、次のページで選ばれた複数のチェックボックスの値を読み込もうとしました。 なんとなく覚えていたので作成できましたが、うろ覚えなので記録として残します。 読み込み側のページ…
先日、TCPDFでHTML形式のデータを指定してPDF出力すると「-」で折り返してしまったので対処をしたことを書きました。 ajya.hatenablog.jpこのとき、別の現象にも気がついていました。 別の現象は、文字列をtableタグのtdタグで囲んで出力すると自動で折り返…