4

ルート ディレクトリの外側の別のディレクトリに保持しているファイルがいくつかあり、HTML フォームを使用して、ルート ディレクトリの外側にある php ファイルに情報を投稿しようとしています。

それは可能ですか?もしそうなら、どのように?

4

4 に答える 4

2

私のウェブサイトでは、次のコードで始まるすべてのフォーム:

<form action="action" method="post">
    <input type="hidden" name="i-action" value="do-whatever" />

action.phpこれにより、隠しフィールドの値を使用してどのphpファイルを呼び出すかを決定するため、複数のプロキシスクリプトが不要になります。actionAjax を使用してフォームを投稿する場合は、競合が発生する可能性があるため、隠しフィールドを呼び出さないでください。また、php 拡張子を削除するようにファイルを設定したので、HTML コードにを追加する.htaccess必要がある場合があります。.phpaction

ここにあるaction.php

if (!empty($_POST['i-action']))
{
    $action = str_replace('.', '', $_POST['i-action']);
    $action = str_replace('/', '', $action);
    if (file_exists("../secret/directory/structure/$action".'.php'))
        require_once("../secret/directory/structure/$action".'.php');
}

以前str_replaceは、ハッカーが別のディレクトリに移動できないようにしていました。

于 2016-04-29T14:46:27.840 に答える
1

はい、可能です。そのディレクトリは別のサイトとしてホストする必要があり、ファイルの絶対 URL をフォーム アクションとして指定できます。

于 2012-07-09T07:09:45.747 に答える
0

ファイルは Web からアクセスできる必要があります。
「ルートの外側」ディレクトリが DocumentRoot の外側を意味する場合、これは不可能です。

アクションをインクルードまたはディスパッチする基本的なコントローラーを DocumentRoot に配置できます。

于 2012-07-09T07:10:06.507 に答える