Avatar billede kack Nybegynder
15. april 2005 - 18:33 Der er 10 kommentarer

Slette alt i en mappe

Ved ikke helt om dette kan lade sig gøre. Men prøver :)

Kunne godt tænke mig et script, der gør at den sletter ALT i en mappe, når det er en lige dag.

F.eks. Når det bliver Lørdag den 16. April (00:00), så sletetr scriptet automatisk alt i min mappe der hedder: files.

Håber I forstår.
Avatar billede dennismp Nybegynder
15. april 2005 - 18:38 #1
rmdirr("files");

skulle gerne slette dit dir.

Har du tænkt over hvad der skal ske, hvis to (eller flere) ser på hjemmesiden kl 00:00 den 16. april?

eller hvad hvis der ikke er nogle hits?

function rmdirr($dirname) {
    if( is_file($dirname) ) return unlink($dirname);

    $dir = dir($dirname);

    while (false !== $entry = $dir->read()) {
        if ($entry == '.' || $entry == '..') continue;

        rmdirr("$dirname/$entry");
    }

    $dir->close();
    return rmdir($dirname);
}
Avatar billede dennismp Nybegynder
15. april 2005 - 18:39 #2
$now = time();
if( $now > mktime(0,0,0, 4, 16) && $now < mktime(0,1,0, 4, 16)  )
  rmdirr("files/");

Burde gøre hvad du ønsker
Avatar billede kack Nybegynder
15. april 2005 - 18:41 #3
Fatter de ikke helt. Gider du prøve at flette det sammen?
Avatar billede dennismp Nybegynder
15. april 2005 - 18:46 #4
$now = time();
if( $now > mktime(0,0,0, 4, 16) && $now < mktime(0,1,0, 4, 16)  )
  rmdirr("files/");


function rmdirr($dirname) {
    if( is_file($dirname) ) return unlink($dirname);

    $dir = dir($dirname);

    while (false !== $entry = $dir->read()) {
        if ($entry == '.' || $entry == '..') continue;

        rmdirr("$dirname/$entry");
    }

    $dir->close();
    return rmdir($dirname);
}
Avatar billede kack Nybegynder
15. april 2005 - 18:51 #5
Ok. Hvad gør det så helt præcist?

At alt bliver slettet i en bestemt mappe, kl. 00?

Og det skal så bare indsættes i min index fil?
Avatar billede dennismp Nybegynder
15. april 2005 - 19:11 #6
i tidsrummet 00:00 til 00:01 den 16. april vil alle filer i "files" blive slettet.

Kommer der 10 hits, bliver den slettet 10 gange
Kommer der ingen hits, bliver det ikke slettet

Det afhænger af at een eller anden ser på siden, ellers bliver koden aldrig udført.
Avatar billede cybermike Nybegynder
15. april 2005 - 19:36 #7
I et cronjob:
system ("rm -fr /home/kack/public_html/files/*");

Hvorfor gøre det mere besværligt end det er?
Avatar billede dennismp Nybegynder
15. april 2005 - 19:43 #8
Fordi de færreste webhoteller tillader ikke system() og cron. Og da manden ikke virker særlig bekendt med php, tvivler jeg på at det er hans egen.

Selv på mit eget system tillader jeg ikke system, så hellere bruge phps funktioner og den (i varierende grad) ekstra sikkerhed det giver
Avatar billede cybermike Nybegynder
16. april 2005 - 02:59 #9
dennismp: Den logiske konklution er at man sætter sit webhotel ordentligt op eller stiller krav til sit webhotel.

Mht sikkerhed så skal sikkerheden være i DIN kode og ikke i programmeringssproget, hvis du er afhængig af din system fortolker for din kode er sikker, så er din kode standard ikke noget jeg ville prale af :)
Avatar billede dennismp Nybegynder
16. april 2005 - 03:46 #10
Vi kan ikke konkluderer noget på det grundlag vi har. Problemer kan løses på mange måder - afhængig af krav og begrænsninger, og dem kender kack kun.

Men jeg er uenig. At disable system() er ikke dårlig opsætning (sådan tolker jeg dit "sætte sit webhotel ordentligt op"). Det burde du da vide.

Sikkerheden er ikke een ting. Sikkerhed er på flere niveauer, og det er mere en process end en "feature" (desværre). Hvis koden fejler, så skal der være andre mekanismer til at beskytte og begrænse skaden. Derfor bruger man safe-mode, derfor slår man farlige funktioner fra, derfor sætter man systemet defensiv op. At give mulighed for at bruge system() åbner systemet væsentlige mere op end at bruge phps egne rmdir(). Jeg er godt klar over man kan begrænse hvilke kald system() kan bruges til - men de færreste har overhovedet set på dette.

De fleste nyerer sprog har også sikkerhed integreret i sig. Da alle laver fejl (tror nok det hedder sig at en dygtig programmør laver een fejl pr. 100 linjers kode). Sproget i sig selv har fejl (som du nok ved, så har det været en stribe brutale fejl i php) som nødvendigvis ikke er noget man kunne forudse når man skriver koden. Og så er der andre faktorer som man har svært ved at gøre noget ved i sin kode. Hvor tit crasher php for dig? hvor tit bekymre du dig om allokeringer af hukommelse. Det er også sikkerhed - da compileren gør det for dig, er det sandsynligvis mere sikkert (om ikkee andet så mere konsekvent). Det er lavniveau vs højniveaussprog om igen.

Jeg har svært ved at se, hvordan man kan kode noget i php, som ikke er afhængig af fortolkeren. Men vi kan da godt blive enig om at php kode der ikke bliver fortolket må ses at være rimelig risikofrit at have liggende :)

Men nu ryger vi ud på et sidespor - og jeg vil egentlig bare iseng :) (forresten, du skal vist lige opdaterer din profil - dit 2. link virker ikke). Og jeg er ret sikker på at vi snakker hen over hovedet på kack, hvilket måske er lidt ubetænktsomt - da det jo er "hans" tråd  (jeg savner et forum hvor man kan forsætte emner som dette).

Nå, men godnat.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester