こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

phpでfopen()やfputs()が使えない

CGIを使ってやりたいことがあり、PHPを独学で学び、レンタルサーバーで実験をしているのですが、fopen()やfputs()をつかうとエラーのようになります。
これがそれです。
http://pgc.sub.jp/form.php
サーバーはlolipopというところを使っているのですが、こちらのほうが許可していないということでしょうか。
ソースは以下のようになります。

<html>
<head>
<title>実験掲示板</title>
</head>
<body>
<h1>実験掲示板</h1>
書き込む内容を入力してください。<hr>
<form name="form" action="./sample01.php" method="POST">
<input name="body" type="text" size="40">
<input type="submit" value="書込"><hr>
</form>
<?php
$data = file("./data.txt");
for($i=0; $i<sizeof($data); $i++){
print "記事NO.${i}:${data[$i]}<br>\n<hr>";
}
?>
</body>
</html>

<?php
$body = $_REQUEST["body"];
$body = $body."\n";
?><html>
<head>
<title>Sample01</title>
</head>
<body>
<?php
$fp = fopen("./data.txt","a");
fputs($fp,$body);
fclose($fp);
echo "書き込み完了<br>",
"<a href=\"./form.php\">戻る</a>";
?>
</body>
</html>
プラス空のdata.txtファイル

また、大学のPCを使用しているのですが、 http://localhost/ をすると 「Connection Failed」となってしまい、localhostでの実験ができません。これは大学側が禁止しているためでしょうか?研究室のものですので、IPアドレスはそれぞれに割り当てられているのですが。

投稿日時 - 2006-06-02 21:35:06

QNo.2191612

暇なときに回答ください

質問者が選んだベストアンサー

はじめましてwind-wingと申します。

http://pgc.sub.jp/form.php
拝見させていただきました。

Warningを確認した限りですと、
Permission denied と出ていますので、
そのdata.txtを書き出すところに
書き込み権限が無いようです。

$fp = fopen("./data.txt","a");
と書いているようですので、追記モードですものね。

書き込み権限が無いために$fpにファイルストリームが
オープンできずにfputs()およびfclose()ができない
となっていると思いますので、
そのディレクトリに書き込み権限を
与えてみてください。

投稿日時 - 2006-06-02 22:35:14

お礼

属性タブで仰る通りにしてみたところ、できました!ありがとうございます。愚作をお目にかけてしまい恐縮です。どんどんステップアップし、多くの人にとって有用なサイトができるようにしたいと思います。

投稿日時 - 2006-06-03 00:44:42

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

http://localhost/についてですが、ApacheやhttpdのようなWebサーバーのプログラムはインストールされてますか?そして起動していますか?

PHPやPerlなどによるCGIプログラムのテスト環境は、たいてい最初から入っているものではありません。
そして、テスト環境の設置は、ネットワークに依存するものではないので、研究室のPCであろうと構築可能だと思います(ただしセキュリティに十分注意する必要があります!!)。

テスト環境が整ってないならば参考URLに示すサイトからXAMPPという開発環境のセットをインストールすることをお勧めします。セキュリティに関しても参考URLに記載されています。

参考URL:http://phpspot.net/php/pgXAMPP.html

投稿日時 - 2006-06-03 00:35:07

補足

phpdev5で試みていたのですが、こちらのほうが良さそうですね。よいソフトを教えていただき、ありがとうございます。ですが、やはりConection failedとなり、できないようです。ApacheやPHPを個別に入れて、マニュアル通りの設定をしているのですが。原因として何か考えられることはありますか?

投稿日時 - 2006-06-03 16:46:13

お礼

ご紹介のソフトで試行錯誤の後、できました!「あなたの予想に反して、このページが見えているでしょうか?」とでたときには驚きました。
本当にありがとうございます。

投稿日時 - 2006-06-04 06:47:47

あなたにオススメの質問