2012-01-05 9 views
0

私は削除のためにファイルを送信するためのフォームに取り組んでいます。これらのファイル名の多くは空白の要素を持っているので、私はurlencode()関数を使用しています。しかし、私がurldecode()を実行すると、+シンボルが空白にデコードされずに&にエラーが発生します。私は間違って何をしていますか?ここで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>'; 
} 

?> 

答えて

0

あなたはファイル名をデコードするが、テキストFileToDeleteされていません。私は次のようにしたいと思っています:

if(isset($_GET['delete']) && $_GET['delete']=='true') { 
    $decodedFilename = urldecode($_POST['FileToDelete']); 

    echo $decodedFilename.' #1'.'<br>'; 
    echo $decodedFilename.' #2'.'<br>'; 
    echo htmlspecialchars($decodedFilename).' #3'.'<br>'; 
} 
関連する問題