質問

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>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top