Проблема с передачей данных AJAX / PHP / Apache и правами доступа к файлам - PullRequest
1 голос
/ 05 апреля 2011

Я делаю некоторый анализ пользовательских комбинаций клавиш для прототипа, связанного с биометрией, который я создаю. У меня возникла проблема, когда я передаю переменные через POST на другую веб-страницу, и эта веб-страница вызывает скрипт, который записывает данные на локальный сервер в каталоге на основе переданных ему данных.

Мой прототип прост: пользователь вводит некоторые данные в текстовую форму, нажатия клавиш собираются, пользователь нажимает кнопку «Отправить» в конце задачи, и эти данные отправляются на сервер для анализа. Однако PHP отказывается писать в каталог, указанный через Интернет. Если я иду в командной строке PHP, это работает. Я даже попытался изменить POST на GET в insertData и передать данные вручную.

Вот несколько вещей, которые, я думаю, могут быть неправильными:

  1. Мой AJAX не прав. Он работал локально, но не работает в Интернете. Однако я мог случайно изменить что-то, и это является источником этой проблемы.
  2. Мои права доступа к файлу для Apache неверны. Это странно, потому что Apache владеет рассматриваемой папкой / файлом. SELinux отключен, так что это одна вещь из списка. Я даже попробовал chmod 777 на указанных папках, но безрезультатно.
  3. В httpd.conf есть директива, которую я пропускаю, и apache просто не разрешает веб-запись.

Информация о сервере:

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 // извините. ТАК не позволит новичкам размещать более 2 ссылок. Добавьте "p" в http InsertData.php

Спасибо заранее; эта проблема мучает меня в течение некоторого времени.

1 Ответ

0 голосов
/ 05 апреля 2011

Apache, вероятно, не имеет разрешения на запись в "." Попробуйте поместить его в / tmp и посмотрите, решит ли это вашу проблему. Если это так, оставьте его там или добавьте разрешения на запись для apache в каталог, в который вы пытаетесь сохранить данные.

$dir = '/tmp/userdata/'.$id.'/';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...