Avatar billede t-hviid Nybegynder
27. april 2005 - 21:58 Der er 17 kommentarer og
1 løsning

Sti til dir i unlink

Skal stien til dir hvor fil skal slettes være absolut med unlink?
I min database lagers stien til billedet således: ../upload/1/computertrolley.jpg
Avatar billede dennismp Nybegynder
27. april 2005 - 21:59 #1
nej, den skal ikke være absolut. Den kan snildt være relativ fra det script der modtager hittet.
Avatar billede t-hviid Nybegynder
27. april 2005 - 22:16 #2
Ok. Jeg kan ikke rigtigt få dette til at virke: if ((isset($_POST['slet_felt'])) && ($_POST['slet_felt'] != "")) {
  $deleteSQL = sprintf("DELETE FROM produkter WHERE Id=%s",
                      GetSQLValueString($_POST['slet_felt'], "int"));
                      @unlink("$row[billed]");

Kan du se hvad der er galt?
Avatar billede dennismp Nybegynder
27. april 2005 - 22:18 #3
Nej- Du kunne jo starte med at fjerne @ foran unlink så den skriver en fejl hvis den fejler.
Avatar billede t-hviid Nybegynder
27. april 2005 - 22:21 #4
Så er der denne fejl:
Warning: unlink(): No such file or directory in /home/vhost/props/doks/bekraeft_slet.php on line 31

Warning: Cannot modify header information - headers already sent by (output started at /home/vhost/props/doks/bekraeft_slet.php:31) in /home/vhost/props/doks/bekraeft_slet.php on line 41
Avatar billede erikjacobsen Ekspert
27. april 2005 - 22:22 #5
Hvor får du $row fra?
Avatar billede t-hviid Nybegynder
27. april 2005 - 22:23 #6
Det ved jeg ikke :-) Det er forsøgt frem efter hvad jeg har kunne  finde herinde!
Avatar billede dennismp Nybegynder
27. april 2005 - 22:24 #7
prøv at skrive ændre unlink til

prøv evt var_dump($row) og se om den 1) findes 2) indeholder en billed-key i array'et
Avatar billede dennismp Nybegynder
27. april 2005 - 22:26 #8
nevermind. Du kan ikke forvente at tage en bid kode ud af den sammenhæng og så forvente den vil virke.
Avatar billede t-hviid Nybegynder
27. april 2005 - 22:27 #9
Nej, men man må jo forsøge sig frem, når man endnu ikke har den store erfaring :-)
Hvor skal jeg indsætte var_dump($row)
Avatar billede dennismp Nybegynder
27. april 2005 - 22:33 #10
Glem det med var_dump($row), hvis du slet ikke har en $row, så er den nok tom :)
Avatar billede mysli Nybegynder
27. april 2005 - 22:35 #11
Hvis du er ny, burde du så ikke kigge på nogle sourcekoder og tutorials - og få basis viden, inden du kaster dig ud i alt muligt skidt:)?
Avatar billede t-hviid Nybegynder
27. april 2005 - 22:38 #12
Det har jeg også gjort, men jeg har en tendens til at skal lære det på den svære måde :-) Når jeg sætter den direkte sti til et billede slettes det.
Avatar billede t-hviid Nybegynder
27. april 2005 - 22:39 #13
unlink("../upload/1/boston_kid.jpg");
Avatar billede erikjacobsen Ekspert
27. april 2005 - 22:41 #14
Hvis den $row ikke kommer andre steder fra, skal du nok have fat i den fra en SELECT-sætning.
Avatar billede t-hviid Nybegynder
27. april 2005 - 22:43 #15
Her har du hele koden frem til <head>:
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;   
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

if ((isset($_POST['slet_felt'])) && ($_POST['slet_felt'] != "")) {
  $deleteSQL = sprintf("DELETE FROM produkter WHERE Id=%s",
                      GetSQLValueString($_POST['slet_felt'], "int"));
                      unlink("../upload/1/boston_kid.jpg");

  mysql_select_db($database_test, $test);
  $Result1 = mysql_query($deleteSQL, $test) or die(mysql_error());

  $deleteGoTo = "/doks/slettet.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
    $deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $deleteGoTo));
}

$colname_produkter = "-1";
if (isset($_GET['ID'])) {
  $colname_produkter = (get_magic_quotes_gpc()) ? $_GET['ID'] : addslashes($_GET['ID']);
}
mysql_select_db($database_test, $test);
$query_produkter = sprintf("SELECT * FROM produkter WHERE Id = %s", $colname_produkter);
$produkter = mysql_query($query_produkter, $test) or die(mysql_error());
$row_produkter = mysql_fetch_assoc($produkter);
$totalRows_produkter = mysql_num_rows($produkter);
?>
Avatar billede t-hviid Nybegynder
27. april 2005 - 22:52 #16
Jeg bliver nødt til at lukke nu, jeg har et vækkeur der ringer kl. 05.30. Håber jeg kan fange dig i morgen. Tak for indsatsen ind til nu :-)
Avatar billede t-hviid Nybegynder
28. april 2005 - 20:55 #17
Kan du ud fra koden se hvor fejlen  ligger ?
Avatar billede t-hviid Nybegynder
28. april 2005 - 21:31 #18
Overføre til dette ? http://eksperten.dk/spm/613902
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