2012-01-05 42 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>'; 
}