2011-12-25 4 views
7

이 코드PHP의 연결 해제 기능

$query = mysql_query("SELECT avatar FROM users WHERE UserID = ".$userID.""); 
     $row = mysql_fetch_array($query); 
     $user_avatar = trim($row['avatar']); 
unlink($user_avatar); 

하지만 어떤 이유로 나는이 오류 경고를 얻을 : 링크 해제를();

왜 $ user_avatar가 비어있게 되나요? 난 에코 경우는 t_cabbbccebbfhdb.jpg에게

+0

어떤 오류가 발생합니까? 귀하의 게시물은 실제 오류 메시지가 누락 된 것 같습니다. 파일이 현재 작업 디렉토리에 실제로 있습니까? – catchmeifyoutry

+3

나는 [PHP Prepared Statements] (http://php.net/manual/en/pdo.prepared-statements.php)를 사용하지 않고 [SQL Injection] (http : // en. wikipedia.org/wiki/SQL_injection) 취약점. 여기에 붙여 넣지 않은 코드에서 변수를 살균하기를 바랍니다. 그렇지 않다면, 변수를 살균하려고 시도하는 대신 PDO Prepared Statements를 사용하도록 코드를 다시 작성하십시오. – sarnold

답변

12

연결 해제를 도시해제이 변수 반면 파일을 제거한다.

변수가 공백을 반환하면 쿼리가 레코드를 반환하지 않을 수 있습니다. 쿼리를 수동으로 실행하려고 시도 했습니까?

+6

완전하고 일관된 문장을 작성하십시오. "스타일 문제를 작성"- – BoltClock

+0

정보를 주셔서 감사합니다 –

1
$query = mysql_query("SELECT avatar FROM users WHERE UserID = ".$userID.""); 
     $row = mysql_fetch_array($query); 
     $user_avatar = trim($row['avatar']); 
unset($user_avatar); 

//if you want to unlink file then 

if(!empty($user_avatar)) {  
    unlink($home.$user_avatar); // $yourFile should have full path to your file 
} 
+0

파일이 존재하고 내가 $ 가정 = $ _SERVER [ 'DOCUMENT_ROOT']; unlink ($ home.'t_cabbbccebbfhdb.jpg '); 그 일. 하지만 내가 링크를 해제 ($ home. $ user_avatar); 오류 메시지는 unlick (/ home/naturecl/public_html.)으로 표시되고 $ user_avatar는 비어 있습니까? – Ben

+0

편집 된 코드를 검사하면 $ user_avatar에 파일 이름이 –

+0

$ target = "$ home/img/avatars/$ user_avatar"가 포함되어 있으면 unlink를 사용할 수 있습니다. 그리고 내가 $ echo $ user_avatar 파일 이름을 보여주고 있지만 unlick 함수가 비어 있고 그것의 경고를 보여줍니다 : unlink (/ home/naturecl/public_html/img/avatars /) – Ben