2011-08-09 5 views
0
public function save(){ 
     $currentPage = $_SESSION['current_page']; 
     $content  = $this->input->get_post("page_content"); // html content 
     $path   = $this->paths('pages');  
     $page   = $this->pages->db_get(array("id"=>$currentPage), true); 

     //echo $path . $page['filename']; 
     if(!is_dir($path)){ 
      $fileHandle = fopen($path . $page['filename'] , 'w'); 
      if(!fwrite($fileHandle, $content)) { 
       $this->errors[] = "Error saving page"; 
      } 
      fclose($fileHandle); 
     } 


echo json_encode($this->errors); 
} 

私は、ファイルに文字列として書き込むJAX POST要求を使ってHTMLソースファイルを受け取ります。 コメント行は、サーバに存在する* /home/sajt/public_html/application/data/users/[email protected]/websites/kobra/pages/glavna.php*をエコーし​​ます。私は信じて、$ path、$ page、$ contentが$パスをエコーし​​てから正しい値を持つことを確認しました。 $ page ['filename']はファイルへの有効なパスを返しますが、何も起こらない、つまり何も書き込まれていません。 ここには何が欠けていますか?ファイルに文字列としてhtmlソースを書き込もうとしているときにFwriteは何もしません。

親ディレクトリのパーミッション:

drwx------ 5 sajt  sajt    4096 Aug 9 04:20 . 
drwx------ 3 sajt  sajt    4096 Aug 9 04:20 .. 
drwxr-xr-x 2 sajt  sajt    4096 Aug 9 04:20 header 
drwxr-xr-x 2 sajt  sajt    4096 Aug 9 04:20 pages 
drwxr-xr-x 2 sajt  sajt    4096 Aug 9 04:20 uploads 

ディレクトリ "ページ" 権限:

drwxr-xr-x 2 sajt  sajt    4096 Aug 9 04:20 . 
drwx------ 5 sajt  sajt    4096 Aug 9 04:20 .. 
-rw-r--r-- 1 sajt  sajt    0 Aug 9 13:20 glavna.php 
-rw-r--r-- 1 sajt  sajt    1450 Aug 9 04:20 kontakt.php 
+0

をしたいあなたは、ファイル/フォルダのアクセス許可を確認しましたか? localhostまたはウェブサーバーでスクリプトを実行していますか? – yoda

+0

そのディレクトリへの書き込み権限がありますか? – Quasdunk

答えて

1
if(!is_dir($path)){ 

あなたのコードとしてあるので、あなたは明示的に、全体のfopen/fwriteのビジネスをスキップするようにスクリプトに指示$ pathにあるものはディレクトリにする必要があります。

たぶんあなたは、単に

if (is_dir($path)) { 
    ^--- no ! 
+0

私はそれを信じることができません。私は寝る必要があると思う。私が気付いたことを知ってくれたありがとうmarc:D –

関連する問題