2011-12-25 5 views
7

Questo è il codicefunzione PHP unlink

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

ma per qualche motivo ottengo questo errore Warning: unlink();

perché $ user_avatar restituisce vuoto? e se faccio eco mostra t_cabbbccebbfhdb.jpg

+0

quale errore si ottiene? Il tuo post sembra perdere l'effettivo messaggio di errore. Il file esiste realmente nella directory di lavoro corrente? – catchmeifyoutry

+3

Mi preoccupo quando vedo che il codice PHP non usa [PHP Prepared Statements] (http://php.net/manual/en/pdo.prepared-statements.php) per prevenire [SQL Injection] (http: // en. wikipedia.org/wiki/SQL_injection) vulnerabilità. Spero che tu stia disinfettando le tue variabili nel codice che non è stato incollato qui. In caso contrario, si prega di prendere in considerazione la possibilità di riscrivere il codice per utilizzare le istruzioni preparate PDO anziché tentare di disinfettare le variabili. – sarnold

risposta

12

scollegamento rimuovere file che disinserito è per le variabili.

Se la variabile restituisce vuoto, forse la query non restituisce alcun record. Hai provato a eseguire la query manualmente?

+6

Per favore scrivi frasi complete e coerenti. "Scrivere stile conta" - http://stackoverflow.com/questions/how-to-answer – BoltClock

+0

grazie per le informazioni –

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

il file esiste e se scrivo $ home = $ _SERVER ['DOCUMENT_ROOT']; unlink ($ home.'t_cabbbccebbfhdb.jpg '); sta funzionando. ma se lo cambio lo scollego ($ home. $ user_avatar); il messaggio di errore visualizza un clic (/ home/naturecl/public_html.) e $ user_avatar è vuoto? – Ben

+0

controllare il codice modificato, è possibile utilizzare lo scollegamento se $ user_avatar contiene il nome file –

+0

$ target = "$ home/img/avatars/$ user_avatar"; e se echo $ user_avatar sta mostrando il nome del file ma nella funzione unlick è vuoto e il suo show indica: scollega (/ home/naturecl/public_html/img/avatars /) – Ben