Avatar billede krydset Nybegynder
19. oktober 2003 - 22:50 Der er 28 kommentarer og
1 løsning

Slette script

Hmmm var måske lidt for hurgtig igår da jeg accepterede et svar om at slette en fil med php.


Jeg har det her script som først skal slette en fil i et dir og efter slette en post i db.

slet i db går fint men filen bliver ikke fjernet er der nogen der kan se hvad fejlen er

mit upload dir er chmod 777 og kan fanges
på 2 måder /home/administrator/www/upload/filer
og ../upload/filer/
echo[sti]; den udskriver filnavnet samt extension
jeg får denne her fejl hvergang jeg prøver
Warning: Unlink failed (Is a directory) in /home/administrator/www/field/test.php on line 20

her er scriptet

<?PHP

include("dbconnect.php");
$slet = $_POST['test'];
$res = mysql_query("SELECT sti FROM fil_downloads") or die(mysql_error());

echo "<form action='test.php' method='POST'>";

    echo "<select name='test'>";
    while ($row = mysql_fetch_array($res))
    {
        echo "<option>$row[sti]</option>";
    }
    echo "<input type='submit' name='send' value='slet'>";
    echo "</select>";
    echo "</form>";
   

if($_POST['send']) {
    unlink("../upload/filer/$row[sti]");
    mysql_query("DELETE FROM fil_downloads where sti = '$slet'") or die(mysql_error());
   
}


?>
Avatar billede erikjacobsen Ekspert
19. oktober 2003 - 22:53 #1
unlink("../upload/filer/$_POST[test]");
Avatar billede erikjacobsen Ekspert
19. oktober 2003 - 22:54 #2
eller
    unlink("../upload/filer/$let");
Avatar billede krydset Nybegynder
19. oktober 2003 - 22:59 #3
du er en tålmodig mand erikj.

Det virker men der en lille bug endnu efter sletning af fil og post, står filen stadig select boksen indtil jeg sletter den næste, men så er de den der står . Kan man ikke få siden til at refreshe efter sletning af filen :-?
Avatar billede schaefner Juniormester
19. oktober 2003 - 23:00 #4
if($_POST['send']) {
    unlink("../upload/filer/$let");
    mysql_query("DELETE FROM fil_downloads where sti = '$slet'") or die(mysql_error());
   
}

Flyt den op før din while-løkke.
Avatar billede krydset Nybegynder
19. oktober 2003 - 23:00 #5
sorry efter sletning i db
altså
f($_POST['send']) {
    unlink("../upload/filer/$row[sti]");
    mysql_query("DELETE FROM fil_downloads where sti = '$slet'") or
    REFRESH
die(mysql_error());
Avatar billede schaefner Juniormester
19. oktober 2003 - 23:01 #6
faktisk før din query
Avatar billede krydset Nybegynder
19. oktober 2003 - 23:02 #7
hjalp ikke :-(
Avatar billede krydset Nybegynder
19. oktober 2003 - 23:02 #8
prøver lige det
Avatar billede erikjacobsen Ekspert
19. oktober 2003 - 23:02 #9
Vis koden!
Avatar billede whatever Nybegynder
19. oktober 2003 - 23:02 #10
Noget helt andet:

    echo "<select name='test'>";
    while ($row = mysql_fetch_array($res))
    {
        echo "<option>$row[sti]</option>";
    }
    echo "<input type='submit' name='send' value='slet'>";
    echo "</select>";
    echo "</form>";

Hvordan kan man have en submit-knap mellem to select-tags?
Avatar billede krydset Nybegynder
19. oktober 2003 - 23:03 #11
hjalp heller ik
Avatar billede erikjacobsen Ekspert
19. oktober 2003 - 23:04 #12
Tænk på at lave dine PHP-sider efter denne recept:

1) Lad os nu se hvad der skal gøres, og så få det overstået
2) Kaffepause
3) Hvad skal vi nu finde på at vise til brugeren

Kaffepausen er ikke strengt nødvendigt, men er blot med for at holde de 2 ting adskilt ;)
Avatar billede krydset Nybegynder
19. oktober 2003 - 23:04 #13
hmm en lille fejl :-O
Avatar billede krydset Nybegynder
19. oktober 2003 - 23:04 #14
<?PHP


