2016-06-13 1 views
0

파일 업로드를위한 임의의 폴더 이름을 만들려고합니다. 폴더 경로는 "receivedfiles/$ name $ date/"과 같아야합니다. 대신 나는 이것을 얻습니다. "receivedfiles /. 13.06.2016/". 나는 진짜로 무엇이 잘못되었는지를 모른다 ...PHP가 두 개의 변수가있는 폴더를 만드는 중 틀린 폴더 이름이 나타남

변수 $ name은 사용자 입력이며, 예를 들어,. 사용자가 원하는 것에 따라 "Simon"또는 "Simon Jensen". 큰 도움을

$d = date('d.m.y'); 
$varfoldername = "../receivedfiles/. $name . $d ./"; 
mkdir($varfoldername , 0777 , true); 
$upload_folder = $varfoldername; 

덕분에 나는 위의 날짜 만있는 폴더 이름을 지정하는 아래의 코드를 참조하십시오 코드에서 점을 제거했습니다.

$name = $_POST['name']; 
$d = date('d.m.y'); 
$varfoldername = "../receivedfiles/$name$d/"; 
mkdir($varfoldername , 0777 , true); 
$upload_folder = $varfoldername; 

솔루션 : $ 이름은 첫째 나중에 스크립트에 지정되었습니다. 문제의 해결 된 부분을 이동하십시오. 위와 같이 폴더 경로가 변경되어 나머지는 해결되었습니다. 모두 감사합니다.

+0

문제가 내가 다른 정보를 정기적으로 중 경로로 이메일을 보내이를 사용하는 $ _POST [ '이름'] – CiroRa

+0

입니다. 그 부분은 작동합니다. –

+0

ok하지만 $ name 변수가 $ name 내용 앞에 있는지 확인하기 위해 $ name의 인쇄를 시도하십시오. – CiroRa

답변

0

. 문제는 이것이 이메일 전송 양식의 코드라는 것입니다. 전자 메일은 아래에 구성되어 있으며 fileupload는 위에 있습니다. 물론 변수는 그 라인에서 알지 못했습니다.

예외적, 당신은 이중 인용 PHP는 $ 해석이기 때문에 변수로 .. 질문

$varfoldername = "../receivedfiles/$name$date/"; 

에서 솔루션을 작성하고하는 방법, 인쇄 $의 varfoldername에 의해 그 내용

를 인쇄했습니다 출력 내용을 확인하십시오

+0

Thx. 위의 코드를 업데이트하고 추가 라인을 추가했습니다. 날짜 만 폴더 이름으로받습니다. –

0

올바르게 연결하지 않았으므로 추가 점이 있습니다. 제 2 라인은

$varfoldername = "../receivedfiles/" . $name . $d . "/"; 

과 같이해야 또는 폴더 이름 값을 큰 따옴표를 사용하고 있기 때문에 당신은 당신의 문자열 내부의 점을 제거 할 수 있습니다.

+0

Thx. 위의 코드를 업데이트하고 추가 라인을 추가했습니다. 날짜 만 폴더 이름으로받습니다. –

+0

$ name에 대해 아무것도 얻지 못하면 $ _POST [ 'name']이 (가) 존재하지 않습니다. – georaldc

+0

전자 메일을 보내려는 이메일을 사용하며 이름이 전자 메일을 통해 전달되므로 그곳에있는 것으로 믿습니다. 그러나 variabel이 한 번 사용되면 비어 있습니까? 아니면 어떤 줄에 쓰여 있느냐에 따라 다릅니다. –

0

먼저 $name 변수가 비어 있지 않은지 확인해야합니다.

그런 다음 sprintf을 사용하여 경로를 만듭니다. 더 유연한 서식을 제공하며 중복 된 공백/점/등을 제거하는 데 도움이됩니다. 이 시도 :

$varfoldername = sprintf('../receivedfiles/%s%s/', $name, $d);