Walkthrough a dir v1.0

Door Mike de Klerk, 23 jaar geleden, 5.328x bekeken

Met dit script kun je gemakklijk door direcotries lopen. Je kunt hierbij gemakkelijk van directory wisselen. Het maakt dus niet uit in welke map het bestand staat. Tevens kun je de bestanden direct bezoeken door simpel op hun links te klikken. Je kunt de source ook highlighten als je wilt weten wat er in het bestand staat. Zo hoef je hem niet persé eerst te downloaden met je ftp programma. Ook kun je, indien mogelijk, de bestanden verwijderen. Er wordt dan eerst om een javascript confirmatie gevraagd: of je wel wilt doorgaan.
Als een bestand schrijfbaar is komt het erachter te staan, ook komt er chmodded achter het bestand te staan als het bestand is gechmod naar 777.
Dit script heb ik gemaakt met informatie van http://php.net

Gesponsorde koppelingen

PHP script bestanden

  1. walkthrough-a-dir-v10

 

Er zijn 24 reacties op 'Walkthrough a dir v10'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Legolas
Legolas
23 jaar geleden
 
0 +1 -0 -1
ff een tip, gebruik nooit short tags, maar gewoon
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php ?>
, shorttags wordt namelijk niet overal ondersteunt...
Mike de Klerk
Mike de Klerk
23 jaar geleden
 
0 +1 -0 -1
ja joh :P nog nooit problemen mee gehad, op geen 1 server....
En anders merk je het snel genoeg als er gewoon php code in beeld komt te staan i.p.v. dat het wordt verwerkt ;)
Thanks for tha tip
Jelmer -
Jelmer -
23 jaar geleden
 
0 +1 -0 -1
Wel aardig script.
Persoonlijk zou ik het een beetje overzichtelijker met een switch-statement en functies hebben gedaan maar dat is persoonlijk.

Afgeleid uit je header is het script uit 2k5, maar je html is uit 1988. Tegenwoordig hebben we xhtml met span en div. Tabellen dienen alleen voor data, niet voor layout. font is ook zwaar veroudert, net als de kleurvermeldingen bovenin. En een doctype zou ook wel netjes zijn.

En dan komen we precies bij het punt waarom short tags niet supported zouden zijn. XHTML kan als header een xml-starttag hebben.. En je raad het al, die begint idd met de shorttag ook gebruikt in PHP.
Mike de Klerk
Mike de Klerk
23 jaar geleden
 
0 +1 -0 -1
de html is misschien niet optimaal. Eerlijk gezegd ben ik ook geen lay-out guru en interesseert me de layout in zo een script ook niet. het gaat me meer om het script zelf. Ik heb dit script o.a. gebruikt bij het exploiteren van sites. Daar komt de oorsprong van. Toen ik een tijdje op deze site wat heb zitten rondneuzen en wat berichtjes te hebben gepost dacht ik bij me eigen: laat ik me script op deze site zetten. Ik heb wat html toegevoegd wat ik ook totaal achterwege had kunnen laten omdat deze in principe geen functionaliteit toevoegt. Misschien dat de functioneel kleurgebruik handig is. In dit script zitten een aantal basic dingen verwerkt waar het om gaat:
- Hoe loop je door een directory.
- Hoe kijk ik of iets een map of bestand is.
- Hoe verwijder je bestanden en mappen (zit verschil in van functie).
- Kijken of een bestand schrijfbaar is
- een bestand chmodden voor de rechten.
Bijzaak:
- Bewust wording van de highlight functie die bij het exploiteren van groot belang is.
- Werken met de $_GET variabele.

Gelieve alleen commentaar over PHP. De reactie dat mogelijk short tags van PHP niet werken heb ik wat aan. Dat <font> verouderd zou zijn niet. Want het werkt nog steeds. In PHP heb je ook synoniemen.
Jelmer -
Jelmer -
23 jaar geleden
 
0 +1 -0 -1
$HTTP_GET_VARS werkt ook nog steeds, maar wordt ook afgeraden. $PHP_SELF, wat jij in je script gebruikt, overigens ook. Verderop gebruik je overigens wel $_SERVER['PHP_SELF'].

Maar het is inderdaad op zich een goed voorbeeld over hoe je moet gaan met directories.
* alleen de html is naar mijn mening niet een goed voorbeeld *
Mike de Klerk
Mike de Klerk
23 jaar geleden
 
