Perl

CGIの原因不明なエラー

社内で使用しているCGIに、昨日からエラー報告が相次ぐようになった。 掲示板の変種のようなスクリプトなのだが、書き込み時にエラーが出て投稿完了できないという。 すぐ思い付く原因は CGIにバグがある ログファイルのアクセス権に問題がある サーバの動作…

WinでのCGIで注意すること

本日からWinサーバへ移設予定だったCGIがコピー中に破損したらしく、急遽古いファイルからバックアップしたら動作しなくなった。 5時間ばかり格闘し、漸く突き止めた原因はファイルロックに用いたSymlink関数だった。そういや「シンボリックリンクがサポート…

IISでCGI

を動かす必要があったのでActivePerlをインストール、実行権の設定をしてみたわけだが、どうにもこうにも動かない。プロンプトでperl -vした結果は正常だったのでPerlとしての動作に問題はないのだが、http経由でのアクセス時に実行権がないのでcgiをコール…

キャンセル機能実装

ずっと前に作った施設予約管理CGI、これまでは予約のみでキャンセルは連絡を貰ってログを書き換えていたのだが、サーバの入れ替えを機に仕様を一部変更した。 当初は一意なURLを記載したメールで本人確認を取る仕組みを考えていたが、メール通知を止めてパス…

WinXP+AN HTTPD+ActivePerl

諸事情により社内でPerl実行環境を作る必要に迫られた。動作させるのは簡単なCGiなのでAN HTTPD+ActivePerlで。 どちらもインストールは完了しており、127.0.0.1でテスト用HTMLの表示も滞りない。が、同じ階層に置いたCGIは動かない。なんでだ。 実行権限が…

無断リンク禁止CGI

無断リンクを禁止したいのにその手段を持たない人のために、ちょっとしたCGIを書いてみた。 そんなに難しいものではなくて、単にHTMLファイルを読み込んで表示するだけのものだが、その際リファラをチェックして禁止指定URLからのアクセスを弾いたり直リンク…

Fuzzy GantChart構想

ToDoリストレヴェルで管理可能なガントチャートを作ろう計画。最初からきっちり工数を見積って綿密なスケジュール管理できないような用途で、それでもガントチャート必須な場合に、「簡単に予定を変更可能なガントチャート」を用意してはどうか、という発想…

リンク先を捕まえたい

先程から正規表現でaタグのhref内を置き替える方法を模索しているのだが、hrefより前に他の属性がある状況を処理できない。

文字化けの原因

以前から時々ちょこちょこと弄っているテキスト変換スクリプト。 当初、旧漢字旧かな変換辞書「丸谷君」を利用するためのソフトウェア「昆布茶」がOS X非対応であったために製作を思い立ったのだが、どうも此の辞書よの相性が悪いらしく文字化けを解消できず…

まずは動作の修正から

どうやらグループデフォルトスタイルへのzen-makie適用時にグループカレンダーが黒字黒背景になってしまうという問題があるらしいということで、そう言えばグループの動作テストを失念していたことに気付き早速テストを開始するも以前作った確認用CGIが何故…

メールアドレスチェックの正規表現

メールアドレスの、@より前だけをチェックするための正規表現に苦心する。 使われている文字は[a-z]と-だけであることが解っているので、if ( $mail =~ /[^-[a-z] ]/ )と書いたが思うように動かない。 実行結果を視覚化しようとs/([^-[a-z] ])/<em>\1<\/em>/とし</em>…

はてなヘッダーの配色

CSSグループのテーマ作成コンテスト用に、スタイルシート適用時のイメージを確認するためのCGIを作ったのだが、どうせならヘッダー色も切り替えられるようにしようと思いつつ色コード置き換え部分で挫折気味。すべてのヘッダーカラーを表示しては該当する色…

自動メニュー生成

インデックスファイルを読み込んでメニューを自動生成する機能を追加する。今いる階層へ至るルートをclass="select"としたulによる多重リスト構造。 ローカルでは動作したが何故かサーバーでは機能しない。このサーバーは「txt」というディレクトリに置いたC…

力技的インデックス更新

