Versio

unlink

Overzicht Reageren

Richard de jong

richard de jong

21/10/2010 10:50:43
Quote Anchor link
hallo
ik ben net begonnen met php en kom nu het volgende probleem tegen
ik ben een webwinkel aan het maken en heb het al een hel stuk klaar
ik kan artikelen toevoegen afbeeldingen uploaden
maar nu wil ik een artikel verwijderen met de daar bij behorende afbeelding
het artikel gaat wel weg maar de afbeelding blijft staan
ik heb een map genaamd image waar dea fbeeldingen op de server staan
de link in de database verwijderd ook behalve dus de afbelding

code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
ini_set("safe_mode", "off");
require "header.php";
$admin = true;
require "authenticatie.php";
$artikelid= $_GET["artikelid"];


if ($_GET["actie"] == "wis" && $artikelid) { // artikel ingevoerd?
$sql = "DELETE FROM Artikel WHERE ARTIKEL_ID=$artikelid";

if (!mysql_query($sql)) { // voer SQL code uit
echo mysql_error ();
echo "Verwijderen artikel mislukt!";
        exit;
}
else {
    $sql = "DELETE FROM Categorie_per_Artikel WHERE ARTIKEL_ID=$artikelid";
    
    if (!mysql_query($sql)) { // voer SQL code uit
    echo "mysql_query =".mysql_query."<br />";
    
        echo "Verwijderen categorie mislukt!";
        exit;
    }

    $sql = "SELECT * FROM Afbeelding WHERE ARTIKEL_ID=$artikelid";
    $result = mysql_query($sql);
    if (mysql_num_rows($result) > 0) { // voer SQL code uit
        while ($rij = mysql_fetch_array($result)) {
            // bepaal afbeelding
            
            $Afbeelding = $pad.$rij["AFBEELDING_ID"].$rij["Bestandstype"];
            unlink("image/".$Afbeelding);
            
            echo $Afbeelding."<br />";
        }

        $sql = "DELETE FROM Afbeelding WHERE ARTIKEL_ID=$artikelid";
        if (!mysql_query($sql)) { // voer SQL code uit
        
            echo "Verwijderen afbeelding(en) mislukt!";
            exit;
        }
    }
}

echo "OK, het artikel is verwijderd!";    
}
else {
?>

<p><div class="big">Artikel wissen</div><br>
Wis het volgende artikel:<br>
<?php
    $sql
= "SELECT * FROM Artikel";
    $resultaat  = mysql_query($sql); // voer SQL code uit
    while ($rij = mysql_fetch_array($resultaat)) {
        $artikelid = $rij["ARTIKEL_ID"];
        echo $rij["Naam"]." <a href=\"$PHP_SELF?actie=wis&artikelid=$artikelid\" onClick=\"return Confirm(1)\">Wis</a><br>\n";
    }
}


require "footer.php";

?>


ik weetr dat de fout ergens zit in de waarde van $afbeelding maar ik kom er niet uit.
wie van de php goeroes helpt mij hier mee

bvd richard

Modedit Chris:
Code in de code-tags geplaatst
Gewijzigd op 21/10/2010 12:14:03 door Chris
 
PHP hulp

PHP hulp

25/05/2012 16:56:27
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Tom Swinkels

Tom Swinkels

21/10/2010 11:27:02
Quote Anchor link
Wat krijg je terug in de echo van $afbeelding? En wat geeft hij voor een error?
 
Paul R

Paul R

21/10/2010 11:51:13
Quote Anchor link
varriabelen buiten quotjes halen zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql = "DELETE FROM Artikel WHERE ARTIKEL_ID=".$artikelid;
 
John D

John D

21/10/2010 12:13:52
Quote Anchor link
Wie is owner van de afbeelding ? Heb je de afbeelding ook ge-upload met/via de webwinkel of heb je die met ftp ge-upload ? In het laatste geval heeft de webwinkel (php cq het apache proces) geen rechten om de unlink (=delete) uit te voeren. Check dus ownership en rechten.
 
Robert Deiman

Robert Deiman

21/10/2010 12:22:43
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$Afbeelding
= $pad.$rij["AFBEELDING_ID"].$rij["Bestandstype"];
?>


