2012-08-09 3 views
0

"FileName"및 "UrlFileName"데이터베이스에 두 개의 필드가 있으므로 유효하지 않은 문자의 "FileName"이 새 파일 이름 인 "FinaleFileName"을 갖도록 위생적으로 처리되므로 질문이 필요합니다. 간단한 코드 또는 기능은 예를 들어, 너무 전에 DB에 내 두 필드에 저장된 URL에있는 파일의 이름을 변경하려면 다음URL의 파일 이름을 변경하는 방법

$FileName = "NaMeoFImagE-10.jpeg" 
$UrlFileName = "uploads/pics/NaMeoFImagE-10.jpeg" 
.... 
//I had created a function to remove or replace a invalid character //Ok 

$FinaleFileName= nameofimage-10.jpeg 

..... 

A function to replace a File name in URL // Not OK 

$FinaleUrlFileName = "uploads/pics/nameofimage-10.jpeg"// Im looking for this result 

어떤 생각을?

+0

잘못된 파일 이름 문자는 무엇입니까? –

답변

0

URLfilename을 사용하여 finalFilename을 검색하려면 예, 동일해야합니다. 그렇지 않으면 파일을 찾을 수 없습니다. URLFileName이 URLFileName을 검색하는 데만 사용될 경우 DB에 대한 주입 공격을 검사하는 한 아무런 차이가 없습니다.

그렇다면 왜 둘 모두를 유지해야할까요? 왜 URLFilename을 정화하고 그것을 사용하는 것일까 요? 왜 정보를 두 번?

2

당신이 묻는 것을 이해할 수 있는지 모르겠지만 테스트 케이스에 따라 나는 strtolower을 찾고 있다고 생각합니다.

+0

좋은 추측 ... 온라인 라인 솔루션. –

0

이것이 원하는 것이라면 잘 모르겠지만 그 외에도 빠르고 간단합니다.

<?php 

     $FileName = "nameofimage-10.jpeg"; //your sanitized file name 
     $UrlFileName = "uploads/pics/NaMeoFImagE-10.jpeg"; //unclean URl 

$parts = explode("/", $UrlFileName); 
$name = $parts[ count($parts) - 1] ; 
$name = $FileName; 
$final = ""; //final cleaned URL 

for($i = 0; $i < count($parts) - 1; $i++) 
{ 
    $final .= $parts[$i] . "/"; 
} 
$final .= $name; 

    echo $final //return the clean URL; 
?> 

이게 원하는가요?

관련 문제