Salve a tutti!

Oggi vi presento un utile script manager in php fatto dal sottoscritto che permette di gestire uno vostro repository in remoto. Attualmente è solo un application core, indi presenta poche funzionalità fondamentale ma la sua struttura permette di poterlo customizzare e personalizzare secondo i vostri gusti personali; periodicamente  rilascierò nuove versioni con più features e farò il possibile per risolvere eventuali bachi e/o richieste che mi perverranno dagli utilizzatori  in tempi ragionevoli .

Composizione script:

Il file zip è composto da una serie di file e o cartelle con funzioni precise:

-index.php/elab_login.php : il primo è un form che richiede username e password, il secondo è una pagina che non fa altro che controllare il login e assegnare le credenziali necessarie.

-explorer.php/elab_explorer.php : il vero e proprio file browser. Il primo è la cosiddetta facciata( layout), mentre la seconda pagina nasconde la logica.

-folder style: al momento contiene solo le icone dei tipi di file conosciuti comunque nel futuro conterrà tutte le immagini e i fogli di stile necessari.

-folder script: contiene tutte le funzioni di supporto usate dal file browser ( function.php)  e gli script necessari per gestire la multilingua ( ita.php e multilanguage.php). Al momento c’è solo l’italiano ma nella prossima versione uscirà anche il supporto all’inglese.

-folder test: rappresenta la root del nostro repository da gestire: tutti i file e le cartella che vorremmo gestire dal nostro sito saranno salvate ed elaborate all’interno di essa ( per sicurezza infatti si impedisce all’utente di uscire da quella cartella, non vogliamo mica che l’utente possa cancellare degli script :) ).  Ovviamente sarà possibile modificare il nome di tale cartella.

Dopo aver scompattato l’archivio ed avere incollato tutti i file dentro di esso sul nostro server, basterà configurare qualche parametro.

CONFIGURAZIONE UTENTE:

-Aprite il file elab_login.php

<?php
include(“./script/function.php”);
$user=”user”;
$pass=”test”;

if(isset($_POST[‘user’]) && $_POST[‘user’]==$user && isset($_POST[‘pass’]) && $_POST[‘pass’]==$pass)
{

$_SESSION[‘user’]=$user;
$_SESSION[‘home_path’]=”./test/”;

$_SESSION[‘path’]=$_SESSION[‘home_path’];

$user e $pass rappresentano lo username e la password con la quale l’utente può accedere, cambiate i loro valori di default con quelli che considerate più consoni. Dopo potrete notare che in caso di corretto login, vengono vlaorizzate tre variabili di sessione che verrano successivamente usate dal nostro script:

1. $_SESSION[‘user’] serve per l’autenticazione
2.$_SESSION[‘home_path’] rappresenta il percorso relativo ( al momento non supporta quello assoluto! ) della nostra root repository che gestiremo. Al momento punta alla cartella vuota test ma possiamo cambiare il nome della cartella ( purchè la nuova folder sia esistente).
3.$_SESSION[‘path’] rappresenta la cartella corrente in cui ci troviamo. All’inzio ovviamente  è valorizzata come l’home_path visto che dopo il login saremmo indirizzati dentro di essa.

Ovviamente possiamo decidere di attaccarci ad una tabella mysql per una gestione dinamica delle utenze oppure utilizzare delle matrici per supportare un maggiore numero di utenti.

CONFIGURAZIONE SERVER:
-Aprite il file elab_explorer.php

<?php

include(“./script/function.php”);
session_control();

/*settings*/
$arrtype=array(“htm”,”html”,”php”,”js”,”htaccess”);
$max_size=500000000;
$max_dimension=500000000;

Qua sono le variabili eventualmente da configurare:

-$arrtype rappresentano i tipi di file che non vengono supportati: sia in fase di upload che in fase di rinomina infatti si attiverà un controllo che controllerà l’estensione ed impedirà il concludersi dell’azione ( al momento nell’array ho inserito i tipi di file che hanno a che fare con pagine web  anche per una gestione di sicurezza comunque come minimo vi consiglio di togliere php e htaccess visto che il primo potrebbe eseguire azioni non concesse e l’htaccess perchè probabilmente  utilizzeremo  questo tipo di file nelle versioni successive per aumentare la sicurezza.

-$max_size: massima dimensione ( in Byte) di un file caricabile sul repository. Cambiate il valore come preferite.

-$max_dimensione: massima dimensione( in Byte) di della cartella usata come repository.Cambiate il valore come preferite.

Dopo aver configurato i nostri parametri, apriamo la pagina index.php:

Dopo aver loggato correttamente, dovremmo visualizzare finalmente la nostra interfaccia web:

Ora potete testare una delle funzionalità: se non compare alcun errore php, complimenti, l’installazione è andata a buon fine 😉

N.B.
1) Al momento la gestione degli errori non è supportata indi, in caso di problemi, non verrà visualizzato alcun messaggio chiarificatore. Per esempio se proverete ad uplodare file con nomi troppo strani o con un estensione inclusa tra quelli probiti, semplicemente non succederà nulla.
2) Se non riuscite a resistere e volete subito customizzare il codice, vi esorto ad includere dentro questo script il meccanismo di logging spiegato in un mio articolo precedente, molto utile soprattutto in caso di restore ed indivuazione di bachi.

Se avete aggiunte da riferire o bachi fastidiosi , non esistate a contattarmi. Tutto il codice sarà disponibile nel solito repository Lab.
Grazie per l’attenzione,

Andrea