12. august 2007 - 21:32
Der er
23 kommentarer
Slette fil online fra serveren i PHP
Hejsa Nu når man kan uploade filer via et php-script (online) kan man vel også slette en fil fra sin server via et php-script? Hvis ja, hvordan skal man så gribe det an?
Annonceindlæg fra SuperOffice
12. august 2007 - 21:38
#1
12. august 2007 - 21:44
#2
dvs. jeg skal bruge denne kode: unlink ( string $filename [, resource $context] ) hvor $filename er den fil jeg vil slette hvad er $context så være?
12. august 2007 - 21:56
#3
Du behøver nok ikke bekymre dig om context: $succes = unlink($filename); if ($succes === true) echo "Filen slettet med succes.";
12. august 2007 - 21:56
#4
$context er noget med et man kan angive en funktion som skal kalde hvis der sker en fejl under sletningen.
12. august 2007 - 22:02
#5
Okay - det virker dog ikke helt nu har jeg denne kode <? $filename = file("../test.php"); $succes = unlink($filename); if ($succes === true) echo "filen er slettet med succes."; ?> Hvad gør jeg galt?
12. august 2007 - 22:03
#6
$filename = "../test.php";
12. august 2007 - 22:13
#7
oka - men det fungerer stadig ikke:s jeg har prøvet at debugge lidt - og den viser bare helt blank selvom jeg prøver med denne kode: __ <? $filename = "/test.php"; $succes = unlink($filename); if ($succes === true) { echo "filen er slettet med succes."; } else { echo "mislykket"; } ?> __
12. august 2007 - 22:15
#8
$filename = "/test.php"; og: $filename = "../test.php"; er ikke det samme. Faktisk er det nok kun den sidste som har en chance for at virke.
12. august 2007 - 22:16
#9
Siden at du ikke får udskrevet noget, kommer der nok en fejl i koden. Websitet er så sat op til ikke at vise fejl, og derfor ser du ikke noget.
12. august 2007 - 22:16
#10
ok - men den fungerer ikke ligegyldigt hvilken jeg bruger men eftersom at de begge ligger i hovedfolderen burde der ikke være noget problem, i at bruge begge
12. august 2007 - 22:18
#11
jo - jeg ser for det meste når der er fejl i koden
12. august 2007 - 22:19
#12
Ikke korrekt. Når du sletter filer vha. ulink() så sletter du i forhold til hvor at de ligger i filsystemt. /filnavn.txt vil slette en fil som ligger i roden, mens ../filnavn.txt vil slette en fil som ligger et niveau ude. Websitets hovedfolder er ikke lig med filsystemets rodfolder, og derfor er det ikke det samme.
12. august 2007 - 22:20
#13
Prøv at lægge en test-fil i *samme* folder som selve scriptet, og prøv så at slette den derfra. Hvis det ikke virker så er der næppe nogen chance for at det andet virker.
12. august 2007 - 22:29
#14
har jeg prøvet - det fungerer heller ikke jeg har prøvet snart alt:s + jeg har rettet "if ($succes === true)" til "if ($succes == true)"
13. august 2007 - 07:33
#16
Hvordan ser din kode ud og hvor ligger filerne i forhold til hinanden? Hvad sker der når du køre scriptet?
13. august 2007 - 14:45
#17
Har begge filer til at ligge i hovedfolderen filen ser ud som du skrev den, __ <? $filename = file("/test.php"); $succes = unlink($filename); if ($succes === true) echo "filen er slettet med succes."; ?> __ siden bliver blot blank når du kører den, og kører jeg en else-funktion, kommer der heller ikke noget frem.
13. august 2007 - 14:54
#18
<? $filename = file("test.php"); if (is_writable($filename)){ if(unlink($filename)) { echo "filen er slettet med succes."; }else{ echo"Kunen slette filen!"; } }else{ echo"Filen kan ikke slettes!"; } ?>
13. august 2007 - 15:03
#19
arghhh, fuck..... <?php $filename = "test.php"; if (is_writable($filename)){ if(unlink($filename)) { echo "filen er slettet med succes."; }else{ echo"Kunen slette filen!"; } }else{ echo"Filen kan ikke slettes!"; } ?>
13. august 2007 - 17:31
#20
tak - den spytter da noget ud showsource jeg tror jeg har fundet fejlen - jeg har glemt at ændre CHMODen
13. august 2007 - 18:59
#21
det fungerer stadig ikke -selvom jeg har rettet CHMOD til 777 hvorfor gider det ikke at du?
13. august 2007 - 19:10
#22
Hvis filet er lavet/uploadet med dit ftp program, skal du chmod den derfra. Du kan ikke regne med ar php får lov at ændre chmod, kun for filer som et script laver.
13. august 2007 - 19:31
#23
hvordan kan man så gøre det via en fil? grunden til at jeg ønsker at lave dette system, er så jeg er fri for at rodde rundt i mit ftp program kan man sætte CHMOD via et script på en fil/mappe?
Vi tilbyder markedets bedste kurser inden for webudvikling