2011-04-04 38 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.'/';