0 +1 -0 -1
Het is inderdaad wel sloridg dat ik niet consequent ben geweest met het gebruiken van $_SERVER['PHP_SELF'] of juist de andere. Aangezien PHP backward compatible is hoeft niemand bang te zijn dat de oude code nie meer zal werken ;)
Lissy Pixel
Lissy Pixel
23 jaar geleden
 
0 +1 -0 -1
Helaas dit gaat niet op dit statement:
Aangezien PHP backward compatible is hoeft niemand bang te zijn dat de oude code nie meer zal werken ;)

Zelf heb ik een script dat bij iemand anders prima werkt en op mijn server (andere host) niet werkt en totaal aangepast moest worden.
Kan ook aan de server instellingen hebben gelegen echter het feit was dat het script het bij mij niet deed.

Verder lijkt me dit een handig script.
Fijn dat je dit met ons wil delen!
Groet, lissy
Marien xD
Marien xD
23 jaar geleden
 
0 +1 -0 -1
Het ligt er aan of register super globals aan staat of niet :)
Richard van Velzen
Richard van Velzen
23 jaar geleden
 
0 +1 -0 -1
"Aangezien PHP backward compatible is hoeft niemand bang te zijn dat de oude code nie meer zal werken ;)"

vanaf PHP 6 zul jij problemen gaan krijgen;) daar gaan ze dingen als $PHP_SELF, GET en POST variabelen direct aanroepen met variabelen etc. eruitslopen. net als bv. magic_quotes_gpc. dus misschien is het een goed idee om je PHP code zo goed mogelijk aan te passen aan de recente versies van PHP.

@Jelmer:
"Tabellen dienen alleen voor data, niet voor layout."

hier maak jij een denkfout: tabellen zijn niet voor data, maar waarvoor een webdesigner ze wil gebruiken. (net als alle andere tags zoals font, hoewel die idd deprecated is)


23 jaar geleden
 
0 +1 -0 -1
Quote:
hier maak jij een denkfout
Niet mee eens. Jij maakt hier de denkfout. Je gebruik div's om een pagina in te delen. Geen tabellen! (Link)(Link(eerste 3 alinea's)
Willem vp
Willem vp
23 jaar geleden
 
0 +1 -0 -1
Die links zijn wel leuk, maar maken niet duidelijk *waarom* je een table niet hoort te gebruiken voor layout, en met simpele statements dat het niet hoort, overtuig je me echt niet ;-)

