Avatar billede anderssk Nybegynder
22. oktober 2008 - 21:16 Der er 5 kommentarer

Søg efter fil i alle mapper

Jeg har brug for en funktion og er ikke verdensmester til PHP :-)

Filen skal eksekveres via browser og skal gennemgå alle mapper
I hver mappe skal ligge en fil med navnet index.html
Hvis filen ikke findes gives en echo besked.

Alternativ - hvis det er for nemt, så må den gerne oprette filen med følgende indhold "<script>history.go(-1);</script>"
Men igen en echo på at den har gjort det.
(ikke væsentligt med dannelse af fil)
Avatar billede showsource Seniormester
22. oktober 2008 - 21:36 #1
Jeg er nysgerrig,hvorfor har du brug for det?
Og verdensmester er ikke nemt, men det er nemmere/bedre at hjælpe når der vises noget kode til en start! :O)

fopen()
dir()
glob()

og så

is_dir()
is_file()

er hvad jeg lige kan komme på af mulige funktioner. :O)

http://dk2.php.net
Avatar billede anderssk Nybegynder
22. oktober 2008 - 21:51 #2
Et websted bygget på PHP gør jo at filer der skal åbnes, skal være *.PHP
Nogle mapper kan indeholde zip, jpeg, gif eller andre filer

For at undgå Directory traversal placeres index.html i alle mapper med indholdet
"<script>history.go(-1);</script>"

Så vil en eventuel scriptkiddie/hacker blive sendt én side tilbage hvis de prøver på noget :-)

Det kræver jo en del selvdiciplin så derfor et script til at checke :-)
Avatar billede showsource Seniormester
22. oktober 2008 - 22:02 #3
Ved ikke hvad man gør på en IIS, men på en Apache webserver kan man i en .htaccess bruge

Options FollowSymLinks

d.v.s man skal hente filen direkte, for at kunne være i dir'et, hvis der ingen index fil findes.

domain/dirnavn/
duer ikke
men
domain/dirnavn/filnavn
vil vises i browseren
Avatar billede showsource Seniormester
22. oktober 2008 - 22:06 #4
Avatar billede anderssk Nybegynder
22. oktober 2008 - 23:11 #5
Fandt noget kode, som viser alle filer og mapper (categories)
Det skal altså kun vise mapper, hvor index.html ikke findes.

<?php
// grab a full file listing from the current and sub directories and show them as anchored
//(linked) files.

// pull a full file listing - requires the Unix 'find' and 'sort commands. 'find' will retrieve a
//list of all files from the current directory, 'sort' will sort the listing, and 'explode' will split
//all files into an array passed into $filelist.

$filelist = explode("\n",`find .|sort`);

// for each item (file) in the array...

for ($count=0;$count<count($filelist);$count++) {

// get the filename (including preceding directory, ie: ./software/gth1.0.9.tar.gz)

$filename=$filelist[$count];

// if it's not a directory, display linked

if (!is_dir($filename))
printf("<a href=\"%s\">%s</a><br>\n",$filename,$filename);

// otherwise tell the user it's a "category"

else printf("<p>Category: %s<p>\n",$filename);
}

?>
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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