https://でファイルするためのphpフォームライティング
質問
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"にリダイレクトしますが、なぜhttpsdocsではなくhttpdocsでprocessform.phpを探すのですか?確かに、それは呼び出されたのと同じプロトコル/ディレクトリ内にとどまるはずです!
助けてくれてありがとう:)
解決
あなたは物事を混乱させています。 URLはURLではなく、ディレクトリです。私の最初のアイデアは、Secure Directory(#/var/www/vhosts/mysite.co.uk/httpsdocs/files)の権利を確認して、Webサーバーユーザーがそこに書くことができるかどうかを確認することです。
他のヒント
2番目のMaarten、これは間違いなくファイルの許可設定です。ファイルをchmod'しましたか?それがあなたの唯一の問題であるはずですが、このタイプの提出物は、HTTPSを超えてそれを行う場合でも非常に安全ではありません。 「data.secured」のようなものと呼ばれるファイルを作成します。その後、Apacheの許可設定を使用して、外部アクセス/読み取りからファイルを「ロックオフ」することができます。
<files "*.secured">
order allow,deny
deny from all
</files>