[PHP] Foto verwijderen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik heb het volgende probleem.

Op mijn site heb ik een uploadscriptje gemaakt. Werkt goed. Een php script kijkt in een dir en geeft alle foto's die erin staan weer. Perfect

Nu wil ik dat gebruikers niet alleen na een inlogsessie foto's kunnen uploaden, maar ook dat ze foto's kunnen verwijderen.

Het mooist zou zijn dat een script kijkt in de directory, alle foto's weergeeft met daaronder een link "verwijder". Als je daarop drukt een vraag om bevestiging krijgt en vervolgens de foto wordt verwijderd.

Nu is mijn vraag, hoe krijg ik dit in godsnaam voor elkaar. Heb het een en ander geprobeerd met unlink(), maar lukt me niet. Het lukt me wel om alles in een keer, dmv 1 linkje , weg te krijgen, maar dat is me iets te veel van het goede 8)7


Iemand die me kan helpen?

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:44

gorgi_19

Kruimeltjes zijn weer op :9

Je begint met http://nl3.php.net/manual/nl/function.opendir.php

Daarna http://nl3.php.net/manual/nl/function.delete.php

[ Voor 32% gewijzigd door gorgi_19 op 09-02-2004 22:34 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
unlink("foto.jpg");

dit moet werken. Maar misschien moet je nog even de juiste rechten geven op de betreffende map.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
unlink("foto.jpg"); werkt.

Maar ik snap niet helemaal hoe ik dit nu in bv een link verwerk die automatisch de bestandsnaam overneemt.

Ik zou wellicht een link naar bv verwijder.php kunnen maken met daarin de
unlink() functie. Maar hoe zet ik deze er nou in, zodat ie automatisch weet om welk bestand het gaat. Snap je het nog?

Ben niet zo ervaren met php

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Aha, dat heeft dus te maken met variable doorgeven. P&W FAQ - PHP, hier kun je er veel over vinden. Dit moet je maar zelf even uitzoeken.

Veel suc6

Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Verwijderd schreef op 09 februari 2004 @ 22:46:
unlink("foto.jpg"); werkt.

Maar ik snap niet helemaal hoe ik dit nu in bv een link verwerk die automatisch de bestandsnaam overneemt.

Ik zou wellicht een link naar bv verwijder.php kunnen maken met daarin de
unlink() functie. Maar hoe zet ik deze er nou in, zodat ie automatisch weet om welk bestand het gaat. Snap je het nog?

Ben niet zo ervaren met php
Met php kan je gewoon via de query string variabelen doorgeven, dus zoiets :

code:
1
<a href="verwijder.php?file=fotonummer1.jpg">Verwijder deze foto!</a>


verwijder.php
code:
1
unlink($_REQUEST['file']);


Dat werkt. Trouwens, deze code níet in een door andere mensen benaderbaar gedeelte zetten, dan dan is heel snel je server naar de klote ;) Je kan namelijk heel gemakkelijk élke file waar php rechten voor heeft verwijderen zo : verwijder.php?file=index.php bijvoorbeeld zou niet fijn zijn als je rechten fout staan :D

[ Voor 13% gewijzigd door eamelink op 09-02-2004 22:52 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat werkt inderdaad wel. Maar nu moet ik toch nog steeds handmatig de bestandsnaam invoeren? Dit wil ik graag voor komen. De bestandsnaam moet automatisch worden overgenomen.

Iets met session variables denk ik :?

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Bedoel je dat hij die linkjes automatisch maakt? Ik ben vandaag in een gulle bui, dus dat wil ik wel even verklappen. (eigenlijk had je dit zelf even kunnen zoeken)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
$jpegdir = '../img/';
if($dir=opendir($jpegdir)){

while($file=readdir($dir)){
if('.'==$file || '..'==$file || !eregi("^.*\.jpg", $file) 
& !eregi("^.*\.png",   $file) 
& !eregi("^.*\.gif", $file) & !eregi("^.*\.jpeg", $file))
continue;
if(is_dir($dir.$file))
continue;

$link = urlencode($jpegdir.$file);
echo "<a href=verwijder.php?bestandsnaam="$file\">"; echo $file; 
echo "</a>";
        
    }
    closedir($dir);
}?>


kan zijn dat er een klein foutje inzit. heb het even snel in elkaar geflanst.

[ Voor 56% gewijzigd door Noork op 09-02-2004 23:11 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 09 februari 2004 @ 23:02:
Dat werkt inderdaad wel. Maar nu moet ik toch nog steeds handmatig de bestandsnaam invoeren? Dit wil ik graag voor komen. De bestandsnaam moet automatisch worden overgenomen.
Hoe moet je verwijderscriptje weten welk bestand er verwijderd moet worden?
Je zult dit toch in de link zelf aan moeten geven.
Iets met session variables denk ik :?
Die kun je pas setten als je weet welke file gekozen is.
Uiteraard kun je sessions prima gebruiken om te controleren of de user ingelogd is en de file wel mag verwijderen van jou.

Acties:
  • 0 Henk 'm!

Verwijderd

ik gebruik zelf de ftp_connect(); functie om zo bestanden te verwijderen :)

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Verwijderd schreef op 09 februari 2004 @ 23:13:
ik gebruik zelf de ftp_connect(); functie om zo bestanden te verwijderen :)
Ja ook een mogelijkheid. Maar niet echt wat de TS wil.

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Verwijderd schreef op 09 februari 2004 @ 23:13:
ik gebruik zelf de ftp_connect(); functie om zo bestanden te verwijderen :)
Ja, als ik op mn machine iets wil verwijderen, zet ik ook even mn ftp-server aan, en log ik met de client in op localhost, om vervolgens via de ftp-client dat bestand te verwijderen. Waarom zou ik gebruik maken van de interne mogelijkheden van het OS, als ik ook gebruik kan maken van het FTP protocol? 8)7

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nee dat is inderdaad niet wat ik zoek. Ik wil de mensen zelf een makkeljijke mogelijkheid bieden om hun eigen foto's te verwijderen via een beveiligde inlogsessie. Dat wil ik niet vie een ftp doen, maar gewoon via een php script. Ik heb zelf ook een ftpserver draaien. Daar doe ik zelf het werk op, maar dat is niet voor mijn doelgroep aan te raden.

Ik zal straks nog even wat proberen. Zit nu op mijn werk en heb nu niet zoveel tijd.

Acties:
  • 0 Henk 'm!

Verwijderd

Wat ik doe is gewoon een lijst van geuploade bestanden bijhouden in een MySQL-tabel. Daar kun je dan je bestandsnamen uithalen voor weer te geven en voor te verwijderen. Deze kun je dan meteen mooi uitbreiden met een beschrijving-veld o.i.d.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat is inderdaad ook wel een optie. Misschien wel zo mooi. Hmmm....als dit me nog niet lukt doe ik dat.

Thanx!

Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 21:10

pietje63

RTFM

let erop dat je alleen foto's kunt verwijderen die
- of door php zelf geupload zijn en dan niet via php_ftp
- of 777 chmodded zijn

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb het voor elkaar. Het werk!

Bedankt!
Pagina: 1