我正在对我正在构建的生物识别相关原型(prototype)的用户击键模式进行一些分析。我遇到一个问题,我通过 POST 将变量传递到另一个网页,并且该网页调用一个脚本,该脚本根据传递给它的数据写入目录中的本地服务器。
我的原型(prototype)很简单:用户在文本表单中输入一些数据,收集击键,用户在任务结束时单击“提交”,然后将该数据发送到服务器进行分析。然而,PHP 拒绝写入通过网络指定的目录。如果我进入命令行 PHP,它就可以工作。我什至尝试将 insertData 中的 POST 更改为 GET,并手动传入数据。
以下是我认为可能错误的一些事情:
- 我的 AJAX 错误。它在本地工作,但在网络上不起作用。但是,我可能无意中更改了某些内容,这就是此问题的根源。
- 我的 apache 文件权限不正确。但这很奇怪,因为 Apache 拥有相关文件夹/文件。 SELinux 被禁用,所以这是不在列表中的一件事。我什至在有问题的文件夹上尝试了 chmod 777,但没有成功。
- 我缺少 httpd.conf 中的一个指令,而 apache 只是不允许 Web 写入。
服务器信息:
CentOS 5 Apache 2.2 PHP 5.3.6这里是澄清的源代码。假设所有站点名称等均正确。
http://jyaworski.pastebin.us/2799 收集数据.php
http://jyaworski.pastebin.us/2800 GatherData.js
htt://jyaworski.pastebin.us/2801//抱歉。所以不会让新手发布超过 2 个链接。在 http 后面加一个“p” InsertData.php
预先感谢您;这个问题困扰我有一段时间了。
最佳答案
Apache 可能没有“.”的写入权限。尝试将其放入/tmp 中,看看是否可以解决您的问题。如果是这样,请将其留在那里或在您尝试保存数据的目录中添加 apache 的写入权限。
$dir = '/tmp/userdata/'.$id.'/';
关于php - AJAX/PHP/Apache 数据传输和文件权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5545376/