ファイルの作成/変更/削除時のインデックス更新処理に少々悩んでいたが、考えてみれば何らかの変更があった時にインデックスファイルを新たに作れば、一々変更箇所を探して書き換えなくても常に最新の状態が保たれることになる。 エレガントな解ではないよう…

投票フォーム

id:fumineに投票フォームの設置を頼まれたのでフリーのCGIスクリプトを探すが、どうも使い勝手があまり宜しくない。こういうのは可能な限り設定が簡単な方がいい。 大して難しいものではないのでちょっと作ってみた。 選択肢の数だけ記録ファイルを作り、1行…

BlogPetモジュール変換スクリプト

BlogPetのIDは半角英数のみだろうという決めうちでBlogPetタグ→はてなモジュール変換スクリプト*1を作ってみた。そのためだけに登録する気になれなかったので実際のIDでテストしてはいない。動作に問題あればお知らせ下さい。 *1:直にリンクすると表示が許可…

サーバの奇妙な挙動

取り敢えずデモ用に簡易CMSをサーバに設置してみる。Basic認証をかけたフォルダを用意し、中に一式をセット。 表示をテストすると、認証フォルダ直下の表示用CGIは正常動作するが、その下のフォルダに置いた編集用CGIが500エラーを返す。念のためパーミッシ…

分離

当初設置の手間を考えて表示から編集まで全機能をひとつに纏めていたが、セキュリティ上の理由から表示部分と編集部分を分離することにした。これによりデータフォルダにアクセス制限をかければ(原則として)管理者以外に見られることはなくなり安全性は向…

人工無能

形態素解析などの複雑な処理は兎も角、機械的に入力された文字列とデータベース完全一致の場合のみ返事を返すような人工無能なら簡単だよね、と作り始めてみる。 が、考えてみれば入力内容の学習と返答だけでなく、これまでのやり取り履歴も残さねば会話の流…

ログイン、ユーザー管理、ファイル作成、アップロード

一番面倒なあたりに差し掛かった。複数ユーザーでの利用を考える場合、ディレクトリ毎のユーザー管理は必須である(まあディレクトリ毎に別にCGI設置しても良いんだけどね)。そしてファイル作成とアップロードはセキュリティ上の穴になりかねない(一応内部…

設定ファイルの外部化

複数の人間が管理に携わることを考えてディレクトリ毎にユーザーIDとパスワードを(複数)設定できるようにしようと思う。 いずれそれらの情報も管理画面から設定可能にする必要があるだろうから、設定関係は外部ファイルに纏めてしまうのが得策だろう。 で…

取り敢えずファイルリストと書き込みまで

テキストの整形表示の後はファイルリストの取得と書き込み。 取り敢えずディレクトリ/ファイルの一覧表示とテキストの編集機能は動くが、書き込み後に一覧表示画面に戻れず500エラーを返す。むー。 ところで、ファイル書き込み辺りからシステム的にクリティ…

テーブル処理に悩む

PukiWiki表記の「|区切り/>でcolspan/~でrowspan」実装に悩む。 colspanは>の数をカウントして>でないセルにcolspan=個数+1を付け加えるだけだから難しくないが、rowspanは以前の行に戻って処理せねばならない。どうしたものか。 最初の段階で判定を行い、テ…

はてな表記とWiki表記

これまではてな表記の実装を前提に開発を進めてきた簡易CMSであるが、Wiki表記に対応したアサブロの出現で少々迷いが生じている。 自分一人で使う分にはどちらでも問題ないのだが、他人に使わせることを考えた場合にどちらの方が優れているだろうか。 ざっと…

空行での切り分け

結構書いているので新規にperlカテゴリ追加。 自分で作る blog ツールに倣って空行でヘッダと本文を切り分けてみる。配列に読み込んだテキストファイルをforeachで1行づつ処理、改行文字を削除した内容が空だったらlastで処理終了。そうでなければ$descripti…

JavaScriptよりperlで

手をかけずにヴァリエーションを増やそうと、HTMLのデザインパターンを切り替えてみせるデモページを作成してみる。 CSS切り替えのJavaScriptを取ってきて弄ってみるが、生成するソースが表示できないJavaScriptはどうもデバッグしづらく、結局Perlで書いて…