unlink
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)
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
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";
?>
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
Code in de code-tags geplaatst[/modedit]
Gewijzigd op 21/10/2010 12:14:03 door Chris -
Wat krijg je terug in de echo van $afbeelding? En wat geeft hij voor een error?
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.
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?
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
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
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.
Code (php)
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
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 {
?>
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)
1
2
3
4
5
6
7
8
9
10
11
12
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";
?>
$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