1

ファイルに書き込む必要のある単純な関数があります。これはローカルサーバーで機能しますが、サーバーにデプロイするとファイルに書き込まれませんか?なにが問題ですか ?

foo.php

<?
if (isset($_POST['data'])) {
         $stringData = $_POST['data'];
         $file = "ciao.txt"; 
         $fh = fopen($file, 'w') or die("can't open file");
         fwrite($fh, $stringData);
         fclose($fh); 
 }
 ?>

function.js

function WriteToFile() 
{
    var data = "foo baaar";
    $.post("JS/foo.php", {data: data}, function(result){ alert("label updated!!");}, "json");
}
4

2 に答える 2

0

サーバーのファイル権限を確認してください。書き込み可能にします。

于 2012-07-30T10:13:04.787 に答える
0
<?
if (isset($_POST['data'])) {
         $stringData = $_POST['data'];
         $file = "ciao.txt"; 
         $fh = fopen($file, 'w') or die("can't open file");
         fwrite($fh, $stringData);
         fclose($fh); 
 }
 ?>

fwrite()は、書き込まれたバイト数を返します。エラーの場合はFALSEを返します。fwrite($ fh、$ stringData);を変更します。

$written = fwrite($ fh、$ stringData); $writtenを印刷します。

これで、データが書き込まれているかどうかにかかわらず、天気を取得できます。

または、phpコードchmod( "/ somedir / somefile"、0755); // 750を使用してファイルのアクセス許可を設定するか、777でテストを行ってから、750または管理者の提案に戻します。

/*これを試してください*/

 if (isset($_POST['data'])) {
             $stringData = $_POST['data'];
             $file = "ciao.txt"; 
             chmod($file, 0755);
             $fh = fopen($file, 'w') or die("can't open file");
             fwrite($fh, $stringData);
             $written = fwrite($fh, $stringData);
             print $written;
             fclose($fh); 
     }
于 2012-07-30T11:46:47.927 に答える