CGI-BBS > SO−HO > ショッピングバスケット > デレクトリの位置関係がいまいちつかめない


カレッヂ
カレッヂ


質問者 てつや  投稿日 8/1(水) 08:48:23
デレクトリ構成は
cgi-bin
  |
    |-shop
        |
        |-data
        |
        |-temp
        |
        |-各cgi

です。
すると
#◆商品データディレクトリ(商品設定ファイルが存在する場所)
$base_dir = "./data/";

#◆作業ディレクトリ(一時ファイルが生成される場所)
$tmp_dir = "./tmp/";
#◆受注フォームファイル名(商品データディレクトリ内に設置)
$juchu = './data/juchu.txt';

#◆特定商取引に関する法律に伴う表示事項ファイル名(商品データディレクトリ内に設置)
$hanbai = './data/hanbai.txt';
とゆう書き方でいいのですか?
この"."の意味がわかりません。
"." = http://www.000.co.jp/cgi-bin/shop/
なのでしょうか?
ちなみに
#◆プログラムを設置した場所 http://サーバ名/この部分をそのまま設定する/cargo.cgi
$SCRIPT_AERA = 'http://www.kubota-k.co.jp/cgi-bin/shop/cargo.cgi';
などのようにhttpで始まるフルパスを書く場合と書かない場合の違いは
あるんですか?
よろしくお願いします。
回答者 しあわせのツボ  [削除]  投稿日 8/1(水) 11:56:08
./ は「自分(この場合はCGI)がいる所と同じディレクトリ」を表します。
例を挙げて説明しますと、同じディレクトリにa.cgiとb.cgiがあった場合、a.cgiから見たb.cgiの位置は ./b.cgi と表せます。

CGIはURIで指定されたファイルにはアクセスできません。http等のプロトコルを理解できないからです。
(プロトコルを教えればアクセスできるのですが、そんな手間はかけられません)
よって、CGIが読み書きしたいファイルは、サーバ内部の相対パスか絶対パスで指定しないといけません。
ただ、CGI自身がそのファイルにアクセスする訳でなく、ブラウザにアドレスを教えるだけの場合は、URI形式を使うことができます。

返信(回答)する


Web裏技