Ik krijg steeds een error als ik een bestand wil verwijderen:
faultCode0faultStringWarning:unlink() [function.unlink]: Unable to locate stream wrapper in /home/vol3/byethost2.com/b2_698933/eyecatcher.isgreat.org/htdocs/members/upload.php on line 112
Ok:
<?php
if(isset($_POST['banner'])){
$banners = $_POST['banner'];
if(unlink("$banners") == TRUE){
mysql_query("UPDATE `[users]` SET `banner`='' WHERE `login`='{$data->login}'");
echo "Het bestand is verwijderd<br>";
}else{
echo "Het bestand is niet verwijderd<br>$banners<br>";
}}
$map = "afbeeldingen/"; // Map waar alles terecht komt
?>
Edit PHPerik: effe php tags gemaakt van de code tags, is iets overzichtelijker
Webmaster Our-Jumpstyle schreef op 29.06.2007 12:43
Ok:
<?php
if(isset($_POST['banner'])){
$banners = $_POST['banner'];
if(unlink("$banners") == TRUE){
mysql_query("UPDATE `[users]` SET `banner`='' WHERE `login`='{$data->login}'");
echo "Het bestand is verwijderd<br>";
}else{
echo "Het bestand is niet verwijderd<br>$banners<br>";
}}
$map = "afbeeldingen/"; // Map waar alles terecht komt
?>
Edit PHPerik: effe php tags gemaakt van de code tags, is iets overzichtelijker
Hallo,
Volgens mij heb je achteraan in je WHERE stukje de variable niet goed als variable staan daardoor ziet hij deze misschien als plain text.
probeer dit eens:
<?php
if(isset($_POST['banner'])){
$banners = $_POST['banner'];
if(unlink("$banners") == TRUE){
mysql_query("UPDATE `[users]` SET `banner`='' WHERE `login`='".{$data->login}."'");
echo "Het bestand is verwijderd<br>";
}else{
echo "Het bestand is niet verwijderd<br>$banners<br>";
}}
$map = "afbeeldingen/"; // Map waar alles terecht komt
?>
Webmaster Our-Jumpstyle schreef op 29.06.2007 13:12
@ happy2day
Waar mis je er één dan??
Want in regel 4 staan er genoeg.
Die quotes weghalen dat maakt ook niks uit.
hallo,
Hij heeft wel gelijk wat betreft die "" bij de variable van unlink( )
maar dat andere wat hij bedoelt zie ik ook niet...
En verder zou ik nog proberen om je tabelnaam die je in je query gebruikt zonder de [ ] te doen...
[quote='Webmaster Our-Jumpstyle schreef op 29.06.2007 13:12']@ happy2day
Waar mis je er één dan??
Want in regel 4 staan er genoeg.
Die quotes weghalen dat maakt ook niks uit.
hallo,
Hij heeft wel gelijk wat betreft die "" bij de variable van unlink( )
maar dat andere wat hij bedoelt zie ik ook niet...
En verder zou ik nog proberen om je tabelnaam die je in je query gebruikt zonder de [ ] te doen...
Groetjes..[/quote]
Probeer het is zo anders:
<?php
if(isset($_POST['banner'])){
$banners = $_POST['banner'];
if(unlink($banners) == TRUE){
mysql_query("UPDATE users SET banner ='' WHERE login ='".{$data->login}."'");
echo "Het bestand is verwijderd<br>";
}else{
echo "Het bestand is niet verwijderd<br>$banners<br>";
}}
$map = "afbeeldingen/"; // Map waar alles terecht komt
?>
@Marco
Het ligt niet aan de mysql_query en al dat gezeik, hij geeft een foutmelding dat hij een wrapper niet kan vinden. Weet iemand hoe ik dit kan oplossen??
Stream Wrapper support compress.zlib:// ( uit de phpinfo() )
Ik heb zelf die foutmelding nog nooit gehad maar na wat leeswerk en enig zins ook maar een idee die ik opper, zou het niet zo kunnen zijn dat de inhoud van $banners niet goed is.
Ik ben benieuwd als je na $banners = $_POST['banner']; eens een echo $banners doet en die inhoud eens hier plaatst.
Ik heb het vermoeden dat je een bestand wilt unlinken die door de filehandler van php niet ondersteund wordt en waar geen wrapper voor aanwezig is.
Ik zou wel heel erg opletten met wat je aan het doen bent. Bedenk eens wat er gebeurt als ik ervoor zorg dat $_POST['banner'] gelijk is aan '/var/www/html/index.php'. Om maar met het simpelste te beginnen. Als het goed is, is het niet mogelijk die index.php weg te gooien als je rechten goed staan. Maar als je met een unlink werkt zijn er dus ergens wel bestanden die (ongewild) verwijderd kunnen worden door iemand die hier misbruik van gaat maken!