PHP Perl 2021年08月18日 19:52   編集
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:8,364
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:3,989
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:5,016
PHP Shade 2021年06月19日 02:29   編集
Shadeプラグイン・スクリプト検索もレスポンシブ対応にしようかなと思って、久しぶりにCGIファイルを見てみたら、いろいろ他にも気になる部分が目について、結局ゼロからPHPで書き直すことにした。ちょこちょこ修正しているとはいえ、元はなんせ20年も前に書いたものだからなー。

スムーズに移行できるようログは旧CGIで作成したものをそのまま流用するつもりだったが、データを1個のファイルにすべて保存する形式にしていたのがどうも気になる。ダウンロードカウントもこのファイルに書き込む方式だったので、アクセスがあるたびにデータファイルを書き換える処理をしていたことになる。最初のころしょっちゅうログファイルが壊れていたのはこれが原因だったのかもしれない。
さすがにこれはないだろうと、まず新しいPHPプログラムでアクセスすると旧データファイルを扱いやすいデータ形式に書き換えることにする。登録内容1件ごとにファイルを作成することにして、ダウンロードは別ファイルでカウントすることにする。新方式のデータファイルを作成したら旧データファイルにはアクセスしないことにした。
続きを読む
counter:2,169
暗号 2021年06月19日 00:51   編集
Web上で使用するパスワードはほとんど半角英数字と記号を使うので、全角の日本語は使えないと思っていたが、必ずしもそういうわけではないようだ。この用語集作成スクリプトterm.phpや掲示板スクリプトbbs.phpでも、管理者認証などのためパスワードを設定することになっているが、試しに日本語のパスワードを設定したところ、問題なく使えた。

しかし、一般的には日本語のパスワードは使えないということになっている。たぶんパスワードの入力に のようなpasswordフィールドを使っているからだと思う。このpasswordフィールドは、入力した文字が伏せ字になるだけでなくIMEが無効になっているので、日本語が入力できないのだ。直接入力するのではなくコピーアンドペーストすれば入力できないことはないが、半角文字が使われていないとかいわれて受け付けられない場合もあるだろう。
パスワードの入力にpasswordフィールドを使っているのは、入力画面を盗み見るショルダーハッキング対策だと思うが、入力した本人にも見えないので、正しく入力できているのか確認しにくいという問題もある。(特に新しいパスワードを登録する場合)
続きを読む
counter:2,653
PHP 2021年04月26日 11:52   編集
長過ぎる文字列を切り詰めて短くしたいことがよくあるので、指定した文字数以上の文字は指定数に切り詰めて省略記号をつけるという処理のために以下のような関数を使っていましたが、思うように動かないことが多々ありました。
function jtruncate($str,$n) {
if ($n < 2) { return ; }
if (strlen($str) <= $n) { return $str ; }
$substr = mb_substr($str,0,intval($n/2),"UTF-8") . '...';
return $substr;
}
たとえばこの関数を使って
print jtruncate('PHPのコード',14);
を実行すると
PHPのコード...
と切り詰めていないはずなのに切り詰めた記号...が表示されてしまいます。
続きを読む
counter:3,761
2021年04月21日 20:36   編集
  • 左側に表示されるメニューをカスタマイズしたい場合は、タイトルが「Menu」という名前のページを作って下さい。
    Menuにはたとえば
    [[recent]]
    などと記載すると新着順に記事が表示されます。そのほかlistupプラグインなどを使ってメニューに表示されるインデックスをカスタマイズすることができます。
  • プラグインの詳細を見るには、「プラグインヘルプ」などのタイトルのページを作成し、
    [[plugins]]
    と記述して下さい。
  • ページ記述のヘルプは「ヘルプ」というタイトルのページに
    [[help]]
    と記述して下さい。

  • 初期設定では最新の記事がトップページに表示されますが、トップページを固定するには「FrontPage」というタイトルのページを作ってください。
  • Sidebar」というタイトルのページに書かれた内容はサイドバー部分に表示されます。
  • 「Footer」というタイトルのページに書かれた内容はフッター部分に表示されます。
