2011-12-25 19 views
7

Jest to kodPHP unlink funkcja

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

ale z jakiegoś powodu otrzymuję ten błąd Warning: unlink();

dlaczego $ user_avatar wraca pusta? i gdybym echo pokazuje t_cabbbccebbfhdb.jpg

+0

jaki błąd dostałeś? Twój post wydaje się omijać rzeczywisty komunikat o błędzie. Czy plik istnieje w bieżącym katalogu roboczym? – catchmeifyoutry

+3

Martwię się, gdy zobaczę, że kod PHP nie używa [PHP Prepared Statement] (http://php.net/manual/en/pdo.prepared-statements.php), aby zapobiec [SQL Injection] (http: // en. wikipedia.org/wiki/SQL_injection) podatności. Mam nadzieję, że oczyszczasz swoje zmienne w kodzie, który nie został wklejony tutaj. Jeśli nie, należy rozważyć ponowne napisanie kodu, aby korzystać z przygotowanych instrukcji PDO, zamiast próbować odkażać zmienne. – sarnold

Odpowiedz

12

unlink usunąć pliki natomiast rozbrojony jest dla zmiennych.

Jeśli zmienna zwróci wartość pustą, być może zapytanie nie zwróci żadnych rekordów. Czy próbujesz uruchomić zapytanie ręcznie?

+6

Należy pisać pełne, spójne zdania. "Ważne jest pisanie stylu" - http://stackoverflow.com/questions/how-to-answer – BoltClock

+0

dzięki za informację –

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

plik istnieje i jeśli napiszę $ home = $ _SERVER ['DOCUMENT_ROOT']; unlink ($ home.'t_cabbbccebbfhdb.jpg '); to działa. ale jeśli zmienię to na rozłączne ($ home. $ user_avatar); komunikat o błędzie wyświetla unlick (/ home/naturecl/public_html.) a $ user_avatar jest puste? – Ben

+0

sprawdź edytowany kod, możesz użyć odłączenia, jeśli $ user_avatar zawiera nazwę pliku –

+0

$ target = "$ home/img/avatars/$ user_avatar"; a jeśli echo $ user_avatar pokazuje nazwę pliku, ale w funkcji usuwania zaznaczone jest puste i wyświetla się ostrzeżenie: unlink (/ home/naturecl/public_html/img/avatars /) – Ben