slet fil/billede helppp

Tags:    php

Hejsa

Jeg har dette script lavet i dw8 men et eller andet gør jeg galt for den sletter ikke billedet på serveren med unlink()funktionen, er der nogen der kan hjælpe please... er meget nybegynder

?php require_once('../../Connections/cms.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($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($_GET['id'])) && ($_GET['id'] != "")) {
$deleteSQL = sprintf("DELETE FROM nyheder WHERE id=%s",
GetSQLValueString($_GET['id'], "int"));

mysql_select_db($database_cms, $cms);
$Result1 = mysql_query($deleteSQL, $cms) or die(mysql_error());

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

$colname_rsDeleteNyheder = "-1";
if (isset($_GET['id'])) {
$colname_rsDeleteNyheder = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
mysql_select_db($database_cms, $cms);
$query_rsDeleteNyheder = sprintf("SELECT * FROM nyheder WHERE id = %s", GetSQLValueString($colname_rsDeleteNyheder, "int"));
$rsDeleteNyheder = mysql_query($query_rsDeleteNyheder, $cms) or die(mysql_error());
$row_rsDeleteNyheder = mysql_fetch_assoc($rsDeleteNyheder);
$totalRows_rsDeleteNyheder = mysql_num_rows($rsDeleteNyheder);
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link href="../../css/styles.css" rel="stylesheet" type="text/css" />
</head>

<body>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="layout">
<tr>
<td width="25"> </td>
<td> </td>
<td width="25"> </td>
</tr>
<tr>
<td width="25"> </td>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left"><?php echo $row_rsDeleteNyheder['filnavn']; ?></td>
</tr>
<tr>
<td align="left"> </td>
</tr>
<tr>
<td align="left"><?php echo $row_rsDeleteNyheder['description']; ?></td>
</tr>
</table></td>
<td width="25"> </td>
</tr>
<tr>
<td width="25"> </td>
<td><?php
$myFile = $row_rsDeleteNyheder['filnavn'];
$fh = fopen($myFile, 'w') or die("can't open file");
fclose($fh);
$myFile = $row_rsDeleteNyheder['filnavn'];
unlink($myFile);
?></td>
<td width="25"> </td>
</tr>
</table>
</body>
</html>
<?php
mysql_free_result($rsDeleteNyheder);
?>




hvorfor åbner du filen lige inden den skal slettes? og hvorfor tildeler du filnavnet til variablen 2gange?


din kode (styk af den i al fald) :
Fold kodeboks ind/udKode 


når du åbner filen, får du så en fejl besked?

ellers prøv med:
Fold kodeboks ind/udKode 


http://dk.php.net/manual/da/function.unlink.php

unlink()-funktionen returnere en boolsk værdi, så der kan du lige lave lidt fejlsøgning. Grunden til at jeg skriver filens navn ud er, at du måske ikke har stien til filen med. Hvis den f.eks. ligger i "/files/something/file1.zip" og din $myFile variabel kun indeholder "file1.zip", så har du din forklaring.

http://dk.php.net/manual/da/function.file-exists.php

Du kan også prøve at tjekke med file_exists()-funktionen, om filen findes:
Fold kodeboks ind/udKode 





Indlæg senest redigeret d. 19.04.2007 09:09 af Bruger #2796
t