1

投稿のタイトルにどのように名前を付けるべきかわかりません。

私は自分のページにフォルダーを作成している送信ボタンを持っています。押したらすぐ。サイトは自動的に更新されます。私のドキュメントには、ページを更新するように指示するスクリプトが設定されていません。何かを送信したときに発生しますよね?

if (isset($_POST['createDir'])) {   
    $dir = $_POST['dirname'];
    $targetfilename = PATH . '/' . $dir;
    if (!is_dir($targetfilename)) {
        mkdir($targetfilename);
        chmod($targetfilename, 0777);
    } else {
        echo "Folder exists!";
    }   
}

私のスクリプトのもう少し下に、ファイルとフォルダーを削除するという同じことがあります。

if (isset($_POST['deleteBtn'])) {
    chmod(PATH, 0777);
    foreach ($_POST['deletefiles'] as $value) {
            unlink(PATH . '/' . $value);
    }
    echo "<META HTTP-EQUIV=Refresh CONTENT='0'>"; //doesn't work without it!
}

送信ボタンをクリックしてフォルダーを削除すると、ページが更新されません。スクリプトは機能し、ファイルは削除されますが。フォルダを作成するスクリプトとファイルを削除するスクリプトの違いはどこですか。実はよくわかりません。

よろしくマット

4

1 に答える 1

1

わかりました、コメントでの長い会話の後、これが問題になっていると安全に言うことができると思います. これがコードの実行順序であることを考慮すると、次のようになります。

  1. フォルダ作成ボタンが押された場合は、フォルダを作成します
  2. ディレクトリを実行し、すべてのファイルパスを変数に保存します
  3. フォルダ/ファイルの削除ボタンが押された場合は、フォルダ/ファイルを削除します
  4. 手順 2 で取得したディレクトリの内容を表示します。

その場合、エラーは、上記の手順 2 と 3を切り替える必要があるということです。最初にすべてのファイルをリストしてから一部を削除すると、そのリストは削除直前に取得されているため、出力に反映されません。

一般に、ファイルとディレクトリを作成/削除/変更するためのユーザーコマンドを最初に処理し、最後の瞬間にのみ、ファイルシステムの最新の状態をリストする必要があります。

于 2010-07-30T09:28:19.987 に答える