unlink plaatje geeft foutmelding: Unable to locate stream wrapper in [file]
Ik heb een pagina die afbeeldingen upload, een eigen naam genereerd, en dit opslaat in een database, met een tekst er aan gekoppeld. Nu moeten die ook verwijderd kunnen worden, daarvoor heb ik de volgende delete.php pagina:
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
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
<?
error_reporting(E_ALL);
require('config.php');
if(isset($_GET["id"]) == FALSE){
die("Geen id opgegeven !");
}
if(isset($_POST["submit"]) == FALSE){
$query = mysql_query("SELECT * FROM foto WHERE id='" .$_GET["id"]. "'") or die(mysql_error());
while($object = mysql_fetch_object($query)){
$klein = $object->klein;
$groot = $object->groot;
?>
<form method="POST">
<table width="397" border="0">
<tr>
<td>
<a href="<? echo $object->groot; ?>" rel="lightbox[geboorte]" title="<? echo $object->tekst; ?>">
<img src="<? echo $object->klein; ?>" height="100" /></a>
</td>
<td>
<? echo $object->tekst; ?>
</td>
</tr>
</table>
<b>Weet u zeker dat u dit project wilt verwijderen?<br />
<br />
<input type="submit" name="submit" value="Verwijderen">
</form>
<?
}
}
else{
$query = mysql_query("SELECT * FROM foto WHERE id='" .$_GET["id"]. "'") or die(mysql_error());
while($object = mysql_fetch_object($query)){
$klein = $object->klein;
$groot = $object->groot;
unlink($groot);
unlink($klein);
}
mysql_query("DELETE FROM foto WHERE id='" . $_GET["id"] . "'") or die(mysql_error());
header("Location: wd.php");
exit();
}
?>
error_reporting(E_ALL);
require('config.php');
if(isset($_GET["id"]) == FALSE){
die("Geen id opgegeven !");
}
if(isset($_POST["submit"]) == FALSE){
$query = mysql_query("SELECT * FROM foto WHERE id='" .$_GET["id"]. "'") or die(mysql_error());
while($object = mysql_fetch_object($query)){
$klein = $object->klein;
$groot = $object->groot;
?>
<form method="POST">
<table width="397" border="0">
<tr>
<td>
<a href="<? echo $object->groot; ?>" rel="lightbox[geboorte]" title="<? echo $object->tekst; ?>">
<img src="<? echo $object->klein; ?>" height="100" /></a>
</td>
<td>
<? echo $object->tekst; ?>
</td>
</tr>
</table>
<b>Weet u zeker dat u dit project wilt verwijderen?<br />
<br />
<input type="submit" name="submit" value="Verwijderen">
</form>
<?
}
}
else{
$query = mysql_query("SELECT * FROM foto WHERE id='" .$_GET["id"]. "'") or die(mysql_error());
while($object = mysql_fetch_object($query)){
$klein = $object->klein;
$groot = $object->groot;
unlink($groot);
unlink($klein);
}
mysql_query("DELETE FROM foto WHERE id='" . $_GET["id"] . "'") or die(mysql_error());
header("Location: wd.php");
exit();
}
?>
als ik nu eentje wil verwijderen krijg ik de volgende foutmelding:
Warning: unlink() [function.unlink]: Unable to locate stream wrapper in /www/htdocs/bloomsnu/admin/delete.php on line 43
Warning: unlink() [function.unlink]: Unable to locate stream wrapper in /www/htdocs/bloomsnu/admin/delete.php on line 44
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/bloomsnu/admin/delete.php:43) in /www/htdocs/bloomsnu/admin/delete.php on line 48
ik heb even gezocht op google, en de fout die iemand daar had was dat de url niet goed was van het plaatje echter, de locatie laat ik volledig opslaan, niet alleen de map en naam, dus in de database staat:
id: 11
klein: http://www.blooms.nu/klein/463952592.jpg
groot: http://www.blooms.nu/groot/463952592.jpg
tekst: test
soort: geboorte
pos: 5
ik heb deze nu even opnieuw aangemaakt, maar een dergelijke test vermelding stond er dus ook toen ik bevenstaande fout kreeg. dan ga ik dus naar delete.php?id=11, ik klik verwijderen, en dan krijg ik dus die fout.
de database rij wordt daarna wel verwijderd, maar de plaatjes blijven staan.
In de originelee delete pagina zat de 2e query niet in, alleen toen kreeg ik dus ook deze fout, en omdat het door dat rsultaat op google leek dat hij de img url blijkbaar niet goed kon vinden ofzo heb ik dus even deze nieuwe query toegevoegd. geen resultaat.
de mappen staan op cmod 777 ingesteld, de plaatjes zijn aangemaakt door de server zelf, dus daar zoudie alle rechten op moeten hebben.
Heeft iemand enig idee wat hier aan de hand kan zijn?
alvast bedankt,
Bart Huisman
Gewijzigd op 01/01/1970 01:00:00 door Bart Huisman
Well volgens mij moet je voor unlink een relatief pad hebben en geen hard pad
Bovendien kan die header daar niet staan... Wat is de meerwaarde van mysql_fetch_object? De ! operator bestaat ook nog... Die is wel een harde afbreking he?
En je kunt beter gebruik maken van $_SERVER['REQUEST_METHOD']=='POST' in plaats van een isset op submit...
zal eens wat gaan proberen. heb in het upload script expres de volledige url staan dat hij die opslaan zodat jem ook vanuit de /admin mapo kan vertonen, dus dan moet ik daar ook wat aanpassen dat hij hem vanaf ../pad laadt, maar moet vast wel lukken.
dank
Quote:
En hoezo zou dat met een relatief pad niet kunnen? Als je binnen hetzelfde bestandssysteem blijft is dat absoluut geen probleem...heb in het upload script expres de volledige url staan dat hij die opslaan zodat jem ook vanuit de /admin mapo kan vertonen
dat zeg ik dus, dan moet ik hem vanaf ../pad laden als ik hem in de admin map wil laten zien
Bart schreef op 10.05.2008 16:42:
dat zeg ik dus, dan moet ik hem vanaf ../pad laden als ik hem in de admin map wil laten zien
Jah, wat dus veel handiger is. Aan die url heb je eigenlijk niks, jah, je kunt nu overal met een linkie die plaatjes plakken, maar met verwijderen, verplaatsen, en echt weten waar de plaatjes zijn heb je d'r niks aan.
idd, heb het nu denk ik overal doorgevoerd. verwijder pagina werkt nu, nu de wijzig pagina nog dan is het systeem af... bedankt