if($_POST['send']) {
    unlink("../upload/filer/$slet");
    mysql_query("DELETE FROM fil_downloads where sti = '$slet'") or die(mysql_error());
   
}


include("dbconnect.php");
$slet = $_POST['test'];
$res = mysql_query("SELECT sti FROM fil_downloads") or die(mysql_error());






echo "<form action='test.php' method='POST'>";

    echo "<select name='test'>";
    while ($row = mysql_fetch_array($res))
    {
        echo "<option>$row[sti]</option>";
    }
    echo "</select>";
    echo "<input type='submit' name='send' value='slet'>";
    echo "</form>";
   


?>
Avatar billede erikjacobsen Ekspert
19. oktober 2003 - 23:05 #15
Du skal bytte om på de 2 linier her: (selv om det sikkert virker alligevel)

echo "<input type='submit' name='send' value='slet'>";
echo "</select>";
Avatar billede schaefner Juniormester
19. oktober 2003 - 23:05 #16
den skal selvfølgelig før din connection
Avatar billede erikjacobsen Ekspert
19. oktober 2003 - 23:05 #17
hvad er det der ikke virker nu?
Avatar billede krydset Nybegynder
19. oktober 2003 - 23:06 #18
er gjordt :-O
Avatar billede schaefner Juniormester
19. oktober 2003 - 23:07 #19
<?php
include('dbconnect.php');
if (isset($_POST['send'])) {
    $slet = $_POST['test'];
    unlink("../upload/filer/$let");
    mysql_query("DELETE FROM fil_downloads WHERE sti='$slet'") or die(mysql_error());
}
echo '<form action="test.php" method="post">';
echo '<select name="test">';
$res = mysql_query("SELECT sti FROM fil_downloads") or die(mysql_error());
while ($row = mysql_fetch_array($res)) {
    echo '<option>'.$row['sti'].'</option>';
}
echo '</select>';
echo '<input type="submit" name="send" value="slet">';
echo '</form>';
?>
Avatar billede krydset Nybegynder
19. oktober 2003 - 23:07 #20
at filen man sletter stadig står i select boksen efter man har slettet den :-O
Avatar billede krydset Nybegynder
19. oktober 2003 - 23:09 #21
hmmm schaefner
Warning: Unlink failed (Is a directory) in /home/administrator/www/field/test.php on line 5
No Database Selected
et par fejl :-)
Avatar billede schaefner Juniormester
19. oktober 2003 - 23:09 #22
unlink("../upload/filer/$slet");
Avatar billede krydset Nybegynder
19. oktober 2003 - 23:11 #23
TAAARK.

Nu virker det
læg et svar begge
Avatar billede schaefner Juniormester
20. oktober 2003 - 21:53 #24
svar'
Avatar billede krydset Nybegynder
25. oktober 2003 - 22:43 #25
takker
Avatar billede condor9 Nybegynder
03. februar 2004 - 22:57 #26
Det er lidt kryptisk at forklare, men jeg prøver..

Er det ikke muligt at slette en fil ($etellerandet) som hedder noget andet end den post man sletter i sin database ?

filen der skal slettes (unlink("../galleri/$Pic"))
og det der skal slettes i databasen (mysql_query("delete from galleri where Id = '$Id'")) ??

I har kildekoden her:

<?php

$host = "localhost";
$user = "galleri";
$pass = "galleri";
$db = "galleri";
$Id = $_POST['Id'];
$Kat = $_POST['Kat'];
$Tpic = $_POST['Tpic'];
$Bem = $_POST['Bem'];
$Pic = $_POST['Pic'];

mysql_connect("$host", "$user", "$pass");
mysql_select_db($db);

echo "

<title>Galleri Admin</title>

<script LANGUAGE='JavaScript'>
function admkat() {
sider=window.open('kat-in.htm','','width=189,height=220,toolbar=no,location=no,scrollbars=no,status=no,fullscreen=no,resizable=no,top=324,screenY=324,left=436,screenX=436,')
}
</script>

<link rel='stylesheet' type='text/css' href='/css/togbilleder.css'>

";

echo "
<Form method='post' action='slet.php'>
<table width='600' , height='70' align='center' style='border: 1px solid rgb(0,0,0)' class='info-main'>
  <tr>
    <td valign='top'><div class='sektion'><table border='0' cellspacing='0' width='100%'>
      <tr>
        <td width='100%' align='center' valign='top'><span class='info-Nor'>Slet billede</span></td>
      </tr>
    </table>
    <table border='0' cellspacing='0' width='100%'>
      <tr>
        <td width='100%' height='40' align='center' colspan='4'></span><input type='text' name='Kat' size='6' value='".$row['Kat']."'> <span class='tekst'><input type='submit' name='soeg' value='Find Billeder' style='font-family: Century Schoolbook; font-size: 10pt; font-weight: bold'></span></td>
      </tr>
      <tr>
        <td width='100%' height='20' align='center'><span class='info-nor'><a href='java script:admkat()'>Find Kategori</a></span></td>
      </tr>
    </table>
    </div></td>
  </tr>
</table>
";

  if(isset($_POST['slet'])){ 
  unlink("../galleri/$Tpic");
  mysql_query("delete from galleri where Id = '$Id'") or die(mysql_error());

 
  // } else {
  } elseif(isset($_POST['soeg'])){
  $query = mysql_query("select * from galleri where Kat = '$Kat'") or die(mysql_error());
  while($row = mysql_fetch_array($query)){
}

  $query = mysql_query("select * from galleri where Kat = '$Kat'") or die(mysql_error());

echo "<table border='0' cellspacing='0' width='250' align='center'>
</form><tr><td width='100%' align='center'><span class='info-Nor'>Kategori Valgt: <B>".$Kat."</B></span></div></td></tr>
<table width='650' align='center' style='border: 1px solid rgb(0,0,0)' class='info-slet'>
  <tr>
    <td width='25'><span class='info-Nor'>Id</span></td>
    <td width='150'><span class='info-Nor'>Bemærkning</span></td>
    <td width='90'><span class='info-Nor'>Filnavn</span></td>
    <td width='100'><span class='info-Nor'>Thumbnail</span></td>
    <td width='30'><span class='info-Nor'>Slet</span></td>
  </tr>
</table>
<table width='650' align='center' style='border-left: 1px solid rgb(0,0,0); border-right: 1px solid rgb(0,0,0); border-bottom: 1px solid rgb(0,0,0)' class='info-slet'>";

  while($row = mysql_fetch_array($query)) {
echo "<Form method='post' action='slet.php'><tr>
    <td width='30'><span class='info-Nor'>$row[Id]</span></td>
    <td width='230'><span class='info-Nor'>$row[Bem]</span></td>
    <td width='50'><span class='info-Nor'>$row[Pic]</span></td>
    <td width='100'><span class='info-Nor'><img src='../galleri/$row[Tpic]'></span></td>
    <td width='30'><span class='info-Nor'><input type='hidden' name='Id' value='$row[Id]'><input type='submit' name='slet' value='Slet billede' class='tekst' style='font-family: Century Schoolbook; font-size: 10pt; font-weight: bold'></span></td>
  </tr></form>";
}
}
echo "</table>";
mysql_close();

?>

Jeg ved ikke hvad jeg gør galt, men den sletter ikke filen. stien til mappen hvor filen ligger er korrekt, men den sletter bare ikke filen.
Avatar billede erikjacobsen Ekspert
03. februar 2004 - 23:01 #27
Hvor kommer

$Tpic = $_POST['Tpic'];

fra? Og så forstår jeg ikke den første af dine 2 selectts?
Avatar billede condor9 Nybegynder
03. februar 2004 - 23:10 #28
Det kan også være det er en fejl, jeg er ikke helt så stiv i det her php og mysql, så det kan godt være det er skrevet forkert.
Avatar billede condor9 Nybegynder
03. februar 2004 - 23:30 #29
Jeg har fået det til at virke..
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

IT-JOB