共用ルーチン(入出力操作)
受信デコード、画面表示・メール発信・エラー表示、ファイル読取・表示・書込・追記・ロック
ご自由にテストください。 (入力項目の内容(例)は適宜変更してください。)共用ルーチンの組込利用により、本プログラムの作成が簡明になります。
(また、各サブルーティンを個別に本プログラムにコピー、利用することもできます。)
フォーム送信(データ受信・デコード) (続くすべての操作でテストされます)
複数入力 $multi_item
$multi_max
@multi_name = ('a','b','c');
@multi_nmbr = (0,0,0);複数入力:項目数(例:3)
1項目最大入力数
項目名「name」
各項目入力数(初期設定)サブルーチン &io_decode;(引数なし) (改行コード統一(LINUX)) $value =~ s/\015\012/\012/g;
$value =~ s/\015/\012/g;(HTMLタグコード回避) $value =~ s/</</g;(&は半角)
$value =~ s/>/>/g;
* XSS(Cross Site Scripting) 防止(文字列区切りコード回避) $value =~ s/\"/”/g;
$value =~ s/\'/’/g;結 果 $g_str 受信内容 (enctype の有無により形式が異なる %cgi
@multi_nmbr
@multi_table
$g_upfileno
@g_upfilename
@g_upfilevalue単数入力項目の内容(ハッシュ)
各複数入力項目の入力欄数
全複数入力項目の内容
(配列:0 ~)
アップロード・ファイル入力欄数
ファイル名
(配列:0 ~、空欄:----)
アップロード・ファイルの内容
(配列:0 ~、空欄:----)アップロード・ファイルの保存 ファイル名 $f1_filelist[$i] 保存後ファイル名(パス) サブルーチン &io_upfile(@f1_filelist); (既存ファイルの上書可)
画面HTML表示・画面TEXT表示
TEXTメール発信・HTMLメール発信
エラー表示、管理メール
ファイル読取・書込・追記
ファイル・アップロード
ファイルロック (書込の同時実行の防止などのために)
- ロックファイル(上記の io_filewrite, io_fileadd, および下記テストで使用)
他のプログラムでは必要に応じてロックファイルを設定します。$io_lockfile cg_02lock30.txt クリックで内容表示
- ロック
- アンロック
- 他によるロック中のロック指示
上記のロック、アンロックに続けて「テスト操作」を行ってください。
- 他によるロックの前、アンロックの後では、操作は実行されます。
- 他によるロック中の場合、
- 60 秒以前にロックの場合は前のロックを自動的に解除して
(以前の操作の中断などでアンロックが行われていないことがあります)、改めてロックし操作を実行します。 - 10 秒間はアンロックを待って、アンロックされると改めてロックを行い操作を実行します。
- 以上を除き、操作は実行されず、「後に再試行」の指示が出ます。
- 60 秒以前にロックの場合は前のロックを自動的に解除して
- ロックファイル(上記の io_filewrite, io_fileadd, および下記テストで使用)
ディレクトリ内のファイル表示
- ディレクトリ・リストからファイル・リストの作製
- ファイル・リストからリンク表示
- ディレクトリ内のファイル・リンク表示(前2つのプログラムを利用)
-
ファイル表示(text、html)
- HTMLファイル、TEXTファイル(HTML ファイルの拡張子を.txtにして)の双方でテストください。
画像ファイルの自動表示
例 : <img src = "../cgi-bin/cg_0230.cgi?work=imgdsp&file1=../../f21img/star_s.gif" /> サブルーチン &io_imgdsp($file1); 結 果
プログラムご希望の方は:
- このサーバーでは
パス ファイル /home/ st_cntrl30.css STYLESHEET basiccgi30/ cntrl/ cg_0230.html
cg_02lock30.txt本ページ
ロックファイルcgi-bin/ cg_0230.cgi
cg_00io30.pl
cg_00st30.pl本(テスト用)プログラム
共用ルーチン
入出力操作
文字列操作02data/ cg_02dt.txt
任意のファイルテスト用データ 02upfile/ 任意のファイル アップロードファイル - CGI共用ルーチンでは、原則として、橋渡しのグローバル変数名には通常「 _ 」を含み、内部変数はローカル「 my 」または「 local 」設定をしています。
- .htaccess、CGI(.cgi/.pl)、StyleSheet(.css)、JavaScript(.js)ファイルは内容表示のために、仮の拡張子「.txt]を使用しています。
HTML ファイルのソースコードの参照は、画面右クリック「ソースの表示」で。
- 要確認・変更箇所は、HTML、CGI 両ファイル上に
====begin===================
====end=====================
で明記してあります。
(特に、サーバにより各ファイル・URLのパス設定が異なります。)