ik probeer een foto uit een map te verwijderen en daarna gelijk de record uit de database te halen.
dit lukt prima wanneer in de fotonaam het id nummer verwerkt is, want het id nummer staat in de adresbalk en die kan ik dan ophalen, maar wanneer ik de fotonaam eerst uit de database moet halen werkt het niet. in het stukje script wat ik meestuur heb ik eers een stukje staan waarbij met echo de naam geprint wordt op het scherm, en dat werkt. Toch lukt het niet om de foto ook te "unlinken" een idee wat ik fout doe? Ik ben nog niet echt een ingewijde in php dus graag niet te ingewikkelde antwoorden ;) het liefst een voorbeeld dmv een aanpassing in het script. Thanks!!!
<?php
if (isset($_GET['id'])){
$id = (int) $_GET['id'];
}
else{
// redirect.
// geen id meegegeven, terugsturen naar de admin-pagina
header("location: index.html");
}
$query = "SELECT * FROM portfolio_photos WHERE id='$id'";
$result = safe_query($db, $query);
// te verwijderen record op het scherm zetten
while($record = mysqli_fetch_array($result)) {
$pubname = "uploads/" . $record['photo_filename'];
echo "../$pubname\"<br />";}
// Als de pagina zichzelf heeft aangeroepen (=de administrator heeft
// het verwijderen bevestigd), is de flag 'bevestiging' gezet.
// In dat geval kan de DELETE-query worden uitgevoerd.
if (isset($_POST['bevestiging'])){
// $id casten naar (int) om SQL-injection te voorkomen
$photo_filename = (int) $_POST['photo_filename'];
$id = (int) $_POST['id'];
unlink("../uploads/" . $photo_filename);
$query = "DELETE FROM portfolio_photos WHERE id='" . $_POST['id'] . "'";
$result = safe_query($db, $query);
if ($result){
header("Location: reisdeleted.html");
exit;
}
}?>