• 締切済み

新しいファイル名をつけて保存する

CGI初心者です。 ネットショップの頁を作りたいと思っています。 はじめにユーザー登録をしてもらい、そのファイルを保存する時にユーザー毎に違う名前のtextファイルで保存したいのです。 (後の頁でユーザーデータを取り出して表示させたいため) $FORM{'user'}があって、このuserの名前でそれぞれに保存することは可能でしょうか? また別の頁でその保存したuserの名前のファイルを見つけだして開くことは可能でしょうか? おかしな質問でしたら、すみません。

みんなの回答

  • to-zoku
  • ベストアンサー率36% (16/44)
回答No.4

まぁ、やってみれば。 globでファイル名は検索できるし、ファイルがあるかどうかをチェックする方法もあるし、 if(-e "ファイル"){エラー画面:その名前は入力済み。残念。} にすればいいし。(あってないかも。 使えないファイル名も長さも制限できるから。 セオリーじゃないけど、できるよ。 利点も偶然ファイル名を探し当てられたとしても、他の情報が漏れにくい、、、かな。 一枚のテキストにIDとファイル名を載せちゃうと 01 田中さん =>01.txt 02 鈴木さん =>02.txt 03 北村さん =>03.txt だと、このファイルを見られちゃうと、みんなバレちゃうから。 まぁ、01とCGI側で加工したファイル名を作成することもできるけど。 01+CGI側で作成したtekitou+txtで、01tekitou.txtを表示させる。 これなら、01=田中さんってバレても、ファイル名は多少は隠せる。 CGIの中身は普通は読めないし。 あ、Perl前提で書いてるよ。 まぁ、やってみれば。

teke-teke
質問者

お礼

ありがとうございました。 とりあえずもう一度、最初から考え直してみます。

  • taseki
  • ベストアンサー率66% (155/233)
回答No.3

私もANo.2の方が書かれているように現実的、効率的ではないように思います。 同じuser名のチェックもそうですが、OSによってファイル名には制約があり(許されないファイル名など)、もしそれをチェックするようにしても、仮にサーバーを変えて違うOSになったら使えません。 また管理そのものが面倒でしょうがないような。 > 後の頁でユーザーデータを取り出して表示させたいため とのことですが、そのこととユーザー別にファイルにする意味がちょっと解りませんが、一般的にはユーザーごとにIDを割り当てて、一連のデータを並べた形、ようするにデータベースの形(テキストファイルであっても)で管理するのが最も楽で効率も良く、また安全なように思います。

teke-teke
質問者

お礼

ありがとうございました。 とりあえずもう一度、最初から考え直してみます。

  • OhMabu
  • ベストアンサー率50% (4/8)
回答No.2

可能ですが、現実的なやり方ではないと思います。 例えば、1000人登録したとすると1000ファイル出来ることになり、ユーザーが登録するたびに、ユーザー名がダブらないように全てのファイル名を検索しないといけないです。 また、この方法だとuser名だけで認証してしまうことにならないでしょうか?

teke-teke
質問者

お礼

ありがとうございました。 とりあえずもう一度、最初から考え直してみます。

回答No.1

可能です。 open関数で新しいファイルを作ればいいです。 あとはファイルを作成するディレクトリに書き込み権限を与えてください。

teke-teke
質問者

お礼

ありがとうございました。 とりあえずもう一度、最初から考え直してみます。

関連するQ&A