[道里千虎の館]

◆ SDdiary 説明書

(c) Sentora Dori 2001/02/04

■ 仕様

注意:
 このプログラムを利用した結果おこるいかなるトラブルに対しても、当方では対処しませんので、各ユーザーの責任でご使用ください。
 また、予告なく変更することがありますので、ご了承ください。

■ index


■ 機能

 CGIを用いた日記帳です。 
 うっかり日記を付け忘れても、日付指定ができるので前の日の日付で書くことができます。 [index]

■ ソース

プログラム


(ダウンロード後、ファイル名が"-cgi.txt"、"-pl.txt"となってるものを".cgi"、".pl"に変更してください)

[index]


■ インストール

  1. ソースから必要なファイルをダウンロードする。
    SDシリーズのパスワード作成、管理プログラムを持っていない場合は、「道里千虎のソフト」トップページからそれもダウンロードする。


  2. SDdiarywrite.cgiSDdiaryshow.cgi  の最上部のPerlのパスを正しく設定する。

    (例) #!/usr/local/bin/perl

    ※ PerlのパスはUNIXの種類やサーバによって異なりますので、わからない場合はサーバの管理者に問い合わせてください。


  3. SDdiarywrite.cgi の上部にある「変数設定」部分を編集する。
    (赤色で示した変数以外は、特に必要がないかぎり変更しなくて大丈夫です。)


    ※注1 プログラムと同じ場所に置く場合は $basedir="."のまま。
    ※注2 プログラムと同じ場所に置く場合は $basedir="."のまま。パスワードファイルは暗号化されてはいますが、セキュリティのために、外部からアクセスできないディレクトリにおくことをおすすめします。
    ※注3 $pass にパスワードを指定した場合は、そのパスワードが入力パスワードとの比較に用いられます。指定しない場合には、$passfiledir にある $passfile からパスワードを検出し比較に用いられます。
     ここにパスワードを指定していると、もしCGIプログラムファイルを見られてしまったときにパスワードが他人にわかってしまうので、ここでは指定せずパスワードファイルを使用することをおすすめします。
    ※注4 'post' が使えないところでは 'get' に変えてください。
    ※注5 文字化けする場合はコードを変えてください。


  4. SDdiaryshow.cgi の上部にある「変数設定」部分を編集する。


    ※注1 プログラムと同じ場所に置く場合は $basedir="."のまま。


  5. SDdiarywrite.cgi, SDdiaryshow.cgi, jcode.pl を FTPのアスキーモードで転送し、CGIの使用できるディレクトリに置く(※注)。パーミッションをそれぞれ755755644にする。
     
    (telnetの場合、以下同様。)
    % chmod 755 SDdiarywrite.cgi
    % chmod 755 SDdiaryshow.cgi
    % chmod 644 jcode.pl

    ※注 CGIの使用ディレクトリはサーバによって異なりますので、わからない場合はサーバの管理者に問い合わせてください。(通常は cgi-bin 以下のディレクトリであることが多い。)


  6. SDシリーズパスワード作成プログラムで、日記作成に必要となるパスワードを作成する。
    プログラム名は diary とする。
    (SDdiarywrite.cgi の上部にもプログラム名が書かれています。)

    * すでに作成してある場合には6.をとばしてください。
    ※ 3.で変数 $pass にパスワードを指定した場合は、6.の操作は必要ありません。

    ※ SDシリーズパスワード作成プログラムについては、リンク先の説明をご覧ください。


  7. ブラウザからSDdiarywrite.cgiにアクセスする。
       → パスワード入力画面が表示されたらインストール完了。
CGIプログラムの拡張子に「pl」など別のものを指定されているサーバでは、拡張子をそれに合わせて変更して下さい。(SDdiary*.cgi を SDdiary*.pl に変更する。)

[index]

■ 日記を作成する

  1. 新しい日記の名前を決める。例えば test とする。複数の日記を作成する場合は重複しないように名前をつけてください。

    *使用できる文字は英数字のみです。他の記号は使えません。


  2. 日記データを保存するための test.txt という空ファイルを作る。それを$basedirで指定したディレクトリ($basedir="."の場合は SDdiarywrite.cgi と同じディレクトリ)におく。パーミッションを 666 に設定する。

     (telnetの場合)
    % touch test.txt
    % chmod 666 test.txt.


  3. 日記書き込みプログラム SDdiarywrite.cgi にアクセスし、パスワードを入力して「送信」ボタンを押す。


  4. 1.で決めた日記名を入力し「表示」ボタンを押す。
      →日記を書くフォームが表示される。