counter:5,106
2021年04月21日 20:16   編集
ver.1.184
2023.04.15
PHP8.2.4対応 term.php search_image.php bbs.php calendar.php修正
ver.1.183
2022.12.30
カテゴリーを指定した際、該当記事数が1ページの表示件数を超えても繰り越しリンクが表示されていなかったのを修正。
ver.1.182
2022.10.15
スキンファイル編集機能追加
ver.1.181
2022.10.11
cssファイルの構成を変更
ver.1.180
2022.10.09
comment、comment2プラグインに管理者用画面を追加。
ver.1.179
2022.10.07
access、calendar、diff、files、footnote、get_id、plugins、searchプラグイン修正。
ver.1.178
2022.10.05
アクセスカウンター処理修正。
ver.1.177
2022.10.04
bbsプラグインを改修。
ver.1.176
2022.09.29
重複部分を整理。
ver.1.175
2022.09.23
files、listup、pluginsプラグインを改修。
ver.1.174
2022.09.11
calendarプラグインを改修。
ver.1.173
2022.09.06
管理者画面でのinit.php編集処理を修正。
ver.1.172
2022.08.29
bbs_countプラグインを改修。
ver.1.171
2022.08.14
アウトラインの表示を変更。
ver.1.170
2022.07.13
カウンター処理修正。
ver.1.169
2022.06.07
CSSの記述ミスなどを修正。
ver.1.168
2022.05.26
clendar、help、search_imageプラグインを改修。
ver.1.167
2022.05.19
選択メニューの表示をCSSで設定するように変更。
ver.1.166
2022.05.10
添付ファイルのナンバリング方式を変更。添付ファイルの表示位置を簡易指定できるように修正。
ver.1.165
2022.04.27
bbsプラグイン、bbs_countプラグイン改修。
ver.1.164
2022.03.27
bmpファイルのサムネール作成に対応。calendarプラグイン改修。
ver.1.163
2022.03.22
PHP8でエラーやアラートが出るのを修正。
ver.1.162
2021.10.20
非管理者モードで記事表示するときは、管理者用記事のリンクは表示しないが、
通常の記事内に管理者用記事のタイトルがあった場合リンクに置換していたのを修正。
ver.1.161
2021.09.22
記事内でdivタグを閉じ忘れるとレイアウトが崩れるのを修正。
ver.1.160
2021.09.15
bbsプラグインの投稿数をカウントするbbs_countプラグインを追加。
ver.1.159
2021.09.13
tmplディレクトリ内のテンプレートファイルと同名のcssが存在すれば、style.cssを上書きするよう変更。
ver.1.158
2021.09.09
bbsプラグイン修正。記事のデフォルト文字列を指定できるよう修正。
ver.1.157
2021.09.08
comment3プラグインを修正。
ver.1.156
2021.08.26
クッキーの処理を修正。search_image、navi、listup、categories、access、recentプラグイン修正。
新着順の記事名リストの数を変更できるように修正。
ver.1.155
2021.08.24
gifファイルのサムネール作成に失敗するのを修正。login.phpを読み込むよう変更。
ver.1.154
2021.08.02
Firefoxでリンクが効かないケースがあるのを修正。style.css編集。
ver.1.153
2021.07.05
bbsプラグインを改修。
ver.1.152
2021.06.22
file_upload関数内の記述ミスを修正。
パスワード認証時にブルートフォース攻撃対策処理を追加。login関数追加。
ver.1.151
2021.06.21
categoriesプラグイン修正。ヘッダーに表示するタイトルを選択できるように修正。
ver.1.150
2021.05.05
テンプレートの処理を修正。
ver.1.149
2021.04.30
readmoreプラグインを追加。
ver.1.148
2021.04.28
登録した拡張子のファイルのみアップロードできるようにした。
ファイルアップロード時にMIMEタイプチェックを行うようにした。
ver.1.147
2021.04.24
記事編集フォームをflexボックスによるレイアウトに変更
ver.1.146
2021.04.22
history.php、listup.phpを修正。
ver.1.145
2021.04.18
更新履歴の表示を変更。recent.php、bbs.phpを修正。
ver.1.144
2021.04.15
bbsプラグインで過去ログが表示されないバグを修正。
添付ファイルの表示順、レイアウトを調整。
ver.1.143
2021.04.14
style.cssの記述ミスを修正。bbsプラグインを修正
ver.1.142
2021.04.13
categoriesプラグインを改修。
ver.1.141
2021.04.11
カテゴリープルダウンリストと記事に表示されるカテゴリーの色がずれていたのを修正。
Sidebarという名前の記事を作成すると、サイドバーに表示されるように修正。
ver.1.14
2021.04.07
レスポンシブデザインに対応。
ver.1.138
2020.03.31
tag_convert関数修正。calendarプラグイン修正。
ver.1.137
2020.03.25
comment2プラグイン修正。
ver.1.136
2020.03.24
bbs、recentプラグイン修正。
ver.1.135
2020.03.23
bbs、comment、comment2、comment3プラグイン修正。
ver.1.134
2020.03.18
headerに記述したJavaScriptを外部ファイルに移動。
ver.1.133
2020.03.17
管理者モードが解除できないバグを修正。bbsプラグインにスライドロック機能追加。
ver.1.132
2020.03.12
記事に管理者モードを追加
ver.1.131
2020.03.11
$post_mode でだれでも編集可能モードにしてロックすると、
管理者パスワードでないと編集できなくなってしまうバグを修正。
ver.1.13
2018.07.09
カウンター機能で、同じホストからの連続アクセスをカウントしないオプションを追加。
ver.1.12
2018.06.12
検索結果で該当記事がない場合、フォームが消えるのを修正。
ver.1.11
2018.05.25
PHP7.2.0対応
ver.1.10
2017.12.28
プラグインが配列形式で値を返す場合、2個目の要素を記事末尾に追加するように修正。(脚注プラグイン対応)
ver.1.09
2017.04.10
古い履歴ファイルを削除するよう修正。
ver.1.08
2017.03.22
外部スタイルシートをブラウザ表示用と印刷用に分割。
ver.1.07
2017.03.01
プラグインの記述を間違えて致命的なエラーが出る場合、
プラグインの実行をキャンセルしてエラーメッセージを表示するようにした。
ver.1.06
2017.02.27
記事中のURLをオートリンクできるようにした。
ver.1.05
2017.01.31
誰でも投稿可モードの場合、管理者パスワードで記事をロックできるようにした。
誰でも投稿可モードで使用できるタグを設定できるようにした。
ver.1.04
2017.01.24
投稿フォームの「プレビュー」ボタンを押したときのプレビュー表示を調整。
ver.1.03
2017.01.23
カテゴリーの色がそろわないケースがあるのを修正。
ver.1.02
2017.01.17
記事を編集するとバックアップを作成するように修正。
合わせてdiff(差分表示)プラグインを追加。
ver.1.01
2017.01.12
別名が索引メニューで表示されていなかったのを修正。
ver.1.0
2016.12.26
とりあえず完成。
counter:4,308
Xampp 2021年04月14日 19:16   編集
ローカル環境のXamppをバージョン8.0.3に更新した。同梱されているPHPのバージョンも8.0.3。
ここで公開しているPHPプログラムではget_magic_quotes_gpcを使っているものがエラーが出て実行できなくなった。
代替の関数などはないが、新しいPHPでは必要ない関数なので、これを使った処理はすべて削除することにする。

imagecreatetruecolor関数もエラーが出て実行できない。
GDモジュールがデフォルトで読み込まれていないのが原因らしい。
phpinfo();
で調べてみると、確かにGDモジュールがなくなっている。
php.iniファイルで
;extension=gd
とコメントアウトされていたので、
extension=gd
に変更したらエラーは出なくなった。GDモジュールも読み込まれるようになった。

配列に{}を使っていたらcurly braces is no longer supportedとでて実行できなくなった。
配列は普通[]を使うが、{}を間違って使っていた部分もこれまでは配列と認められていたようだ。
counter:3,752
2021年04月12日 01:38   編集

|< < 2024年4月 > >|
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
counter:5,133