2011-08-09 49 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); 
} 

我通過ajax POST請求接收到一個html源文件,然後我希望以字符串形式寫入文件。 該註釋行將回顯服務器上存在的* /home/sajt/public_html/application/data/users/[email protected]/websites/kobra/pages/glavna.php*。我相信並且檢查了$ path,$ page和$ content自從回顯$路徑以後所需的正確值。 $ page ['filename']返回一個有效的文件路徑,但仍然沒有任何反應,這是沒有被寫入。 我在這裏失蹤了什麼?Fwrite嘗試將html源文件作爲字符串寫入文件

父目錄權限:

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

你檢查文件/文件夾的權限?你是在本地主機上還是在網絡服務器上運行腳本? – yoda

+0

你有寫權限到那個目錄嗎? – Quasdunk

回答

1
if(!is_dir($path)){ 

你明確地告訴腳本跳過整個的fopen/fwrite的業務,因爲你的代碼寫,無論在$路徑必須是一個目錄。

最有可能你只是想

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

omg我不敢相信。我想我需要一些睡眠。感謝marc誰知道我什麼時候會注意到:D –