Вопрос

У меня проблемы с получением формы PHP для записи в файл, размещенный в папке Apache HttpsDocs. Форма работает просто отлично, если все его части используют протокол HTTP, но когда я защищаю форму, подчинение формы и файл, который записаны результаты, она не удается.

Кто -нибудь может помочь?

Это код PHP:

$myFile = "files/data.txt";
$fh = fopen($myFile, 'a') or die ("Could not read file");
$stringData = "Data in pipe format\n";
fwrite($fh, $stringData);
fclose($fh);
header( 'Location: http://www.example.com/thankyou');

И различные места:

  • /var/www/vhosts/example.com/httpdocs/files
  • /var/www/vhosts/example.com/httpsdocs/files

Кроме того, моя страница формы https://example.com/form.php, и поля формы перенаправляет на action = "processform.php", так почему он ищет процессформы. Конечно, он должен оставаться в том же протоколе/каталоге, что и из них!

Спасибо за помощь :)

Это было полезно?

Решение

Вы сбиваете с толку вещи. URL -адреса не URL -адреса, они являются каталогами. Моя первая идея состоит в том, чтобы проверить права безопасного каталога ( # /var/www/vhosts/mysite.co.uk/httpsdocs/files), чтобы увидеть, сможет ли ваш пользователь Webserver написать там.

Другие советы

I Second Maarten, это определенно настройка разрешения в файле. У вас был файл? Это должно быть вашей единственной проблемой, однако этот тип подчинения очень небезопасен, даже если вы делаете это по HTTPS. Я бы сделал файл, который называется что -то вроде «Data.seced», затем вы можете использовать настройки разрешения Apache, чтобы «заблокировать» файл от внешнего доступа/чтения.

<files "*.secured">
order allow,deny
deny from all
</files>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top