dポイントプレゼントキャンペーン実施中!

$fp = fopen( "a.html", "w" );
fputs( $fp,$buffer);
fclose( $fp);
(一部省略)

このようなプログラムで、すでにあるa.htmlの内容を少し変化させて新しいa.htmlページを作っていきたいのですが、サーバーで試したところ、パーミッションに関するエラーが出ました。
644だったパーミッションの3桁目を6(646など)にするとファイルを作ることができました。
しかし、3桁目を6にするとセキュリティ上危険だそうで、そうしたくありません。

3桁目を6にせずにファイルを作る良いアイデアはありませんでしょうか?

htmlを自動生成している人はパーミッションの3桁目を6にしているのでしょうか?

よろしくお願いします。

A 回答 (2件)

下記の条件を満たすと自分がユーザー(正確にはPHPスクリプトと同じユーザー&グループ)のファイルが作成できます.



・CGI SAPIのPHPを用いる
・suexecが有効になっており,該当PHPスクリプトの処理に影響するようにする

結構難しいことを書いていますが,関連情報は参考URLを参照してください.

参考URL:http://php.net/security.cgi-bin
    • good
    • 0
この回答へのお礼

お礼が遅くなってすみません。m( _ _ )m

私には難しすぎました。

ご回答ありがとうございました。

お礼日時:2006/03/19 18:36

PHPを動かしているユーザに権限がないためだと思います。


ファイルを作成したユーザとPHPのユーザと違うためです。
たぶん664で動くような気がします。
PHPが作成したファイルならば自分のファイルになるので644で動くはずです。
(ただし、他のユーザで操作できなくなりますが)
http://www.kent-web.com/pubc/axsken/
    • good
    • 0
この回答へのお礼

お礼が遅くなってすみません。m( _ _ )m

ファイルを作成した所有者とPHPファイルの所有者は同じなのですがファイルを作れませんでした。
664や644でも動きません。

ご回答ありがとうございました。

お礼日時:2006/03/19 18:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!