/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Delete file ??
Fra : EnjoyNews


Dato : 08-08-05 21:40

Hej.

Jeg har et upload script der virker fint og ser sådan ud:

$uploaddirtekst = $_SERVER['DOCUMENT_ROOT']."/TEST/Tekster/";
$uploadfile = $uploaddirtekst . $tekst_id.".txt";
if (move_uploaded_file($_FILES['upload']['tmp_name'], $uploadfile))


Det uploader en .txt med navtet 24.txt eksempel vis samtidig med at den
opretter nogle data i en mysql database.

Jeg har så et andet script der kan fjerne disse data igen på denne måde:

mysql_query("DELETE FROM Tekster WHERE TekstID=$tekst_id");


Nu har jeg så prøvet at få den til at fjerne .txt filen samtidig med at den
sletter data'ene om den i databasen, men kan ikke få det til at virke.
Jeg har prøvet lidt af hvert, men kan ikke få den til at slette filen. Jeg
kender jo dens placering som er $uploaddirtekst og jeg kender dnes navn som
er $tekst_id .txt.

Hvordan sletter jeg den. ??



 
 
Supremacy2k (09-08-2005)
Kommentar
Fra : Supremacy2k


Dato : 09-08-05 05:49

"EnjoyNews" <a@a.dk> wrote in message
news:42f7c0fb$0$2323$edfadb0f@dread11.news.tele.dk...
> Hej.
>
> Jeg har et upload script der virker fint og ser sådan ud:
>
> $uploaddirtekst = $_SERVER['DOCUMENT_ROOT']."/TEST/Tekster/";
> $uploadfile = $uploaddirtekst . $tekst_id.".txt";
> if (move_uploaded_file($_FILES['upload']['tmp_name'], $uploadfile))
>
>
> Det uploader en .txt med navtet 24.txt eksempel vis samtidig med at den
> opretter nogle data i en mysql database.
>
> Jeg har så et andet script der kan fjerne disse data igen på denne måde:
>
> mysql_query("DELETE FROM Tekster WHERE TekstID=$tekst_id");
>
>
> Nu har jeg så prøvet at få den til at fjerne .txt filen samtidig med at
> den
> sletter data'ene om den i databasen, men kan ikke få det til at virke.
> Jeg har prøvet lidt af hvert, men kan ikke få den til at slette filen. Jeg
> kender jo dens placering som er $uploaddirtekst og jeg kender dnes navn
> som
> er $tekst_id .txt.
>
> Hvordan sletter jeg den. ??
>
>

unlink
(PHP 3, PHP 4, PHP 5)

unlink -- Deletes a file
Description
bool unlink ( string filename [, resource context] )


Deletes filename. Similar to the Unix C unlink() function. Returnerer TRUE
ved succes, FALSE ved fejl.

Bemærk: As of PHP 5.0.0 unlink() can also be used with some URL wrappers.
Refer to Appendiks L for a listing of which wrappers support unlink().

Bemærk: Kontekst understøttelse blev tilføjet i PHP 5.0.0.

See also rmdir() for removing directories.



EnjoyNews (08-08-2005)
Kommentar
Fra : EnjoyNews


Dato : 08-08-05 22:40


