2015-08-20 3 views
1

Я хочу отправить некоторые данные в виде запроса GET на мою страницу php (submit.php) и сохранить его в локальном файле. У меня есть:file_put_contents останавливает мой код от выполнения

$loc = 'data.txt'; 
if(isset($_GET["data"])) { 
    echo 'set'; 
    file_put_contents($loc, $_GET["data"], FILE_APPEND); 
} 
echo 'foo'; 

Но когда я достигаю submit.php?data=bar, ничего не происходит data.txt; кроме того, echo 'foo', похоже, не выполняется. Почему это?

+0

Вы видите сообщения об ошибках, и у вас есть error_reporting и display_errors? – Rangad

+0

Вы уверены, что это ваш точный код? Кажется, у вас есть дополнительная закрывающая скобка после '$ _GET [" data "]', которую я ожидал бы предотвратить ее вообще. Одна вещь, которую я постараюсь добавить: 'error_reporting (E_ALL); ini_set ('display_errors', TRUE); ini_set ('display_startup_errors', TRUE); 'вверху. – ryachza

+0

@Rangad Я не вижу сообщений об ошибках, которые сами по себе странны. И я не уверен, что у меня есть такие возможности; как я могу проверить? – Bluefire

ответ

2

echo 'foo' не выполняется, поскольку file_put_contents() обнаруживает ошибку и останавливает выполнение.

Поместите error_reporting(E_ALL & ~E_NOTICES); ini_set('display_errors', '1'); перед своим скриптом, чтобы PHP отображал ошибки на экране.

Таким образом, вы можете обнаружить, что, я думаю, процесс, который запускает PHP-код (вероятно, веб-сервер), не имеет права на запись в каталог, в котором вы храните код.

изменение $loc до '/tmp/data.txt' и оно будет работать. Или, еще лучше, создайте новый каталог, установите его разрешения для rwx для всех и измените код для записи в него файлов.

+0

Хм. Позвольте мне попробовать это ... – Bluefire

+0

У вас его есть, спасибо! Оказывается, я работал в неправильном каталоге, и, как вы сказали, он не мог писать там. – Bluefire

Смежные вопросы