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

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

しかし、一般的には日本語のパスワードは使えないということになっている。たぶんパスワードの入力に のようなpasswordフィールドを使っているからだと思う。このpasswordフィールドは、入力した文字が伏せ字になるだけでなくIMEが無効になっているので、日本語が入力できないのだ。直接入力するのではなくコピーアンドペーストすれば入力できないことはないが、半角文字が使われていないとかいわれて受け付けられない場合もあるだろう。
パスワードの入力にpasswordフィールドを使っているのは、入力画面を盗み見るショルダーハッキング対策だと思うが、入力した本人にも見えないので、正しく入力できているのか確認しにくいという問題もある。(特に新しいパスワードを登録する場合)
続きを読む
counter:557
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:476
2021年04月21日 20:36   編集
  • 左側に表示されるメニューをカスタマイズしたい場合は、タイトルが「Menu」という名前のページを作って下さい。
    Menuにはたとえば
    [[recent]]
    などと記載すると新着順に記事が表示されます。そのほかlistupプラグインなどを使ってメニューに表示されるインデックスをカスタマイズすることができます。
  • プラグインの詳細を見るには、「プラグインヘルプ」などのタイトルのページを作成し、
    [[plugins]]
    と記述して下さい。
  • ページ記述のヘルプは「ヘルプ」というタイトルのページに
    [[help]]
    と記述して下さい。

  • 初期設定では最新の記事がトップページに表示されますが、トップページを固定するには「FrontPage」というタイトルのページを作ってください。
  • Sidebar」というタイトルのページに書かれた内容はサイドバー部分に表示されます。
  • 「Footer」というタイトルのページに書かれた内容はフッター部分に表示されます。
counter:2,491
2021年04月21日 20:16   編集
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:952
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:893
2021年04月12日 01:38   編集

|< < 2022年12月 > >|
        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 31
counter:1,867
Perl Xampp 2020年11月10日 12:06   編集
Xamppに同梱されているPerlはバージョンが古いので、ActivePerlの最新版に入れ替えていたが、ActivePerlよりさらに新しいバージョンが公開されているStrawberryPerlに入れ替えてみた。(現在ActivePerlの最新版は5.28だが、StrawberryPerlでは5.32が出ている。)

http://strawberryperl.com/から最新版のstrawberry-perl-5.32.0.1-64bit.msiをダウンロードする。インストール先を指定できるので、今まで使っていたC:\xampp\perlにインストールしてみたが、なんかうまくいかない(c:\usr\local\bin\perlがperl.exeのパスになるためには、C:\xampp\perlではなくC:\xamppにインストールすべきだったような感じ)。
結局C:\xampp\perlは元に戻して、デフォルトのインストール先C:\Strawberryにインストールすることにした。
続きを読む
counter:216
Perl 2020年10月15日 14:13   編集
いまさらだが、XamppのPerlをバージョン5.28にアップデートすると、いくつかエラーが発生するようになった。エラーログを見ると
Can't locate init.cgi in @INC (@INC contains: ./lib C:/usr/local/site/lib C:/usr/local/lib)
というようなエラーがあちこちで発生している。init.cgiが@INCの中に見つからないというエラーで、カレントディレクトリにあるモジュールの読込で発生している。確かに@INC contains ではカレントディレクトリは含まれていないようだ。
セキュリティの関係でバージョン5.26から@INCにカレントディレクトリが含まれないようになったらしい。
とりあえず動くようにするには
require 'init.cgi';
というような行でエラーが発生しているなら
require './init.cgi';
に変更して明示的にカレントディレクトリであることを表記して読み込むか、スクリプトの最初の方で@INCにカレントディレクトリを追加しておけばいいようだ。
@INCにカレントディレクトリを追加する方法としては
push(@INC,'.');
あるいは
use lib '.';
などがある。pushだと@INCの最後に、use lib だと先頭に'.'が追加される。
推奨されているのは
use FindBin;
use lib $FindBin::Bin;
これはFindBinモジュールを読み込んで、それによって利用できるようになるパッケージ変数$FindBin::Bin(実行スクリプトのあるディレクトリパス)を@INCに追加することになる。
これだと@INCの先頭に'C:/xampp/htdocs/local/test' のようなパスが追加されることになる。
counter:1,678
PHP 迷惑投稿対策 2020年03月25日 19:58   編集
Kent-Webのサポート掲示板で教えてもらったjQueryのslidelockというスパム対策機能を、この用語集作成PHPのbbsプラグインで使えるようにしてみました。→PHP/用語集作成
タイトル
投稿者
編集パスワード
コメント
添付
キーワード
counter:5,012