0

Apache httpsdocs フォルダーでホストされているファイルに書き込むための php フォームを取得する際に問題が発生しています。フォームのすべての部分が 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" にリダイレクトされます。確かに、呼び出し元と同じプロトコル/ディレクトリ内に留まる必要があります!

助けてくれてありがとう:)

4

2 に答える 2

1

あなたは物事を混乱させています。URL は URL ではなく、ディレクトリです。私の最初のアイデアは、安全なディレクトリ ( # /var/www/vhosts/mysite.co.uk/httpsdocs/files ) の権限をチェックして、Web サーバー ユーザーがそこに書き込めるかどうかを確認することです。

于 2009-10-06T13:53:54.643 に答える
1

これは間違いなくファイルのアクセス許可設定です。ファイルをchmodしましたか?それが唯一の問題であるはずですが、このタイプの送信は、https 経由で行っても非常に安全ではありません。「data.secured」のような名前のファイルを作成します。次に、apache のアクセス許可設定を使用して、ファイルを外部アクセス/読み取りから「ロックオフ」できます。

<files "*.secured">
order allow,deny
deny from all
</files>
于 2009-10-06T14:10:45.700 に答える