Wie kan er mij helpen? Ik moet enkele aanpassingen doen aan een bestaande backoffice die bestaat uit een heleboel sql tabellen.

Studenten kunnen via de bijhorende website online een cv aanmaken. Een tabel slaat alle data (leeftijd, naam, interesse, opleiding) op. Er kunnen ook fotootjes worden upgeload. Allemaal heel logisch.
De admin van de website kan eenvoudig cv s verwijderen uit de database. Dit werkt perfect. Het probleem is dat de afbeeldingen zelf op de server blijven staan. Deze zouden ook verwijderd moeten worden en dit me lukt niet. Ik heb begrepen dat de functie -unlink- gebruikt moet worden, maar ik boek geen succes.

De werkende code voor het vewijderen van cv s:

<php
include("header.php");

if (!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bv_cv"
WHERE id = ".$GET['cvid'].";";
&a_q = mysql_query($a_d) or die(""problem activate_s : ">mysql_error());
header("Location: $ref");

?>

Nog even vermelden dat de betreffende tabel "bc_cv" heet. In deze tabel zit een kolom"uid" met als waarde een cijfer. Dit cijfer is eveneens de naam van de bijhorende gif-afbeelding die opgeslagen zijn in "C:\phpdev\www\BC3\stud\img\cv" Voor alle duidelijkheid: uit deze root moeten de gif-afbeeldingen verwijderd worden.

Kan iemand me helpen?
<?php

error_reporting(E_ALL); // Error reporting Level

include("header.php");

connecteer();

if(!isset($_GET['cvid']) OR !ctype_digit($_GET['cvid'])){
echo('Need valid $_GET variable');
exit;
}

$sql = "SELECT uid FROM bc_cv WHERE id = ".$_GET['cvid']; // selecteren uid door cvid op te vragen
$result = mysql_query($sql);

$row = mysql_fetch_assoc($sql);
$dir = 'BC3/stud/img/cv/'; // url naar de map waarin de foto's staan GEEN HTTP://

if(unlink($dir.'/'.$row['uid'])) // verwijderen van fotobestand
{
$ref = $_SERVER['HTTP_REFERER'];
$a_d = "DELETE FROM bc_cv WHERE id = ".$_GET['cvid']; // ; verwijderen van cv
$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
}
?>
Ga dus niet http:// invullen voor de dir, je moet de dir invullen aan de hand van waar je nu bent, als het script dus in de map BC3 staat is de dir: stud/img/cv/
Staat het script in de map BC3/test (ik noem maar wat), dan is de dir: ../stud/img/cv/ (../ is 1 map omhoog).
Heb de aanpassingen doorgevoerd maar zonder succes.

Ik merkte dat nu ook de functie om een cv te verwijderen niet meer werkte. (er ontbrak o.a. een ;). Als ik de functie voor de unlink even disable werkt het verwijderen van het cv terug wel, ondanks dat ik volgende errors krijg:

Notice: Undefined index: HTTP_REFERER in c:\phpdev\www\bc3\admin\cv\del_cv.php on line 20

Warning: Cannot add header information - headers already sent by (output started at c:\phpdev\www\bc3\admin\cv\del_cv.php:20) in c:\phpdev\www\bc3\admin\cv\del_cv.php on line 26

<?php

error_reporting(E_ALL); // Error reporting Level

include("header.php");

if(!isset($_GET['cvid'])){
print("Need $_GET variable");
exit;
}

//$sql = "SELECT uid FROM bc_cv WHERE id = ".$_GET['cvid'].""; // selecteren uid door cvid op te vragen
//$result = mysql_query($sql);

//$row = mysql_fetch_assoc($sql);
//$dir = '../../stud/img/cv/'; // url naar de map waarin de foto's staan zonder http://

//if(unlink($dir.'/'.$row['uid'].)) // verwijderen van fotobestand
//{
$ref = $_SERVER['HTTP_REFERER'];
connecteer();
$a_d = "DELETE FROM bc_cv
WHERE id = ".$_GET['cvid'].";"; // ; verwijderen van cv

$a_q = mysql_query($a_d) or die("problem activate_s : ".mysql_error());
header("Location: $ref");
// }
?>

Reageren