はじめまして、PHP初心者です。
PHPファイル操作にてどうしても自力ではわからないことがあったので、
ご教示をお願いしたいです。
このページをedit.phpとした場合です。
<?php
$direct=$_POST["direct"];
if($_SERVER["REQUEST_METHOD"] === "POST"){
$fh=fopen("txt/news.txt","w");
fputs($fh,$direct);
fclose($fh);
header("Location:edit.php");
exit;
}
$fh=fopen("txt/news.txt","r");
if(!$fh){
$error="<p style=\"color:#FF0000\">ファイル読み込みに失敗しました</p>";
exit;
}
$text=array();
while($line=fgets($fh)){
$text[]=$line;
}
fclose($fh);
?>
html中略
<h3>news.txt</h3>
<?php echo $error; ?>
<form action="edit.php" method="post">
<textarea name="direct" rows="20" cols="60" >
<?php for($x=0; $x<8; $x++){echo $text[$x];}?>
</textarea><br />
<input type="submit" value="保存" />
ローカルサーバーにてテストしたところ、
読み込み、書き込みは問題なく動作してくれるのですが、
本番サーバーにアップロードしたところ、書き込みだけが出来なくなりました。
分岐処理がおかしいのかなって考えたんですが、
保存ボタンを押した際にページが更新されるので、
分岐処理は問題なしということが確認できました。
他の原因が見当もつかないので、ご教示宜しくお願いします。
具体的には、どのようなエラーが出ているのかを調べることから始める必要があるのですが、サーバーによってはエラー出力がブラウザには返ってこない(出てこない)ような場合もあるので、サーバーの「よくあるご質問」などのページをよく読む必要があります
どこのどのようなサーバー環境なのか、まったく分からない状況なので、とりあえず一番よくある例としてパーミッションの設定が間違っている可能性をあげておきます
ローカルサーバがWindowsである場合にはパーミッションをあまり気にする人もいなかったりするのですが、他のOSでは必ずと言ってよいほどにディレクトリやファイルのパーミッションを設定しておく必要がありますので、まずはtxtディレクトリやnews.txtファイルのパーミッションを確認してみてください
コメント(0件)