Newsgroup: it.comp.www.php
Titolo: Directory di lavoro

Scusate l'oggetto (non sapevo che altro mettere).
Veniamo al sodo...
Ho trovato su una nota rivista uno scriptino che gestisce gli upload e la
navigazione in un sito come se fosse un ftp.
Siccome dovrei realizzare un qualche cosa del genere mi ci sono divertito un
pochino, e sono riuscito a farlo funzionare in maniera decentina.
Quello che per ora mi riesce difficile è l'impedire che nella navigazione
tra le directory si potesse andare troppo alla base...
Mi spiego meglio: qunado faccio leggere la dir di default mi esce fuori una
cosa del genere:
D .
D ..
D cartella1
_ readme.txt
_ readeyou.txt
_ readchitepare.txt
Cliccando sui .. ovviamente si risale l'albreo delle dir.
Se fosse solo questo sarebbe poco male, perchè mi pasterebbe filtrare il
nome di dir per togliere il ..
Ma questo non posso generalizzarlo, perchè se la cartella1 avesse 10
ramificazioni altrettanto ramificate, il navigare attraverso queste senza un
tasto di BACK sarebbe impossibile.
Per questo scopo avevo sostituito il D .. con un Directory d'origine linkato
sempre ai fatidici ..
Per lo stesso problema di navigazione ho bisogno che sia sempre visibile in
che cartella ci si trovi...
Per questo ho messo un campo che richiama il valore della $dir_cur
(directory corrente) che era impostato nello script originale. Questo
associato a $home_dir (la dir di partenza del tutto) mi restituisce però un
url normale in scalata dell'albero di directory, ma quando lo faccio tornare
indietro, siccome torna indietro con il comando ../ l'url mi diventa:
/dir1/dir2/../../.
Ovviamente non posso mettere questo come indice di directory...
Nè tantomeno da questo indice posso ottenere un controllo sulla directory
che voglio assegnare come root (ovvero quella oltre la quale non voglio che
si debba andare.).
Rassegnato al fatto che per come sono state concepite queste variabili, non
posso adattarle al mio scopo, mi chiedevo se ci fosse un modo per poter
farmi ritornare il path dal quale sto leggendo i dati (detta così sembra
proprio una cazzata).
Grazie mille a tutti per la pazienza in lettura... la sintesi non è il mio
forte nè tantomeno l'esposizione fenomenologica :-)

 proprio una cazzata).
Quello totale ? non me lo ricordo esattamente, ma dentro al file.php metti
phpinfo(). Sicuramente trovi quello che cerchi.
ciao


Grazie dell'aiuto e cmq è quello che avevo cercato di fare quandoho
provolato da solo a fare questo controllo.
Io avevo pensato...
Siccome quando mi si incollano tutti i nomi di dir ottengo una cosa
del genere /dir1/dir2/../dir1/, se splitto per ../ e prendo l'ultimo
valore dell'array ottengo la dir che mi interessa.
Nel caso in cui non splitta avrò sempre come ultimo valore dell'array
quello che mi interessa.
Qui il primo problemino che ho affrontato è che split() splitta per
carattere e non per intero blocco di caratteri (ma forse non so usarlo
bene) e allora l'ho fatto precedere da un ereg_replace() in modo da
cambiare ../ con | e poi ho splittato per |.
Problema... se faccio un solo ../ l'ultimo valore dell'array mi
risulta vuoto.
Comunque... il problema l'ho risolto in modo magari poco elegante ma
sicuramente efficace.
Controllo che in $dir_cur non ci sia ../, se c'è errore.
Faccio stampare $dir_cur come indice di directiry.
Per tornare indietro metto a fine elenco un <a href=\"javascript:
history.back()\">torna indietro</a>.
Ritornando indietro mi rilegge il vecchio $dir_cur ed ho sempre le dir
aggiornate, non tornando indietro con .. non ho problemi con la
directory oltre la quale non voglio andare.
Comunque grazie mille.
P.S. ti prego di una cosetta... non rispondere con \"R:\" ti prego....
sigh
----------------------------------
Ma quante belle figlie madamadorè 
ma quante belle figlie...
www.italia304050.f2s.com
www.wittig.cjb.net