Запись формы PHP в файл в https: // - PullRequest
0 голосов
/ 06 октября 2009

У меня проблемы с получением формы 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');

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

  • / вар / WWW / виртуальных доменов / example.com / httpdocs / файлы
  • / вар / WWW / виртуальных доменов / example.com / httpsdocs / файлы

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

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

Ответы [ 2 ]

1 голос
/ 06 октября 2009

Я второй Мартен, это определенно настройка прав доступа к файлу. Вы chmod'd файл? Это должно быть вашей единственной проблемой, однако этот тип представления очень небезопасен, даже если вы делаете это через https. Я бы сделал файл с именем что-то вроде «data.secured» Затем вы можете использовать настройки разрешений apache для «блокировки» файла от внешнего доступа / чтения.

<files "*.secured">
order allow,deny
deny from all
</files>
1 голос
/ 06 октября 2009

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

...