名前は "Shade検索"Wiki となっていますが、Shade関係の記事はほとんどなくて、自作のCGIなどをひっそりと紹介するサイトになってます。
CGIについてのお問い合わせはCGIサポート掲示板へ
最近更新した記事
公開しているCGIなど
2022/10/13 23:44:14
2022/10/06 02:05:17
2022/10/03 20:20:09
2022/03/22 20:03:05
2022/03/22 19:42:39
2021/08/18 19:52:11
2023/02/26 14:54:53
2018/03/01 10:31:55
2016/08/26 12:24:17
2016/08/16 15:04:54
counter:8,502
最近の更新
公開しているスクリプト
PHP
2022/10/13 23:44:14
2022/10/06 02:05:17
2022/10/03 20:20:09
2022/03/22 20:03:05
2022/03/22 19:42:39
2021/08/18 19:52:11
CGI
2023/02/26 14:54:53
2018/03/01 10:31:55
2016/08/26 12:24:17
2016/08/16 15:04:54
counter:6,388
インストールされているプラグインの一覧です。
[A]
- access
- アクセスの多い順にページ名を一覧表示
- bbs
- 掲示板を作成する
bbs
掲示板を作成する■ファイルアップロード、返信、過去ログ生成、隠しパラメータ送信によるスパム投稿対策、スライドロックによるスパム投稿対策
オプションは[[bbs('lock=1|max_log=100|item=thread')]]のように指定
指定できるオプション
- form
- form=up(フォームを上に表示) form=down(フォームを下に表示)
- item
- デフォルトの記事表示順を指定
item=time(投稿順) item=thread(スレッドごとに表示)
- max_log
- 現行ログの保存数。これを超えると過去ログに移動。
例 max_log=50
- max_past
- 過去ログに保存する記事数。これを超えると過去ログファイルを新たに作成。
例 max_past=100
- page_line
- 1ページに表示する記事数。これを超えると次のページに表示
例 page_line=10
- lock
- スライダで投稿ボタンをロックする lock=1で表示する
例 lock=1
- perm_tag
- 許可するタグ。複数ある場合は;(セミコロン)で区切る。
有効になるのはタグ名だけを<>で囲った場合とその閉じタグだけ。styleなどは指定できない。
例 perm_tag=pre;h1
- nameless
- 投稿者名未入力で投稿した場合、表示される名前を指定。'id'にすると、日付とIPアドレスを元にしたIDを表示
例 nameless=id
- titleless
- タイトル未入力で投稿した場合、表示されるタイトルを指定。
例 titleless=タイトルなし
- hide_bbs
- デフォルトでフォームと投稿内容を隠す hide_bbs=1で隠す
例 hide_bbs=1
- show_text
- 添付したtextファイルの内容を表示する show_text=txt;phpのように表示するテキストファイルの拡張子を指定する。複数ある場合は;(セミコロン)で区切る
例 show_text=txt;log
使用例
[[bbs('lock=1|nameless=id')]]戻る
- bbs_count
- bbsプラグインの最新投稿をチェックして、投稿数をカウント
- calendar
- カレンダーを表示し、予定などを保存します。
- categories
- カテゴリーの一覧を表示する
- comment
- 1行コメントフォームを表示
- comment2
- commentプラグインに記事の再編集機能を追加
- comment3
- comment2プラグインにファイル添付機能を追加
- debug
- デバッグ用情報を出力
- diff
- 差分表示
- edit
- 編集リンクを表示する
- files
- 記事のファイル情報を表示する
- footnote
- 脚注を表示する
- get_id
- 記事のIDを取得
- help
- 記事の入力ルールを簡単に説明します
- history
- 更新履歴を表示する
- listup
- 記事の一覧を表示する
- navi
- 同じカテゴリーまたは同じタイトルの前後の記事のリンクを表示する
- next_link
- 同じカテゴリーの前後の記事のリンクを表示する
- plugins
- プラグインの一覧と説明、使用例を表示する。
- readmore
- 「続きを読む」を表示する
- recent
- 最近更新された記事の一覧を表示する
- sample
- ここにプラグインの説明を記述
- search
- 検索フォームを表示して検索する
- search_image
- 記事に添付された画像のサムネールを一覧表示する
- show_load_time
- 読み込み時間を表示
- show_new
- ファイルが更新されたらnew!表示する。
counter:15,073
基本的にテキスト装飾はhtmlのタグで直接記述します。管理者設定で許可されたタグが使用できます。
<abc>ABC</abc>のように登録されていないタグは文字参照で表示されます。
preタグ内では許可されているタグを含めてすべてのタグが文字参照で表示されます。
<abc>許可されていないタグ</abc>
「投稿」ボタンを押してファイルをアップロードすると、ファイルのサムネールの上にそのファイルの埋め込みタグが表示されるので、それをコピーして貼り付けます。
画像ファイルの場合、imgタグにwidth属性を指定しますが、オリジナルの画像の幅となっています。大きすぎてはみ出すような場合は、適当な数値に変更してください。
添付ファイルは記事ごとに管理されますが、埋め込みタグは記事に関連づけられたディレクトリへ保存されたファイルのパスを指定しているだけなので、他の記事に埋め込んでもそのまま使えます。
見出し
見出しはh1、... h4タグを使うことを想定しています。見た目の変更はbbs.cssで行うことになります。<h1>h1タグによる見出し</h1>
<h2>h2タグによる見出し</h2>
<h3>h3タグによる見出し</h3>
<h4>h4タグによる見出し</h4>
h1タグによる見出し
h2タグによる見出し
h3タグによる見出し
h4タグによる見出し
タグ
許可されているタグはすべて有効になります。文字参照で記述しても有効になるので、ご注意ください。<abc>ABC</abc>のように登録されていないタグは文字参照で表示されます。
preタグ内では許可されているタグを含めてすべてのタグが文字参照で表示されます。
<div style="color:red;">許可されているタグ</div>同じものをpreタグの外に出すと
<font style="color:blue;">許可されていないタグ</font>
<abc>許可されていないタグ</abc>
許可されているタグ
<font style="color:blue;">許可されていないタグ</font><abc>許可されていないタグ</abc>
改行
「改行を<br />に変換する」をチェックしていると、フォーム中の改行を
<br />に変換して記事の改行に反映させます。ただし、行の最後が閉じタグ ">" あるいはプラグインの記述に使う "]]" の場合は変換されません。
<table>が
<tr><td>テーブル</td></tr>
</table>
<table><br />のようになると変だからです。
<tr><td>テーブル</td></tr><br />
</table><br />
添付ファイル
画像などの添付ファイルは記事ごとにアップロードします。「投稿」ボタンを押してファイルをアップロードすると、ファイルのサムネールの上にそのファイルの埋め込みタグが表示されるので、それをコピーして貼り付けます。
画像ファイルの場合、imgタグにwidth属性を指定しますが、オリジナルの画像の幅となっています。大きすぎてはみ出すような場合は、適当な数値に変更してください。
添付ファイルは記事ごとに管理されますが、埋め込みタグは記事に関連づけられたディレクトリへ保存されたファイルのパスを指定しているだけなので、他の記事に埋め込んでもそのまま使えます。
counter:8,593
- 左側に表示されるメニューをカスタマイズしたい場合は、タイトルが「Menu」という名前のページを作って下さい。
Menuにはたとえば[[recent]]
などと記載すると新着順に記事が表示されます。そのほかlistupプラグインなどを使ってメニューに表示されるインデックスをカスタマイズすることができます。 - プラグインの詳細を見るには、「プラグインヘルプ」などのタイトルのページを作成し、
[[plugins]]
と記述して下さい。 - ページ記述のヘルプは「ヘルプ」というタイトルのページに
[[help]]
と記述して下さい。 - 初期設定では最新の記事がトップページに表示されますが、トップページを固定するには「FrontPage」というタイトルのページを作ってください。
- 「Sidebar」というタイトルのページに書かれた内容はサイドバー部分に表示されます。
- 「Footer」というタイトルのページに書かれた内容はフッター部分に表示されます。
counter:5,874
改行コードってあまり気にしていなかったが、あまり無頓着だとトラブルになるようだ。
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改行コードでは改行されなかったが、最近のはちゃんと改行されるようだ。
戻る
戻る
戻る
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:5,306
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関数追加。
パスワード認証時にブルートフォース攻撃対策処理を追加。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タイプチェックを行うようにした。
ファイルアップロード時に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という名前の記事を作成すると、サイドバーに表示されるように修正。
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(差分表示)プラグインを追加。
合わせてdiff(差分表示)プラグインを追加。
ver.1.01
2017.01.12
別名が索引メニューで表示されていなかったのを修正。
ver.1.0
2016.12.26
とりあえず完成。
counter:5,748
CGI 2016年08月16日 15:04 編集
お知らせ
ユーザーがトレンドマイクロのセキュリティソフトを使用している場合、アクセス制限ページのログイン情報が外部に漏れる恐れがあります。対策を施したver.1.12に更新をお願いします。需要がどれくらいあるかわかりませんが、ファイルの更新時間を変更するCGIを公開しました。
私の場合は、掲示板などのログファイルの更新時間を変更するのに使っています。
なぜ、ログファイルの更新時間を変更する必要があるかというと、スパム投稿対策のためです。ウチの検索サイトでは、掲示板などのログファイルの更新時間をチェックして、何日以内の更新だったら new! 表示したりしています。当然ながらスパム投稿の場合でもログファイルが更新されると new! 表示されます。
スパムを削除してもログファイルの更新時間は元には戻りません。(スパムを削除した時間にさらに更新されるだけです。)
そうすると、スパムを削除してログの中身は元の状態に戻っているのに new! 表示だけが残ってしまうことになります。
これはやはり具合が悪いので、こういう場合は更新時間変更CGIでログファイルの更新時間を、スパムが投稿される元の時間に戻すようにしています。
また、最近はWEB上ではなく、パソコン内のファイルの更新時間を変更したいというケースもあるので、ローカル環境でも使いやすいよう改修したものを公開することにしました。テキストボックスに入力したディレクトリに移動できるようになっています。日本語のフォルダやファイルにもアクセスできるようです。(すべて大丈夫かわかりませんが)
web上での使用も考えて、簡単なアクセス制限機能もつけています。このCGIはファイルの更新時間を変更することしかできませんが、使い方によっては見えてはいけないファイルも見えてしまうという危険があるからです。WEB上に設置する場合、極力わかりにくいパスワードを設定してください。
- ダウンロード time_stamp_1.12.zip (138Download)
- ver.1.12 2013/03/14
- ログイン後の認証を一時ファイルによる認証に変更。
- ver.1.1 2011/06/17
- 秒単位まで編集できるようにしました。
設置
ダウンロードしたファイルを解凍したら、time_stamp.cgi1行目の#!/usr/local/bin/perlをサーバーに合わせて変更してください。
パスワード制御するなら(24行目がmy $use_pass = 1;なら)
25行目の
my $pass = '';にパスワードを入れてください。
修正は以上です。あとはサーバーにアップロードしてtime_stamp.cgiのパーミッションを適当に設定してください。
使い方
- 更新時間を変更したいファイル名をクリックすると、変更フォームが現れます。「指定した時間に変更する」を選んで、日時を変更し、「タイムスタンプ修正実行」ボタンを押すと更新時間が変更されます。
「現在に変更する」を選んだ場合は、現在の時間に更新されます。 - ディレクトリ名をクリックするとそのディレクトリに移動します。ディレクトリ名クリックはそのディレクトリへの移動に割り当てているので、ディレクトリの更新時間変更はとりあえずできません。
- ファイル名、ファイルのサイズ、最終更新時間でソートできます。たとえば、名前をクリックするとファイル名を昇順でソートします。もう一度名前をクリックすると降順でソートします。
サイズ、最終更新時間のソートも同じように2度続けてソートすると表示順を逆にします。 - フォルダとファイルは分けて表示しますが、フォルダを先に表示したり、ファイルを先に表示したりすることができます。
・・・と思っていたら、いつの間にか1970年以前や2038年以降への変更もできるようです。PHPと同様にサーバーのPerlも64bit化されているのかもしれません。
counter:7,100