PHP의 ftp_login() 함수는 이미 열려 있는 FTP 연결에 대해 사용자 인증을 수행하고 로그인하는 함수입니다. ftp_connect()로 FTP 서버에 접속한 후, 이 함수를 호출해야 실제 파일 업로드나 다운로드 같은 작업을 진행할 수 있습니다.
문법(Syntax)
ftp_login(con, user_name, password);
매개변수(Parameters)
con − ftp_connect()를 통해 생성된 FTP 연결 리소스입니다.
user_name − FTP 서버에 로그인할 때 사용할 사용자 이름(계정 ID)입니다.
password − 해당 계정의 로그인 비밀번호입니다.
반환값(Return)
ftp_login() 함수는 로그인에 성공하면 TRUE를 반환합니다. 반대로 실패하면 FALSE를 반환하고 함께 PHP 경고(warning) 메시지를 발생시킵니다. 따라서 실패 상황에서는 에러 억제 연산자(@)를 사용해 불필요한 경고 출력을 막는 것이 일반적입니다.
사용 예제
다음은 ftp_connect()로 서버에 연결한 뒤 ftp_login()으로 로그인하는 기본적인 예제입니다.
<?php
$ftp_server = "192.168.0.4";
$ftp_user = "amit";
$ftp_pass = "tywg61gh";
// FTP 서버에 연결 시도
$con = ftp_connect($ftp_server) or die("$ftp_server 에 연결할 수 없습니다.");
// 로그인 시도 (실패 시 경고 억제를 위해 @ 사용)
if (@ftp_login($con, $ftp_user, $ftp_pass)) {
echo "로그인에 성공했습니다!";
} else {
echo "로그인에 실패했습니다!";
}
// 작업 종료 후 연결 닫기
ftp_close($con);
?>
예제 설명
1. ftp_connect() : 지정된 IP 주소의 FTP 서버에 연결을 시도하며, 연결에 실패하면 die()로 스크립트를 종료합니다.
2. @ftp_login() : 사용자 이름과 비밀번호로 로그인을 시도합니다. 앞에 붙은 @(에러 억제 연산자)는 로그인 실패 시 나타나는 경고 메시지가 화면에 출력되지 않도록 합니다.
3. 조건 분기 : 반환값이 TRUE이면 성공 메시지를, FALSE이면 실패 메시지를 출력합니다.
4. ftp_close() : 모든 작업이 끝나면 FTP 연결을 닫아 리소스를 해제합니다.
실무에서는 보안을 위해 FTP 대신 SSH 기반의 SFTP를 사용하는 것이 권장되며, 어쩔 수 없이 FTP를 사용해야 하는 경우라면 계정 정보를 소스 코드에 하드코딩하지 말고 환경 변수나 별도의 설정 파일로 관리하는 것이 안전합니다.