"Supremacy2k" <Supremacy2k@gmail.com> skrev i en meddelelse
news:42f7c4ca$0$18636$14726298@news.sunsite.dk...
> "EnjoyNews" <a@a.dk> wrote in message
> news:42f7c0fb$0$2323$edfadb0f@dread11.news.tele.dk...
> > Hej.
> >
> > Jeg har et upload script der virker fint og ser sådan ud:
> >
> > $uploaddirtekst = $_SERVER['DOCUMENT_ROOT']."/TEST/Tekster/";
> > $uploadfile = $uploaddirtekst . $tekst_id.".txt";
> > if (move_uploaded_file($_FILES['upload']['tmp_name'], $uploadfile))
> >
> >
> > Det uploader en .txt med navtet 24.txt eksempel vis samtidig med at den
> > opretter nogle data i en mysql database.
> >
> > Jeg har så et andet script der kan fjerne disse data igen på denne måde:
> >
> > mysql_query("DELETE FROM Tekster WHERE TekstID=$tekst_id");
> >
> >
> > Nu har jeg så prøvet at få den til at fjerne .txt filen samtidig med at
> > den
> > sletter data'ene om den i databasen, men kan ikke få det til at virke.
> > Jeg har prøvet lidt af hvert, men kan ikke få den til at slette filen.
Jeg
> > kender jo dens placering som er $uploaddirtekst og jeg kender dnes navn
> > som
> > er $tekst_id .txt.
> >
> > Hvordan sletter jeg den. ??
> >
> >
>
> unlink
> (PHP 3, PHP 4, PHP 5)
>
> unlink -- Deletes a file
> Description
> bool unlink ( string filename [, resource context] )
>
>
> Deletes filename. Similar to the Unix C unlink() function. Returnerer TRUE
> ved succes, FALSE ved fejl.
>
> Bemærk: As of PHP 5.0.0 unlink() can also be used with some URL
wrappers.
> Refer to Appendiks L for a listing of which wrappers support unlink().
>
> Bemærk: Kontekst understøttelse blev tilføjet i PHP 5.0.0.
>
> See also rmdir() for removing directories.
>
>

Det har jeg prøvet, men problemet er at den skriver:
Warning: unlink($uploadfile;) [function.unlink]: No such file or directory
in /usr/home/web/web60269/TEST/TekstSlet.php on line 51

Og det er ikke rigtigt. Hvis jeg echo'er $uploadfile skriver den
home/web/web60269/TEST/Tekster/41.txt
og denne fil er der.
Jeg kan se at filen har chmod 644.. Er det derfor... Jeg kan nemlig ikke
sætte filen til 777 af en eller anden grund. ?



Peter Brodersen (08-08-2005)
Kommentar
Fra : Peter Brodersen


Dato : 08-08-05 23:30

On Mon, 8 Aug 2005 23:40:22 +0200, "EnjoyNews" <a@a.dk> wrote:

>Og det er ikke rigtigt. Hvis jeg echo'er $uploadfile skriver den
>home/web/web60269/TEST/Tekster/41.txt
>og denne fil er der.

Uden indledende slash? Det kan være det, problemet er. Det lader også
til at den ligger i /usr/home/... og ikke i /home/... - men den ene er
måske symlink til den anden.

>Jeg kan se at filen har chmod 644.. Er det derfor... Jeg kan nemlig ikke
>sætte filen til 777 af en eller anden grund. ?

Nej, så ville du ikke få den fejl.

Som udgangspunkt, så har en fils rettigheder eller ejerskab intet
overhovedet at sige, om hvorvidt den kan slettes eller ej. En fil med
chmod 0 ejet af root kan også slettes af ham eller dem, der har
skriveadgang til mappen.

En bruger kan slette en fil i en mappe, hvis han har skriveadgang til
mappen, filen ligger i. Brugeren behøver ikke at eje mappen, han skal
blot have skriveadgang til mappen (gennem ejer-rettigheder,
gruppe-rettigheder eller other-rettigheder).

Grunden til at du ikke kan chmod'e den, kan være din umask. Kig på
http://php.net/umask - men det har ikke noget at gøre med den
pågældende fejlmeddelelse.

--
- Peter Brodersen

EnjoyNews (09-08-2005)
Kommentar
Fra : EnjoyNews


Dato : 09-08-05 12:44