Daarom wil ik ook even verwijzen naar de HTML 4.01 specs (http://www.w3.org/TR/html401/struct/tables.html):
"Tables should not be used purely as a means to layout document content as this may present problems when rendering to non-visual media."

En daar hebben we de kern van de zaak te pakken. Voor gebruikers van bijvoorbeeld Blindows die een braille-regel of speech synthesizer gebruiken, is het een stuk moeilijker je site te bekijken.
PHP erik
PHP erik
23 jaar geleden
 
0 +1 -0 -1
Jelmer en Sebastiaan maken hier de denkfout. Ze hebben gelijk dat tabellen bedoeld zijn voor data en niet voor lay-out, maar dat betekent niet automatisch dat je ze daarvoor niet kan of mag gebruiken.

Het is zoals Willem zegt zeer zeker aan te raden "gewoon" divs te gebruiken, maar een "bedoeling" betekent niet een "verplichting". Als je even een nieuw lampje aan je plafond moet hangen, dan kan je toch ook even snel een stoel pakken om op te staan in plaats van een ladder? -Dat mag niet, want een stoel is om op te zitten- ..... ..... .....

Moraal van dit verhaal: het is slim om met divs te werken, dat wordt ook aangeraden en is gebruiksvriendelijker voor bepaalde partijen, maar er is niets mis met tabellen.

[het is trouwens ook aan te raden voor zoekmachines om met divs te werken]


23 jaar geleden
 
0 +1 -0 -1
We hebben niet gezegd dat je ze er niet voor mag gebruiken.
BlcKJcK
BlcKJcK
23 jaar geleden
 
0 +1 -0 -1
Je gebruikt iets waarvoor het bedoeld is: De semantiek zoals dat mooi heet ofwel de betekenis. Een div betekent je layout indelen, een tabel betekent data sorteren.

Bron: Naarvoren.nl en Jan Koehoorn(Moderator)
Willem Jan Z
Willem Jan Z
23 jaar geleden
 
0 +1 -0 -1
Div komt van divide:
Engels: share, divide, separate
Nederlands: delen, splitsen, opsplitsen, verdelen, afbreken
Richard van Velzen
Richard van Velzen
23 jaar geleden
 
0 +1 -0 -1
zucht... is een computer oorspronkelijk bedoelt om spelletjes op te spelen? nee, was bedoeld om complexe rekensommen mee op te lossen, maar slimmerds hebben dingen ervoor geschreven (game-engines) waarmee het mogelijk werd je te vermaken met een veredelde rekenmachine. iedereen heeft er dikke lol mee, maar zo was het niet bedoeld. net als tabellen, die zijn bedoeld om overzichtelijk iets weer te geven - niet perse tabulaire data, dat maken jullie ervan - en daar hoort een layout ook bij.


23 jaar geleden
 
0 +1 -0 -1
Wat een discussie, man. Kunnen we dit niet beter op 't forum houden? ;)
Jelmer -
Jelmer -
23 jaar geleden
 
0 +1 -0 -1
Om even mijn mening duidelijk voor eens en altijd te maken. Ik zei dienen. Een stoel dient om op te zitten, maar kan je ook ergens anders voor gebruiken. Maar als we die vergelijking gaan trekken, is een tabel meer een kast. Je kan hem namelijk niet even makkelijk met een enkel knopje van layout of hoogte verstellen. Divs wel via css. Dus ik verkies divs boven tabelllen voor de layout omdat dezen makkelijker en uitgebreider aan te passen zijn door mij via css, maar ook door browsers die bijvoobeeld andere schermafmetingen hebben, zoals een PDA. Een site met een tabel-based layout is als een bibliotheekkast met trap en al in een chemisch wc-hokje.

Maar om weer even op het script terug te komen, en compleet af te zeiken (anders kan ik blijkbaar niet, want het is echt een best goed script, we kunnen hier alleen maar zeiken over de minder-belangrijke kanten)
Je gebruikt over enkele quotes, wat ik echt prima vind. Maar dan komen we bij een tag zoals deze:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo " - <a href='".$_SERVER['PHP_SELF']."?del=".$_GET['dir'].$file."' onclick='return confirmSubmit()'>DELETE</a>";
?>

Nu stap je plotseling over op dubbele quotes, en gebruik je enkele quotes om de tags aan te geven. Als je nu consistent was geweest, had je dat omgedraait, en dubblele quotes in de HTML gebruikt, en enkele in PHP, wat volgens mij overigens ook de standaard w3c-benadering is.
Hier doe je het andersom:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
        if(@chmod($path, 0777))
        {

            echo '<font color="blue"> *CHMODDED* </font>';      
        }

            echo "<br>";
       }

?>


En dat splash-screen is wel IMO erg overbodig. Iedere keer dat je de pagina benadert moet je dus eerst het splash-screen wegklikken. Als laten we zeggen notepad dat had, zou je je er dan niet helemaal paars aan ergeren dat zodra je het programma opstart er eerst een beeldje geladen wordt dat aangeeft dat Microsoft dit programma heeft gemaakt, en dat je vervolgens op een knopje moet drukken, en dan weer net zo lang moet wachten totdat het daadwerkelijke programma gebruikt kan worden?

* Sorry, ik heb gewoon een hekel aan nutteloze splash-screens *
Jelmer -
Jelmer -
23 jaar geleden
 
0 +1 -0 -1
Eigenlijk wel, maar hij was hier al lekker begonnen, en aangezien hij niet verplaatst is, blijft hij hier. Maar opzich, als er nog veel komt over tabellen en layout, dan moeten we even een topic in de koffiehoek bouwen.
Mike de Klerk
Mike de Klerk
23 jaar geleden
 
0 +1 -0 -1
Deze code deel ik zodat mensen ervan kunnen leren!!!! als iemand nog nooit met tabellen heeft gewerkt maar met div's zijn site heeft opgemaakt, dan heeft hij hier geleerd dat je dit resultaat ook kunt krijgen met tabellen... Geweldig toch? en inderdaad sommige dingen zijn niet consequent. Dat komt omdat ik dit script in elkaar heb geplakt en bronnen heb gebruikt van php.net Ik he bniet alles veranderd en heb het laten staan. En dat splash screen haal je er toch gewoon uit? Je moet leren van het script, niet klakkeloos gebruiken. Als je dan iets voor elkaar wilt krijgen moet je alles gaan jatten en afstruinen om het precies zo te kunnen kopieren omdat je niet weet hoe je het aan moet passen. Dus als jij dat kunt aanpassen is het toch geen probleem? en als je het niet weet dan zoek je het uit en leer je er weer wat van.

