12. april 2005 - 23:15Der er
10 kommentarer og 2 løsninger
Slet filer med unlink
Har lavet følgende funktion:
function fileDelete($id){ sql_connect(); $sql = mysql_query("SELECT * FROM ah_downloads WHERE id = '$id'"); while (mysql_fetch_array($sql)){
if(file_exists($_SERVER['DOCUMENT_ROOT'].$data['dist'])){ unlink($_SERVER['DOCUMENT_ROOT'].$data['dist']); $bes = "DELETE FROM ah_downloads WHERE id = '$id'"; mysql_query($bes) or die ("mysql fejl: " . mysql_error()); echo "Filen er slettet fra serveren"; exit; } else { echo "Filen kunne ikke findes"; exit; } mysql_close(); } }
Problemet er, at når jeg kører den, får jeg følgende fejl;
Warning: unlink(/home/web/sth58909) [function.unlink]: Permission denied in /usr/home/web/sth58909/funktioner.php on line 840
Det er til trods for, at mappen har fulde tilladelser.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
function fileDelete($id){ sql_connect(); $sql = mysql_query("SELECT * FROM ah_downloads WHERE id = '$id'"); $data = mysql_fetch_array($sql); if(file_exists($data['dist'])){ unlink($data['dist']); $bes = "DELETE FROM ah_downloads WHERE id = '$id' LIMIT 1"; mysql_query($bes) or die ("mysql fejl: " . mysql_error()); echo "Filen er slettet fra serveren"; exit; } else { echo "Filen kunne ikke findes"; exit; } mysql_close(); }
file_exists() returnerer også true, hvis det er en mappe. Og da $data['dist'] ikke findes får du bare fat i din webrod - altså en mappe. Og denne kan du selvfølgelig ikke unlinke.
Hvor har du da $data['dist'] fra, hvis det ikke er fra databaseforespørgslen? Du kan jo ikke bruge en variabel i en funktion, der ikke er defineret i funktionen.
function fileDelete($id){ sql_connect(); $sql = mysql_query("SELECT * FROM ah_downloads WHERE id = '$id'"); $data = mysql_fetch_array($sql); $file = $_SERVER['DOCUMENT_ROOT'].$data['dist']; if(is_file($file)){ unlink($file); $bes = "DELETE FROM ah_downloads WHERE id = '$id' LIMIT 1"; mysql_query($bes) or die ("mysql fejl: " . mysql_error()); echo "Filen er slettet fra serveren"; exit; } else { echo "Filen kunne ikke findes: ".$file; exit; } mysql_close(); }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.