"Peter Brodersen" <usenet2005@ter.dk> skrev i en meddelelse
news:dd8mdn$t06$1@news.klen.dk...
> On Mon, 8 Aug 2005 23:40:22 +0200, "EnjoyNews" <a@a.dk> wrote:
>
> >Og det er ikke rigtigt. Hvis jeg echo'er $uploadfile skriver den
> >home/web/web60269/TEST/Tekster/41.txt
> >og denne fil er der.
>
> Uden indledende slash? Det kan være det, problemet er. Det lader også
> til at den ligger i /usr/home/... og ikke i /home/... - men den ene er
> måske symlink til den anden.

Jeg tror det er en kopi fejl..

Hvis jeg echo'er $uploadfile lige inden linien unlink('$uploadfile;');

/home/web/web60269/TEST/Tekster/45.txt

Warning: unlink($uploadfile;) [function.unlink]: No such file or directory
in /usr/home/web/web60269/TEST/TekstSlet.php on line 52

Og der ér en fil i mappen TEST/Tekster der hedder 45.txt



Peter Brodersen (09-08-2005)
Kommentar
Fra : Peter Brodersen


Dato : 09-08-05 12:44

On Tue, 9 Aug 2005 13:44:22 +0200, "EnjoyNews" <a@a.dk> wrote:

>Hvis jeg echo'er $uploadfile lige inden linien unlink('$uploadfile;');
>
>/home/web/web60269/TEST/Tekster/45.txt
>
>Warning: unlink($uploadfile;) [function.unlink]: No such file or directory
>in /usr/home/web/web60269/TEST/TekstSlet.php on line 52
>
>Og der ér en fil i mappen TEST/Tekster der hedder 45.txt

Kan du afvikle andre filkommandoer på den? Fx filesize() og lignende?

Men er du sikker på at stien /home/web/web60269/TEST/Tekster/45.txt er
korrekt i første omgang? Hvad med /usr foran, fx:
   /usr/home/web/web60269/TEST/Tekster/45.txt
....?

--
- Peter Brodersen

EnjoyNews (09-08-2005)
Kommentar
Fra : EnjoyNews


Dato : 09-08-05 13:49


"Peter Brodersen" <usenet2005@ter.dk> skrev i en meddelelse
news:dda4uq$df7$1@news.klen.dk...
> On Tue, 9 Aug 2005 13:44:22 +0200, "EnjoyNews" <a@a.dk> wrote:
>
> >Hvis jeg echo'er $uploadfile lige inden linien unlink('$uploadfile;');
> >
> >/home/web/web60269/TEST/Tekster/45.txt
> >
> >Warning: unlink($uploadfile;) [function.unlink]: No such file or
directory
> >in /usr/home/web/web60269/TEST/TekstSlet.php on line 52
> >
> >Og der ér en fil i mappen TEST/Tekster der hedder 45.txt
>
> Kan du afvikle andre filkommandoer på den? Fx filesize() og lignende?

?? Det er jeg ikke helt god nok til at vide

>
> Men er du sikker på at stien /home/web/web60269/TEST/Tekster/45.txt er
> korrekt i første omgang? Hvad med /usr foran, fx:
> /usr/home/web/web60269/TEST/Tekster/45.txt
> ...?


Det er jo samme stament jeg bruger til at lægge den op.
Jeg har dette stående i en setup.php fil som bliver hentet i starten.
$uploaddirtekst = $_SERVER['DOCUMENT_ROOT']."/TEST/Tekster/";

I TekstInsert.php filen skriver jeg så.
$uploadfile = $uploaddirtekst . $tekstid.".txt";
if (move_uploaded_file($_FILES['upload']['tmp_name'], $uploadfile))


I TekstSlet.php filen skriver jeg.
$uploadfile = $uploaddirtekst . $tekstid.".txt";
unlink('$uploadfile;');


Da $uploaddirtekst bliver hentet fra samme sted, og $uploadfile linien står
ens i begge filer, så burde stien vel være den samme ved upload som ved
sletning eller ??
Skal der ikke skrives mere en unlink('$uploadfile;'); ?? hvad med en Delete
kommando eller lign.. Jeg er ikke voldsom god til PHP programmering, men det
virker som meget lidt kodning for at slette en fil.. ??



