PHP 2022年10月13日 23:43   編集
用語集を作成するためのPHPプログラムです。
  • インデックスを新着順、索引、カテゴリー別に切り替えられます。
  • 記事内に他の記事のタイトルがあれば自動的にリンクを張り、記事の内容を一部ポップアップ表示します。
  • 記事にカテゴリーを設定することができます。カテゴリーによる絞り込み、分類表示が可能です。一つの記事に複数のカテゴリーを指定することができます。
  • 同じタイトルで内容が違う記事を複数作成することができます。
  • 管理者設定で「管理者のみ投稿可」、「誰でも投稿可」を指定できます。
  • pluginディレクトリにphpファイルを入れると、プラグインとして機能させることができます。
続きを読む
counter:5,410
PHP 2022年10月06日 02:04   編集
掲示板PHPスクリプトです。
利用者に負担をかけずにスパム対策するというのがコンセプトで、以下の対策をとっています。
続きを読む
counter:1,034
PHP 2022年10月03日 20:19   編集
姉妹ページ?で紹介しているサブネット計算PHPのアクセスが結構多いらしいのですが、「ページがモバイル フレンドリーではありません。」などと表示されていたので、レスポンシブ対応に書き換えてみました。せっかくなので公開します。
counter:709
PHP 2022年03月22日 20:02   編集
CGIの詳細予定表と長期予定表を合わせたようなPHPプログラムです。
1.png
2022/03/22 ver.0.053
PHP8でエラーが出るのを修正しました。
  • スケジュールの時間をグラフ表示します。1日に複数の予定を登録した場合、時間が重ならない限り同じライン上に表示されます。
  • スケジュールの登録は1分単位で可能(設定による)ですが、グラフの表示はそこまで正確ではありません(^^;
  • スケジュールにはカテゴリー、タイトル、コメントを保存することができ、カテゴリーごとに違う色で表示されます。
  • 2日間に渡る予定には対応していません。終了時間が24時を越える予定の場合は25:30のように設定することもできますが、表示は24時で切れます(設定で終了時間を24時以降にすることも可能です)。
  • 定期的なスケジュールを一括入力、一括変更することができます。一括入力されたスケジュールも個別に編集することができます。
counter:2,283
PHP 2022年03月22日 19:42   編集
PHP/用語集作成 PHP/掲示板PHPにブルートフォース攻撃対策処理を追加しましたが、他にも使えるかもしれないと思ったので、対策処理部分をモジュールにしました。
login_ver1.05.zip (9Download)
ver.1.01		2021.07.27	メール送信機能を追加。function send_mail追加
ver.1.02 2021.07.28 メール送信のルールを整理。ロックディレクトリの大文字小文字を識別するように修正。
ver.1.03 2021.08.06 関数外で指定した変数が反映されない場合があるのを修正。
ver.1.04 2021.08.10 utf-8以外の文字コードのPHPファイルから呼び出す場合、IDやパスワードが日本語だとうまく動作しないのを修正。
ver.1.05 2022.03.22 若干修正。
総当たり攻撃はユーザーIDを固定して複数のパスワードでの認証を試みるブルートフォースアタックと、逆にパスワードを固定して複数のユーザーIDでの認証を試みるリバースブルートフォースアタックというのがあるということなので、このモジュールでは同じIDあるいは同じパスワードで10分間にに3回ログインに失敗したら60分間ログインをロックします。
続きを読む
counter:805
PHP 2022年03月18日 19:34   編集
XamppをアップデートしたらPHPも8.1.2になった。
いくつか推奨されなくなる機能がある。ウチのPHP関係では

暗黙の float から int への変換

intを使わなくてはいけない時にfloatを使っていた場合、アラートが出るようになった。
$width = 92.5;
$height = 50.1;
$canvas = imagecreatetruecolor($width, $height);
これまでは黙ってintに変換して適用していたが、元のfloatの値と変わってしまうのでアラートを出すことにしたらしい。単にintで指定すべきところをfloatで指定したからというわけではなく、
$width = 92.0;
のように小数点以下が0の場合はintに変換しても値が変わらないのでアラートは出ない。
counter:240
2021年09月09日 13:09   編集
改行コードってあまり気にしていなかったが、あまり無頓着だとトラブルになるようだ。
Linuxサーバー上での動作をチェックするために久しぶりにCGIファイルをWebサーバーにアップロードしてみたのだが、
500エラーで動作しないという問題が発生した。パーミッションをいじっても動くようにならず、なんでだと思っていたら
CGIファイルの改行コードがCRLFになっていたのが原因だった。

以前はCRLFでもエラーは出ていなかったはずと思ったが、どうも以前はFTPソフトでテキストモードでアップロードしていたので、自動的に改行コードがサーバーにあったものに変換されていたようだ。最近はテキストモードではなくバイナリモードでアップロードしているので、CRLFのファイルはCRLFのままアップされる。

整理しておくと改行コードはLF、CR、CRLFとあって、OSによって使う改行コードが違う。
LinuxなどUNIX系はLF、MacはCR、WindowsはCRLFを使う。プログラムでは、LFは"\n" CRは"\r" CRLFは"\r\n"と記述する。

でWeb上のサーバーはLinux系が多いので、そこで使用するCGIファイルはLFを使わなければならないということなのだろうが、不思議なことにPHPはCRLFのままでも問題なく動いている。
それとWindowsにインストールしたXamppでは、WindowsなのでCRLFで動くのは当然として、LFでも問題なく動く。

Webサーバー上のCGIファイルの改行コードは、OSで使用する改行コードを使うことが望ましいが、使わないと絶対ダメというほどではないということか。いずれにしても、WebプログラムのファイルはLFで統一しておくのが無難かもしれない。
ちなみにWindows標準のテキストエディタ「メモ帳」は、以前はLF改行コードでは改行されなかったが、最近のはちゃんと改行されるようだ。
counter:379
PHP Perl 2021年08月18日 19:51   編集
PerlからPHPへ書き換えからの続きです。

qq()を""へ置換して内部の"をエスケープするのがエディタの正規表現置換ではうまくいかないということで、PHPを使ってその書き換えをすることにしましたが、どうせならついでにほかの置換部分、ダブった変数の書き換えもやれるようにしたのが、perl2php.phpです。
ver.1.0	2014/11/28	機能制限モード追加
ver.1.1 2021/08/18 PHP8でうまく動かないのを修正
久しぶりに更新しました。PHPの仕様変更への対策だけですが。Xampp8.0.3参照
webに置いて使用するようなものではないので、ローカルでのみ実行可能ですが、機能制限版をアップしました。
xamppなどを入れてローカルでPHPを動かせる環境を持ち、自分でperlやPHPを書いている人対象ということになります。使用する場合ははあくまでも自己責任でお願いします。
続きを読む
counter:4,813
Xampp 2021年08月05日 03:50   編集
メインのブラウザとして使っていたKinzaの開発が終了したらしい。Google APIにアクセスできなくなってGoogleアカウントと同期できなくなったためということだ。ウチではGoogleアカウントの同期とか使っていなかったので、使えなくても構わないのだが。いずれにしても開発終了してしまったなら、セキュリティの問題もあるので別のブラウザに乗り換えざるを得ない。
普通はChromeということになるのだろうが、ブックマークを新規タブで開けないのがめんどくさい。右クリックメニューや真ん中ボタンを使えばいいのだが、頻繁に使う機能なので、余計な1アクション増えてしまうのは抵抗がある。

Chromeを試してみたらローカル環境でもひっかかった。Xamppを使ったローカル環境でhttpsアクセスすると、やたらセキュリティ警告が出るのだ。Kinzaでも時々は出ていたのだが、一度「リスクを承知でアクセス」するとしばらくは出なかった。Chromeだとしつこいほどに出る。
ローカルサーバーではhttpしか使わないことにしてもいいのだが、できれば.htaccessファイルなども含めてWebサーバーと同じ環境でテストしたいので、httpsでアクセスできるようにしておきたい。
どうもXamppでインストールされる証明書が2019年で期限が切れているのが原因らしい。Chromeの警告は正常に動作しているだけなのかもしれないが、うるさいことには違いない。有効な証明書をインストールしてやればいいらしいのだが、まともにやると結構手間がかかりそうだ。
調べてみると、mkcertというソフトを使えば、ローカルサーバー用の証明書を簡単に作れるらしい。試してみると確かに簡単に作れた。C:\xampp\apache\conf\ssl.crt、C:\xampp\apache\conf\ssl.keyディレクトリ内にあるserver.crtファイルとserver.keyファイルをmkcertで作成したファイルで上書きすると、警告が出なくなった。

Firefoxも試してみた。
Firefoxを触るのは久しぶりだが、ブラウザによる見た目の違いは昔ほどはないようだ。しかしCSSの解釈が微妙に違うところがあるようで、たとえばこのサイト構成に使っているterm.phpはFirefoxではリンクが効かなくなるケースがあることに初めて気づいた。フォームの入力フィールドのサイズもChrome系とかなり違う。メインブラウザとして使わないとしても、たまにはFirefoxでの表示もチェックしたほうがいいかもしれない。Firefoxもブックマークを新規タブで開く設定はないが、隠し機能でブックマークから新規タブで開くことができる。

ブックマークを新規タブで開くなんて普通にメニューで設定できてもよさそうなものだが、これができるブラウザは少ないようだ。なんでなんだろう。セキュリティの問題かなんかあるのだろうか。target=”_blank”で別ページを開く場合は親ページが改竄される危険があるらしいが、ブックマークは親ページとか関係ないと思うのだが。

逆にChrome系にしかないと思っていたレスポンシブ対応確認のための表示は、ほとんどのブラウザでできるようだ。できるに越したことはないのだが、これはWeb開発しているユーザーでないと必要ない機能だ。

で結局Vivaldiにした。Kinza同様タブ、ブックマーク関連のメニューが豊富で、標準機能でブックマークを新規タブで開けるからだ。
counter:567
PHP 迷惑投稿対策 2021年06月30日 19:54   編集
スパム投稿対策研究のために設置した掲示板を長いこと放置していたら、スパム投稿でひどいことになっていた。対策は継続してやらないとダメのようだ。
旧掲示板のURLから今回新たに公開したbbs.phpにリダイレクトするようにした。PHP/掲示板PHP
  • ./yybbs/yybbs.cgi → ./yybbs/bbs/bbs.php
  • ./clip/clip.cgi → ./clip/bbs/bbs.php
できればスパム投稿を続けてもらって、bbs.phpがどれだけスパム防止効果があるか調べてみようということだ。とはいってもフォームから投稿してくるスパムはほとんど無いと思うので、これまでのスパムがすべて新掲示板に流れるわけではないと思うが。
・・・と思っていたが掲示板2の方はさっそく前の掲示板と同じ傾向のスパム投稿が来ている。JavaScriptのスライドロックも効果が無いので、ひょっとしたら人が投稿している?

bbs.phpのスライドロックは、ロボットはJavaScriptは無視するらしいということに期待して、JavaScriptで表示するロックを外さないと投稿できないという仕組みだ。ボタンを横にスライドするだけなので、読みにくい文字を入力したり、写真を選ぶ必要はない。この記事のテーマであるユーザーの負担が少ないスパム投稿対策というわけだ。
続きを読む
counter:725