En dat een php script bij de ene wel problemen geeft, en bij de andere niet ligt aan andere dingen dan dat het niet backward compatible zou zijn (tot nu toe is dat in ieder geval wel het geval). Kijk eens op een pagina met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? phpinfo(); ?>
daar staat veel informatie over welke functies er wel en niet aanstaan etc. Daar zal het vast aan liggen. Ik meen dat dit aan je config of ini file van php ligt. Ik kan het verkeerd hebben, ik heb dit niet uitgezocht.

Btw, mensen posten scripts voor andere. Ga niet zeuren over zo een splash screen. Als iemand wilt leren hoe je door dirs kunt wandelen en wat extra opties erin kunt verwerken denk je dan dat ze een f*ck geven om zo een splash screen? Ik heb hier geen applicatie gemaakt die ik op de markt wil brengen dat je het kunt kopen ofzo.... Dan snap ik dat er gelet wordt op gebruiksvriendelijk en lay-out en al die andere poespas.

Ik heb nog niemand van jullie gehoord over het feit dat er een stukje code in zit wat alle bestanden wist in een dir (indien mogelijk), maar dat je dit niet kan doen door ergens op te kikken maar dat je het handmatig in de url moet meegeven. Daar hadden jullie beter commentaar over kunnen geven ipv zeuren over div's en splash screens....
Niels Beckers
Niels Beckers
23 jaar geleden
 
0 +1 -0 -1
ik vind het wel maar dom wanneer je opeen config.php opent dan geeft hij ook het w8woord niet zo handig hé
Jelmer -
Jelmer -
23 jaar geleden
 
0 +1 -0 -1
Is wel logisch. Hij laat alles zien.
Zo kan je ook pagina.php?dir=./&killall=true meegeven, en dan verwijdert hij ook zichzelf.

Wat ik me nog wel afvraag, en waar ik te lui voor ben om te testen, wat gebeurt er waneer je vreemde tekens in je adresbalk (variabelen) stopt. Kan hij dezen zonder problemen aan? (dit is zowiezo een probleem op php-broncode niveau, met al dat slashes-gebeuren)
Dutchcamel
dutchcamel
23 jaar geleden
 
0 +1 -0 -1
@Richard van Velzen
Zoals BlcKJcK al noemde heb jij duidelijk nooit begrepen wat het nut van semantiek is.

se·man·tiek (de ~ (v.))
1 leer van de betekenis van de woorden en woordgroepen => betekenisleer
2 [fil.] leer van de interpretatie van formele systemen
(vandale.nl)

Een tabel gebruiken voor layout is semantisch gezien pure verkrachting van zijn functie en betekenis. Dat ze er wel voor gebruikt kunnen worden door (vaak) luie of onwetende programmeurs betekent niet dat het goed is.

Quote:
Tables should not be used purely as a means to layout document content as this may present problems when rendering to non-visual media.

(w3.org)

Of je er voor kiest om semantisch correcte code te gebruiken en tabellen te gebruiken waar ze voor bedoeld zijn of niet maakt mij niet uit. Maar ga dan niet beweren dat je HTML even goed is. Syntactisch maakt het niets uit, maar semantisch maak je een teringzooi van je HTML code als je tabellen voor layout gebruikt.

Dit is dus ook zeker niet bedoeld als commentaar op het script van Devoney, want het gaat om de PHP code die daar in staat. Om dan toch niet helemaal offtopic te blijven ziet de PHP code er goed uit behalve de genoemde punten
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php (?>
) gebruiken ipv
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? (?>
) en het niet gebruiken van een switch.

-edit-
@ Sebastiaan
Ah, nog niet gezien :)
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


23 jaar geleden
 
0 +1 -0 -1
Ondertussen hebben we de koffie en thee hier al weggehaalt. :) Er staat nu een topic in het koffieforum ;)

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. walkthrough-a-dir-v10

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.