• 締切済み

xreaで7行のプログラムがエラー

<?php print '<body>'; print 'print関数は成功。<br>'; $fp = fopen('dat.dat', 'wb'); if(!$fp)print '失敗。'; else{print '成功。';fclose($fp);} ?> ブラウザは以下のように表示しました。 どこがいけないのでしょうか? print関数は成功。 Warning: fopen(dat.dat): failed to open stream: Permission denied in ****/foptest.php on line 4 失敗。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

ご質問の内容は、なぜエラーになるかということではなく、 fopenの処理が成功したかどうか自前で調べて、処理しようとしてるのに、なぜ、このようなメッセージがでるのか? ということだとして回答させていただくと このWarningは、fopenのコマンド自体が出しているものです。 プログラムの中で、ちゃんと失敗したかどうか調べている場合には必要ないものですので、そういう場合には、 @fopen のように@を付けるとこのメッセージを抑制することができます。

参考URL:
http://jp2.php.net/manual/ja/function.fopen.php
  • luyi
  • ベストアンサー率38% (5/13)
回答No.1

 SafeMode(モジュール版)で動作しているからだと思われます。  最初に空でも「dat.dat」を作成しておけば、動作します。  また、dat.datをこのプログラムによって作成させたいのであれば、CGIとして動かせば出来るようです。  ファイルの拡張子を「.cgi」にして #!/usr/local/bin/php <? print '<body>'; print 'print関数は成功。<br>'; $fp = fopen('dat.dat', 'wb'); if(!$fp)print '失敗。'; else{print '成功。';fclose($fp);} ?> と記述すると、 print関数は成功。 成功。 と表示され、dat.datが作成ました。  xreaサーバで確認しました。

参考URL:
http://www.xrea.com/?action=faq