ファイルを削除するためのフォームを作成中です。これらのファイル名の多くには空白要素が含まれているため、urlencode() 関数を使用しました。ただし、urldecode() を実行すると、+ 記号が空白にデコードされず、エラーが発生します。私は何を間違っていますか?
これはdelete.phpのコードで、デコードにいくつかのバリエーションがあります:
<?php
$file= 'test image.jpg';
echo "<form method=\"post\" name=\"deleteFile\" action=\"delete.php?delete=true\">
<input type=\"hidden\" name=\"FileToDelete\" value=".urlencode($file)." >
<input class=\"delete_button\" type=\"submit\" value=\"X\"></div></form>";
if(isset($_GET['delete']) && $_GET['delete']=='true') {
echo $_POST[urldecode("FileToDelete")].' #1'.'<br>';
echo $_POST[urldecode('FileToDelete')].' #2'.'<br>';
echo $_POST[htmlspecialchars(urldecode('FileToDelete'))].' #3'.'<br>';
}
?>