Hoe heb je het opgeslagen?
$pad, klinkt als een bepaalde locatie. Ik vermoed ook dat daar de mapnaam al instaat die je later in unlink ook weer probeert te gebruiken. Alleen zie ik niet waar je $pad vult, bestaat die wel?

Daarnaast vraag ik me af of je het bestandstype inclusief . opslaat, want dat is niet erg logisch. (overigens is bestandstype technisch wat anders dan een extensie, een type is bijvoorbeeld : afbeelding, een extensie is dan jp(e)g oid.)

Als je voor je unlink eens een echo "image/".$Afbeelding; plaatst, wat krijg je dan te zien?
 
Richard de jong

richard de jong

21/10/2010 13:25:00
Quote Anchor link
hoi bedankt voor de reakties tot zover

ik krijg momenteel deze melding terug

Warning: unlink(image/../afbeeldingen59) [function.unlink]: No such file or directory in /var/www/vhosts/rdjong2edu.cursistennet.nl/httpdocs/artikel_wissen.php on line 32
../afbeeldingen59
OK, het artikel is verwijderd!
ik heb de afbeelding via een formulier opgstuurd dus met de rechten zit het wel goed
 
John D

John D

21/10/2010 13:30:06
Quote Anchor link
unlink(image/../afbeeldingen59
extensie .jpg ofzoiets vergeten of probeer je een directory weg te gooien ?
let ook op upper- en lowercase karakters, dat is strict namelijk.
Gewijzigd op 21/10/2010 13:31:00 door John D
 
- SanThe -

- SanThe -

21/10/2010 14:45:10
Quote Anchor link
Jij zegt dat alle afbeeldingen in de map 'image' staan. Met unlink(image/../afbeeldingen59) ga je weer uit de map 'image' en dat klopt dus niet.
 
Richard de jong

richard de jong

21/10/2010 19:39:03
Quote Anchor link
het probleem is opgelost

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
ini_set("safe_mode", "off");
require "header.php";
$admin = true;
require "authenticatie.php";
$artikelid= $_GET["artikelid"];


if ($_GET["actie"] == "wis" && $artikelid) { // artikel ingevoerd?
$sql = "DELETE FROM Artikel WHERE ARTIKEL_ID=$artikelid";

if (!mysql_query($sql)) { // voer SQL code uit
echo mysql_error ();
echo "Verwijderen artikel mislukt!";
        exit;
}
else {
    $sql = "DELETE FROM Categorie_per_Artikel WHERE ARTIKEL_ID=$artikelid";
    
    if (!mysql_query($sql)) { // voer SQL code uit
    echo "mysql_query =".mysql_query."<br />";
    
        echo "Verwijderen categorie mislukt!";
        exit;
    }

    $sql = "SELECT * FROM Afbeelding WHERE ARTIKEL_ID=$artikelid";
    $result = mysql_query($sql);
    if (mysql_num_rows($result) > 0) { // voer SQL code uit
        while ($rij = mysql_fetch_array($result)) {
            // bepaal afbeelding
            // ik had hier de te veel code staan die verwijderd

            unlink("image/".$rij['Afbeeldingnaam']);

 

            
            echo $Afbeelding."<br />";
        }

        $sql = "DELETE FROM Afbeelding WHERE ARTIKEL_ID=$artikelid";
        if (!mysql_query($sql)) { // voer SQL code uit
        
            echo "Verwijderen afbeelding(en) mislukt!";
            exit;
        }
    }
}

echo "OK, het artikel is verwijderd!";    
}
else {
?>

<p><div class="big">Artikel wissen</div><br>
Wis het volgende artikel:<br>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    $sql
= "SELECT * FROM Artikel";
    $resultaat  = mysql_query($sql); // voer SQL code uit
    while ($rij = mysql_fetch_array($resultaat)) {
        $artikelid = $rij["ARTIKEL_ID"];
        echo $rij["Naam"]." <a href=\"$PHP_SELF?actie=wis&artikelid=$artikelid\" onClick=\"return Confirm(1)\">Wis</a><br>\n";
    }
}


require "footer.php";

?>
Gewijzigd op 21/10/2010 19:40:46 door richard de jong
 



Overzicht Reageren

Get Adobe Flash player