以上で完了です。新しい日記をさらに作成するには、1.からの操作を繰り返してください。

[index]

■日記書き込み用プログラムの使い方


 日記書き込み用プログラム SDdiarywrite.cgi にアクセスし、パスワードを入力して「送信」ボタンを押します。

 「日記名」欄に日記名を入力し「表示」ボタンを押します。
日記を書くためのフォームが表示されます。
すでに日記が書かれていれば、新しい順に表示されます。


●日記を書く

文章を書き「書き込み」ボタンを押します。日付は書き込んだ日の日付となります。
日付を指定したい場合には、「年月日を指定する」のところをチェックし、適切な日付を入力してください。


●日記の削除

 最下部の「削除」欄に日記番号を入力し「削除」ボタンを押します。
削除してしまうと元に戻せないので注意してください。


●日記の編集

 最下部の「編集」欄に日記番号を入力しますと、編集フォームが現れます。
文章を編集した後、「編集」ボタンを押します。
日付も編集したい場合には、「年月日も変更する」のところをチェックし、適切な日付を入力してください。



●古い日記を別のファイルに移動させる

 たくさん書いていくとどんどんファイルサイズが大きくなり表示される日記も膨大なものになります。
そこで、例えば月ごとに、古い日記を別のファイルに移動させて整理しましょう。
  1. 移動させる先の日記の名前を決める。例えば test0101 とする。(2001年1月の日記という意味で。)

  2. 日記データを保存するための test0101.txt という空ファイルを作る。それを$basedirで指定したディレクトリ($basedir="."の場合は SDdiarywrite.cgi と同じディレクトリ)におく。パーミッションを 666 に設定する。

     (telnetの場合)
    % touch test0101.txt
    % chmod 666 test0101.txt.

  3. 古い日記を別のファイルに移動」欄で、日記番号と移動させる先の日記名を入力し「移動」ボタンを押す。
    →指定した日記番号より古い日記(若い番号の日記)すべてが、元の日記から削除され、移動先の日記につけ加えられます。

[index]

■ 日記を表示する

次のようにリンクのタグを書く。?の後ろに日記名を書く。

<A HREF="SDdiaryshow.cgi?test">日記帳テスト</A>


[index]

■ 過去の日記の取扱い

過去の日記も表示させたいときには、次のいずれかの方法をとるとよいでしょう。


○月ごと、週ごと等に日記ファイルを分け、各日記名を指定して表示させる。

例) 2001年1月から12月までを表示する。
・test0101.txt, test0102.txt, ..... , test0112.txt のファイルにそれぞれの月の日記データを入れる。(パーミッションは、まだ書き込むなら666、もう書き込まないなら644)
・リンクを貼る。
<A HREF="SDdiaryshow.cgi?test0101">1月</A>
<A HREF="SDdiaryshow.cgi?test0102">2月</A>
.....
<A HREF="SDdiaryshow.cgi?test0102">12月</A>


○ソースをHTMLファイルとして保存しHTMLファイルで指定して表示させる。

例えば2001年1月の日記データだけが入った test0101.txt
<A HREF="SDdiaryshow.cgi?test0101">1月</A>
で表示させた後、ブラウザのメニューから「ファイル>名前をつけて保存」を選び、ページをHTMLファイル test0101.html として保存し、次回からは test0101.html に直接リンクを貼る。
<A HREF="test0101.html">1月</A>


※ リンクタグについては、通常のHTMLファイルに貼ってもよいですし、または SDdiaryshow.cgi の65行目あたりに、リンクのタグを書く欄を用意してあるので、そこに書いてもよいでしょう。

[index]

■ Q&A

Q1: 日記が表示されない。 Q2: 日記を書き込めない(書き込み用プログラムが動作しない)。
その他

 CGIを使用できる環境にありますか。(プログラムを置くディレクトリ、プログラムの拡張子など。)

※ 本体プログラムをCGIの使用できる場所に正しく置き、本説明書どおりに使用しても問題がおこる場合は、掲示板に書き込むか道里千虎あてにメールをください。

[index]

■ 更新履歴