ビギナーズ CGI

 初歩から始める初心者向けPerl-CGI講座  

| トップページ | CGI設置 | CGI作成 | 作成事例 | 設置用語 | 作成用語 | 関数リファレンス | FAQ | お問合せ |
  
CGIの設置方法
フリーで配布されているCGIを設置する際の手順や注意事項などの説明です。

CGI作成の初歩
初めてCGIを作る方向けの手順を簡単な例で説明しています。

CGI作成ヒント集
こういう事をする時は、どのように行えばいいのか?など具体的な事例を紹介します。

CGIの設置に関する用語
CGIの作成に関する用語
CGIの設置や作成時に使われている用語や関連知識を掲載しています。

設置に関するFAQ
作成に関するFAQ
設置や作成をする際に起こりがちなトラブルの説明と、よくある質問とその回答を掲載しています。


 
 



フォームなどから送られた改行コードを排除する

掲示板などの記録で1つのファイルに複数の記事を保存していく場合、
各行を配列の1要素として扱うようにしていると、改行コードの部分で
ログが改行してしまい、ログが破損してしまう事になります。
後でHTMLページとして表示する場合は、先に改行コードを <BR>タグ
に置き換えてしまうと良いです。

下のソースは改行コードの置換え処理を行わなかった場合のソースです。
【フォーム入力からファイルに書き出す】 では一行の入力フォームでしたので、改行コードの
除去は必要ないように思えますが、これが複数行のフォームの場合、書き出し処理で保存
されたファイルは、改行コードの部分で複数の行になってしまいます。
次に記録ファイルを読み出す時は、一行を配列の1要素として扱いますので、このように改行
されてしまうと、正しく記録を扱う事ができなくなります。

【除去を行わない場合のオリジナルソース】



【改行コードを<BR>タグに置き換る処理を追加したソース】


ソース中段付近の #改行コードを <BR>タグに置き換える の下にを一行足したのみです。
このように、改行コードが含まれるかもしれない部分 (例えば掲示板の本文など) のみに
この処理を追加すれば結構です。




改行コードは下のように違いがありますので、どの場合にも正しく排除できるように
しておかなければいけません。
Windows CR + LF
UNIX LF
MAC CR

先に \n や \r を排除するような処理にしてしまうと、 \r\n のコードの場合に、それぞれ
が<BR>に置換えされてしまう為、 <BR><BR> となってしまいます。
必ず先に \r\n を置き換えた後、 \r や \n の置換え処理を行って下さい。


説明を省く為にお名前の欄の改行コードを置換えするようにしましたが、例えば悪意のある人
が別の自作フォームから投稿した場合には、ありえない要素で改行があるかもしれません。
別のフォームからの投稿を排除するか、一応全ての改行を変換した方が良いかもしれません。


関連項目

・ CGIの作成に関する用語
・ CGI作成に関するFAQ


Beginner's CGI  - Copyright (C) 2003 aimix. All Rights Reserved -