2011-01-04 2 views
1

내가 한 폴더에서 다른 폴더로 파일을 이동하기위한 것입니다이 스크립트를 가지고 있지만 난 오류, :내가 다른 폴더로 파일을 이동하여 오류가

$photo= $_POST['camera']; // i.e. 45647.jpg 

    //move file to userpics/ folder 

    rename ("../uploads/$photo", "../userpics/$photo"); 

을 얻을하지만 난이 오류 :

Warning: rename(/uploads/1czcec43s.jpg\n,/userpics/1czcec43s.jpg\n) [function.rename]: No error in .. on line 24 
+0

통지가 발생해도 파일이 이동 되었습니까? –

+0

사이드 노트 : 파일 이름에 줄 바꿈이 있습니다 ('$ photo'에 있음). 그것들을 제거하는 것이 더 좋습니다 ... –

답변

2

파일 이름에 줄 바꿈 \n이 포함되어 있습니다. 이것은 오류의 원인 일 수 있습니다. trim를 호출보십시오 :

$photo = trim($_POST['camera']); // i.e. 45647.jpg 
rename ("../uploads/$photo", "../userpics/$photo"); 

또한, 선 (善)을 위해 코드에 확인 약간의 정신을 추가 할 수 있습니다. 귀하의 사용자는 $_POST['camera']의 내용으로 web/index.php (예)를 쉽게 입력하고 PHP 파일을 덮어 쓸 수 있습니다.

+0

감사의 작품 :)) 나는 데이터베이스에 삽입하기 전에 여전히 $ 사진을 벗어날 수 있습니까 !! –

+0

이스케이프해도 도움이되지 않습니다. 수락 할 파일 이름을 정의하는 정규 표현식을 작성해야합니다. '/^\ w \ .jpg $/i'와 같은 것은 영숫자 문자, 공백 문자, 밑줄 문자,'.jpg' 문자, 대소 문자를 구분하지 않아도됩니다. – lonesomeday

0

사용 된 POST 매개 변수 끝에 \ n (줄 바꿈)이 있습니다. 그것을 제거하려고 했습니까?

알림 : 표시된 코드는 매우 취약합니다.

관련 문제