Peter Brodersen (09-08-2005)
Kommentar
Fra : Peter Brodersen


Dato : 09-08-05 14:29

On Tue, 9 Aug 2005 14:49:24 +0200, "EnjoyNews" <a@a.dk> wrote:

>> Kan du afvikle andre filkommandoer på den? Fx filesize() og lignende?
>?? Det er jeg ikke helt god nok til at vide

Fx: print filesize($uploadfile);
eller lignende.

>I TekstSlet.php filen skriver jeg.
>$uploadfile = $uploaddirtekst . $tekstid.".txt";
>unlink('$uploadfile;');

Her er problemet.

Du skal ikke have enkelt-plinger, og heller ikke noget semikolon.
Fjern dem:

unlink($uploadfile);

Med enkelt-plinger bliver din variabel (her $uploadfile) ikke
erstattet med værdien.

Det er ret let at teste:

<?php
$sti = '/foo/bar/baz';
print 'Enkelt: $sti <br>';
print "Dobbelt: $sti <br>";
?>

>Skal der ikke skrives mere en unlink('$uploadfile;'); ?? hvad med en Delete
>kommando eller lign.. Jeg er ikke voldsom god til PHP programmering, men det
>virker som meget lidt kodning for at slette en fil.. ??

unlink() er rigtigt nok funktionen til at slette en fil.

--
- Peter Brodersen

EnjoyNews (09-08-2005)
Kommentar
Fra : EnjoyNews


Dato : 09-08-05 19:17


"Peter Brodersen" <usenet2005@ter.dk> skrev i en meddelelse
news:ddab38$iu5$1@news.klen.dk...
> On Tue, 9 Aug 2005 14:49:24 +0200, "EnjoyNews" <a@a.dk> wrote:
>
> >> Kan du afvikle andre filkommandoer på den? Fx filesize() og lignende?
> >?? Det er jeg ikke helt god nok til at vide
>
> Fx: print filesize($uploadfile);
> eller lignende.
>
> >I TekstSlet.php filen skriver jeg.
> >$uploadfile = $uploaddirtekst . $tekstid.".txt";
> >unlink('$uploadfile;');
>
> Her er problemet.
>
> Du skal ikke have enkelt-plinger, og heller ikke noget semikolon.
> Fjern dem:
>
> unlink($uploadfile);

Fantastisk... Nu virker det bare... Tusind tak for hjælpen.



Christoffer Kjeldgaa~ (08-08-2005)
Kommentar
Fra : Christoffer Kjeldgaa~


Dato : 08-08-05 22:56

EnjoyNews skrev:
> Hvordan sletter jeg den. ??

Prøv med følgende linje i stedet, og se om det ikke virker:

mysql_query("DELETE FROM Tekster WHERE TekstID = '$tekst_id'");

--
Christoffer Kjeldgaard Petersen
http://www.sappy.dk/

Martin (08-08-2005)
Kommentar
Fra : Martin


Dato : 08-08-05 23:47

Christoffer Kjeldgaard Petersen wrote:
> Prøv med følgende linje i stedet, og se om det ikke virker:
>
> mysql_query("DELETE FROM Tekster WHERE TekstID = '$tekst_id'");
>

Æhhhh

Christoffer der er vist noget du har misforstået!

mysql_query kan altså ikk slette den fil - det eneste den kan gøre at
rode med mysql

Christoffer Kjeldgaa~ (09-08-2005)
Kommentar
Fra : Christoffer Kjeldgaa~


Dato : 09-08-05 00:12

Martin skrev:
> Christoffer der er vist noget du har misforstået!

Ahh, du har ret. Overså fuldstændig at der var tale om at slette filen.
Min fejl.

--
Christoffer Kjeldgaard Petersen
http://www.sappy.dk/

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste