2011-04-04 37 views
1

我正在對我正在構建的生物識別相關原型的用戶擊鍵模式進行一些分析。我遇到了一個問題,我通過POST將變量傳遞到另一個網頁,並且該網頁調用一個腳本,該腳本根據傳遞給它的數據在目錄中寫入本地服務器。AJAX/PHP/Apache數據傳輸和文件權限問題

我的原型很簡單:用戶將一些數據輸入到文本表單中,收集擊鍵,用戶在任務結束時單擊提交,然後將數據發送到服務器進行分析。但是,PHP拒絕寫入通過Web指定的目錄。如果我進入命令行PHP,它會起作用。我甚至嘗試了在insertData中更改POST來GET,並手動傳遞數據。

這裏有幾件事情,我認爲可能是錯的:

  1. 我的AJAX是錯誤的。它在本地運行,但不能在網絡上運行。但是,我可能無意中改變了一些東西,這就是這個問題的根源。
  2. 我的apache文件權限不正確。這很奇怪,因爲Apache擁有相關的文件夾/文件。 SELinux被禁用,所以這是一個不在列表中的東西。我什至試圖在有問題的文件夾chmod 777,無濟於事。
  3. 在httpd.conf中有一個指令,我錯過了,而apache只是不允許web寫入。

服務器信息:

的CentOS 5 APACHE2.2 PHP 5.3.6

這裏是澄清的源代碼。假設所有網站名稱等都是正確的。

  1. http://jyaworski.pastebin.us/2799 GatherData.php

  2. http://jyaworski.pastebin.us/2800 GatherData.js

  3. 的htt:// //jyaworski.pastebin.us/2801對不起。 SO不會讓新手發佈超過2個鏈接。添加一個 「P」 爲http InsertData.php

預先感謝您;這個問題一直困擾着我一段時間。

回答

0

Apache可能對「。」沒有寫權限。嘗試把它放在/ tmp中,看看是否能解決你的問題。如果是這樣,請將其保留或在您嘗試將數據保存到的目錄中爲apache添加寫入權限。

$dir = '/tmp/userdata/'.$id.'/';