ファイル管理システムでは、ディレクトリ内のすべてのファイルとフォルダを出力するためにforeachループを使用します。 これで、フォームを使ってファイルとフォルダの名前を変更します。 私のコードは次のようになります。foreachループで出力されたファイルの名前を変更する方法
/* RENDER THE FILES */
foreach ($files as $file) {
.....
<td>
<?php
// FILENAME
if(is_dir($dir.'/'.$file)) {
echo '<div class="sfmfolder">'.$file.'</div><br />';
}
else {
echo '<div class="sfmfile">'.$file.'</div>';
}
?>
</td>
<td>
<?php
// RENAME
if($_POST['renamefile']) {
if(is_dir($dir.'/'.$file)){
rename($dir.'/'.$file, $dir.'/'.$_POST['rename']);
}
else {
rename($dir.'/'.$file, $dir.'/'.$_POST['rename'].'.'.$FileExtension);
}
}
?>
<form method="post" action="">
<input type="text" name="rename" />
<input type="submit" name="renamefile" value="go" />
</form>
</td>
私の問題は、次のとおりです。ファイルの名前を変更すると、フォルダなどにもその名前を持つ他のすべてのファイルの名前を変更します。 正しいファイルのみの名前が変更されるようにする方法はありますか? 私は、問題は、ファイルまたはフォルダ
このコードを:ファイルのorginal名前が含まれており、同様にループ気にいら外の場合は条件を移動するには、フォームに隠しフィールドパスを攻撃するために広く開かれています。あなたはそれに対して保護を加えたいと思う。 – arkascha
okeしかし、それは私の質問ではありませんでした。どのように私は1つのファイルをキャッチし、特定のファイルの名前を変更することができますか? –
ループを使用しないでください。 – jeroen