Avatar billede xaque Nybegynder
18. oktober 2005 - 09:49 Der er 18 kommentarer og
1 løsning

slette billede fra server

Hej jeg har en hjemmeside på b-one
jeg har så en nyheds upload hvor der også kommer et billede men hvis jeg nu vil slette nyhed og billedet så kan jeg godt slette nyheden fra databasen men ikke billedet
mappen er chmoddet

koden:

<?
session_start(); 
if($_SESSION['user_level'] == 1){
include("db.php");

$slet = $_POST["slet"];
$pic = $_POST["pic"];
$dir = "images/news/large";


echo"$pic";
echo"$slet";



if(isset($pic)) {
unlink("images/news/large/$pic");
   
}




mysql_query("DELETE FROM nyheder WHERE dato='$slet'");






  echo"Nyheden er nu slettet";
echo "<br/><a href=../vis_nyhed.php>gå til nyheder</a>";





}

?>


hvad er der galt?
Avatar billede xaque Nybegynder
18. oktober 2005 - 09:50 #1
hvis jeg prøver at lave et link til billedet kan den godt vise det på slette siden men den sletter det bare ikke
Avatar billede showsource Seniormester
18. oktober 2005 - 09:53 #2
Hvordan kommer billedet på serveren?
Hvis det er et upload, bruger du så chmod() efter upload?
Avatar billede xaque Nybegynder
18. oktober 2005 - 09:58 #3
ja jeg bruger en form til at uploade det og nej jeg chmnodder det ikke men har prøvet at gå ind vis ftp og chmodde det men det virker heller ikke
Avatar billede showsource Seniormester
18. oktober 2005 - 10:00 #4
Når billedet er uploadet, kan du bruge
chmod("billede", 0777);

Ved ik' lige hvor lidt du kan nøjes med, men 0777 giver alle, alle rettigheder til billedet.
Så burde dit script også kunne slette det.
Avatar billede xaque Nybegynder
18. oktober 2005 - 10:01 #5
prøver lige
Avatar billede xaque Nybegynder
18. oktober 2005 - 10:07 #6
kan ikke få den chmoddet med det
Avatar billede xaque Nybegynder
18. oktober 2005 - 10:08 #7
har prøvet at lave det om til
if(isset($pic)) {

chmod("images/news/large/$pic", 0777);

unlink("images/news/large/$pic");
   
}
Avatar billede showsource Seniormester
18. oktober 2005 - 10:09 #8
Det er ved upload du skal bruge chmod, da det er det script som "ejer" filen
Avatar billede xaque Nybegynder
18. oktober 2005 - 10:12 #9
oki det virkede nu da jeg satte det ind i upload scriptet og den bliver også chmoddet men filen ligger der stadig efter jeg har kørt slette scriptet
Avatar billede xaque Nybegynder
18. oktober 2005 - 10:18 #10
kan det være fordi b-one køre i safe mode?
Avatar billede xaque Nybegynder
18. oktober 2005 - 10:23 #11
har lige snakket med b-one support eller chattet :D
de siger at den function bliver slået fra når man kører i safe mode æv bæv
men syndes du skal have nogle point fordi du prøvede så smid et svar

er der evt andre måder man kan slette på?
Avatar billede showsource Seniormester
18. oktober 2005 - 13:22 #12
? function slået fra? unlink() ???
Så vidt jeg ved, skulle der ikke være noget bøvl hvis du definerer den fulde sti til billedet. F.eks.
unlink($_SERVER["DOCUMENT_ROOT"] ."/images/news/large/". $pic);

Hvis der er, så find dig et andet host med det samme!
Avatar billede xaque Nybegynder
18. oktober 2005 - 14:14 #13
ja han sagde at unlink ikke virkede når sage mode var sat til på serveren
Avatar billede showsource Seniormester
18. oktober 2005 - 17:04 #14
Find du dig bare et andet host du!
Har selv et domain med safe mode on, og kan sgu sagtens slette en fil som er blevet uploadet.

Men ok, måske de har været mega paranoide og disablet unlink() i php.ini?

Et link til en info fil vil jeg da gerne se

<?php phpinfo(); ?>
Avatar billede xaque Nybegynder
19. oktober 2005 - 10:39 #15
har desvære ikke det link mere.
er det ikke noget med at når man har safe mode on så skal det være samme dokument som der opretter der også skal slette?
Avatar billede xaque Nybegynder
19. oktober 2005 - 10:43 #16
nu har jeg prøvet med din kode men det virker stadig ikke :(


<?
session_start(); 
if($_SESSION['user_level'] == 1){
include("db.php");

$slet = $_POST["slet"];
$pic = $_POST["pic"];
$dir = "images/news/large";


echo"$pic";
echo"$slet";




if(isset($pic)) {


unlink($_SERVER["DOCUMENT_ROOT"] ."includes/images/news/large/". $pic);   
}




mysql_query("DELETE FROM nyheder WHERE dato='$slet'");






  echo"Nyheden er nu slettet";
echo "<br/><a href=../vis_nyhed.php>gå til nyheder</a>";





}

else{ echo"fejl"; }

?>
Avatar billede xaque Nybegynder
19. oktober 2005 - 10:44 #17
har du fået pointene?
Avatar billede showsource Seniormester
19. oktober 2005 - 11:05 #18
næh, ingen point.

Men prøv lige dette:
$moveto er underdir til scriptet
Hvis $moveto IKKE er et underdir, skal den fulde sti defineres

<?php
ini_set('error_reporting', "E_ALL");
?>
<html><head><title>Test for upload og sletning</title></head>

<body>


<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data">
<input name="upfile" type="file" size="32"><br>
<input type="submit" value="Upload">
</form>

<?php
$moveto = "images/test/";
if (isset($_FILES["upfile"])) {
    if(move_uploaded_file($_FILES["upfile"]["tmp_name"], $moveto . $_FILES["upfile"]["name"])) {
    chmod($moveto . $_FILES["upfile"]["name"], 0777);
    echo"Filen ". $_FILES["upfile"]["name"] ." er blevet uploadet.<br />\r\n";
    echo"<a href=\"". $_SERVER["PHP_SELF"] ."?del=". $_FILES["upfile"]["name"] ."\">Slet filen</a>";
    }
}

if (isset($_GET["del"])) {
    if(false != unlink($moveto . $_GET["del"])) {
    echo"Filen er slettet";
    }else{
    echo"Fejl ved sletning af fil!";
    }
}
?>

</body></html>
Avatar billede xaque Nybegynder
07. november 2005 - 11:53 #19
okay det vil jeg lige prøve
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester